老九C语言教程最后的笑傲江湖.

算是在编程门槛外面的深呼吸热身练习,基本上都是老九的那一套。

gamelib.h

#ifndef GAMELIB_H_INCLUDED
#define GAMELIB_H_INCLUDED
#include<Windows.h>void setColor(int, int);
void setPosition(int, int);
void setTitle();
void getKey();
void Clear();
void ClearInfo(int,int);
void ClearInfo2();
void StringPrint(char*);#endif

gamelib.c

#include"gamelib.h"
void setPosition(int x, int y)
{HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);COORD coord = { x,y };SetConsoleCursorPosition(handle, coord);
}
void setTitle()
{char*ch = "维斯特洛大陆";SetConsoleTitle(ch);
}
void setColor(int x, int y)
{HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(handle, x + y * 0x10);
}
void Clear()
{HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);DWORD written;COORD coord = { 0,0 };FillConsoleOutputCharacter(handle, '  ', 125 * 30, coord, &written);//LP代表指针变量
}
void ClearInfo(int x, int y)
{HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);DWORD written;COORD coord = { x,y };FillConsoleOutputCharacter(handle,' ', 120 * 12, coord, &written);
}
void ClearInfo2()
{HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);DWORD written;COORD coord = {12,8};FillConsoleOutputCharacter(handle, ' ', 120 * 6, coord, &written);
}
void StringPrint(char* homeInfo)
{int i;for (i = 0; i < strlen(homeInfo); i++){printf("%c", homeInfo[i]);_sleep(20);}
}

game.h

#ifndef GAME_H_INCLUDED
#define GAME_H_INCLUDED
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<string.h>
#include<math.h>
#include<time.h>
#define SEP "**************************************************************"
#define MARGIN_X 12
#define MAP_Y 2
#define INFO_Y 8
#define MENU_Y 15
#define END 20
typedef enum _type {Weapon=1,Armor=2,Consumables=3
}PropType;
typedef struct _prop {int id;char name[50];int level;PropType type;int stock;union {int minAtt;int minDef;int minCon;};union{int maxAtt;int maxDef;int maxCon;};double price;char desc[500];
}Prop;
typedef struct _bag {int id;int count;int maxcount;Prop prop[6];//要在结构体内默认给个常量大小
}Bag;
typedef struct _home {int id;char name[50];COORD coord;char desc[500];
}Home;
typedef struct _player {int id;char userName[50];char passWord[50];int hp;int mp;int exp;int level;double price;Home home;Bag bag;Prop Weapon;Prop Armor;
}Player;
typedef struct _monster {int id;char name[50];int level;int hp;int att;int def;int minLoot;int maxLoot;int exp;int state;COORD mCoord;Prop prop;
}Monster;
void Start();
void LevelUp();
void ShowPlayer();
void Init();
void ShowMap();
void Poccess(char);
void ShowMonster();
void ShowTrade();
void ShowHome();
void ShowBattle(Player*,Monster*);
void Trade(Player*,int);
/*
if count<maxcount
bag.prop[count]=prop[cc];
count++;
*/#endif

game.c

#include"game.h"
#include"gamelib.h"char Map[5][5][16] = {{"红堡","暮鼓城","黑水城","奔流城","河间地"},{"铁群岛","多恩","龙石岛","北境长城","恐怖堡"},{"临冬城","凯岩城","高庭","鹰巢城","君临"},{"赫伦堡","水果岛","宝石都","史塔克","高达岛"},{"光明都","堕落成","鬼搁倒","烂泥","翅膀"}
};
Monster monsters[] = {{ 1, "鬼子", 1, 100, 5, 5, 1, 3, 10, 1,.mCoord.X = 0,.mCoord.Y = 0 },{ 1, "鬼子", 1, 100, 5, 5, 1, 3, 10, 1,.mCoord.X = 0,.mCoord.Y = 1 },{ 1, "鬼子", 1, 100, 5, 5, 1, 3, 10, 1,.mCoord.X = 0,.mCoord.Y = 7 },{ 2, "汉奸", 2, 200, 8, 12, 1, 8, 11, 1,.mCoord.X = 0,.mCoord.Y = 0 },{ 2, "汉奸", 2, 200, 8, 12, 1, 8, 11, 1,.mCoord.X = 0,.mCoord.Y = 1 },{ 2, "汉奸", 2, 200, 8, 12, 1, 8, 11, 1,.mCoord.X = 0,.mCoord.Y = 2 },{ 2, "汉奸", 2, 200, 8, 12, 1, 8, 11, 1,.mCoord.X = 0,.mCoord.Y = 3 },{ 2, "汉奸", 2, 200, 8, 12, 1, 8, 11, 1,.mCoord.X = 0,.mCoord.Y = 4 },{ 2, "汉奸", 2, 200, 8, 12, 1, 8, 11, 1,.mCoord.X = 0,.mCoord.Y = 5 },{ 2, "汉奸", 2, 200, 8, 12, 1, 8, 11, 1,.mCoord.X = 0,.mCoord.Y = 6 },{ 2, "汉奸", 2, 200, 8, 12, 1, 8, 11, 1,.mCoord.X = 0,.mCoord.Y = 7 },{ 3, "浪人", 3, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 0 },{ 3, "浪人", 3, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 1 },{ 3, "浪人", 3, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 2 },{ 3, "浪人", 3, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 3 },{ 3, "浪人", 3, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 4 },{ 3, "浪人", 3, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 5 },{ 3, "浪人", 3, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 6 },{ 3, "浪人", 4, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 6 },{ 3, "浪人", 3, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 6 },{ 3, "浪人", 4, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 6 },{ 3, "浪人", 3, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 6 },{ 3, "浪人", 2, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 6 },{ 3, "浪人", 4, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 6 },{ 3, "浪人", 4, 300, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 6 },{ 3, "浪人", 4, 30000, 10, 10, 3, 8, 20, 1,.mCoord.X = 0,.mCoord.Y = 0 }
};
//若内部有子变量,对子变量单个声明的时需要加一个.
//对坐标变量声明时,一定要加上.,相当于独自声明
Prop propArray[] = {{ 1, "一字长蛇剑", 1, Weapon, 50,.minAtt = 7,.maxAtt = 15, 3000,"犹如巨蟒出击,攻击凌厉!" },{2,"二龙戏珠",2,Weapon,100,.minAtt = 3,.maxAtt = 5,4000,"试验品"},{ 3, "三叉海神戟", 3, Weapon, 10,.minAtt = 2,.maxAtt = 4, 3000, "重达十万八千斤,威力无穷!" },{ 4, "四方苦禅杖", 4, Weapon, 10,.minAtt = 2,.maxAtt = 4, 4000, "极度彰显了少林作为中原武林第一大派和佛门贵地的崇高地位。" },{ 5, "五虎攒羊锤", 5, Weapon, 10,.minAtt = 2,.maxAtt = 4, 5000, "唯有能与元素沟通的人可以唤醒它的真正力量。" },{ 6, "六合迎风枪", 6, Weapon, 10,.minAtt = 2,.maxAtt = 4,6000, "当年兵器谱排名第二,第一是小李他妈的飞刀!" },{ 7, "七星斩将矛", 7, Weapon, 10,.minAtt = 2,.maxAtt = 4,7000, "矛尖有如白蛇吐信,是令敌将闻风丧胆的象征!" },{ 8, "八卦金锁鞭", 8, Weapon, 10,.minAtt = 2,.maxAtt = 4,8000, "打在身上,仿佛是幻影涰连,遮日蔽天!" },{ 9, "九转乾坤圈", 9, Weapon, 10,.minAtt = 2,.maxAtt = 4,10000, "金色镯子,可翻江倒海,震荡乾坤!" },{ 100, "辟邪犀", 1, Armor, 10,.minDef=244,.maxDef=400,1000, "一块能解天下百毒的透明佩玉。" },{ 101, "乌蚕裙", 2, Armor, 10,.minDef=300,.maxDef=500, 2000, "极其坚韧,刀枪不入,水火不侵!" },{ 102, "英姿带", 3, Armor, 10,.minDef = 300,.maxDef = 500,3000, "穿后精气饱满,神采飞扬,姿态英勇威风!" },{ 103, "天罡指", 4, Armor, 10,.minDef = 300,.maxDef = 500, 4000, "飘忽不定,防东西至,防西东至!" },{ 104, "紫鲛衫", 5, Armor, 10,.minDef = 300,.maxDef = 500,5000, "海蛟皮制成,装备后可在水下呼吸!" },{ 105, "碧麟披", 6, Armor, 10,.minDef = 300,.maxDef = 500,6000, "上撰:上古南火朱雀之子,曾云字!" },{ 106, "金钟罩", 7, Armor, 10,.minDef = 300,.maxDef = 500,7000, "装备后有如金铸之钟覆罩全身,刀剑难损!" },{ 107, "防弹衣", 8, Armor, 10,.minDef = 300,.maxDef = 500,8000, "闯荡武林、居家必备!" },{ 108, "软猬甲", 9, Armor, 10,.minDef = 300,.maxDef = 500,10000, "刀枪不入还可保暖,穿在身上,妙用无穷。桃花岛的镇岛之宝!" },{ 201, "回复奶瓶(大)", 1, Consumables, 50,.minCon=50,.maxCon=100, 2000, "一次性回复500点内力值。" }
};
Player* currplayer;
int playerCount=1;
int X = 0,Y = 0;
Home home[]=
{{1,"Tully家族",.coord.X = 1,.coord.Y = 1,"河间地是位于三叉戟河流域的肥沃地带。徒利家族势力不算最大,但与强大的Stark家族和艾林谷都有姻亲关系。"},{2,"Greyjoy家族",.coord.X=3,.coord.Y=2,"铁群岛是位于大陆西海岸的一组群岛,生活条件异常艰苦,他们坚持劫掠,非常彪悍。但曾经在战败后,将人质送往临冬城。"},{3,"塔格利安",.coord.X=2,.coord.Y=1,"龙石岛是维斯特洛位于狭海中的岛屿,当年龙家就是从这里登上维斯特洛大陆,开始了巨龙家族的征服之旅。Baratheon家族篡位成功后,将龙石岛赐给了自己的Stannis Baratheon。"},{4,"Stark家族",.coord.X=4,.coord.Y=2,"北境面积最大,几乎占据了整个大陆的四分之一,临冬城的名字,美剧迷们应该再熟悉不过了。作为主角的Stark家族在北境守护了八千年,血脉极为古老,信仰也与其他家族不同。"}
};
Player player[5] = {{1,"linka","39",100,200,.exp=10,3,10000000,.home= { 4,"Stark家族",.coord.X = 4,.coord.Y = 2,"北境面积最大,几乎占据了整个大陆的四分之一,临冬城的名字,美剧迷们应该再熟悉不过了。作为主角的Stark家族在北境守护了八千年,血脉极为古老,信仰也与其他家族不同。" } }
};
Player defaultPlayer[5];
void Start()
{int choice, i, j;int temp;char tempCh1[50];char* tempCh2;printf("欢迎来到《权力的游戏》,请选择您的登录方式\n1:新用户注册\n2:老用户登录\n");scanf("%d", &choice);switch (choice){case 1:printf("请输入您要注册的的用户名和密码:");scanf("%s%s", player[playerCount].userName,player[playerCount].passWord);printf("%s\n", SEP);for (i = 0; i < 4; i++){printf("%d\t%s\n", home[i].id, home[i].name);}printf("请选择一个家族\n");scanf("%d", &temp);player[playerCount].home = home[temp - 1];playerCount++;break;case 2:for (j = 0; j < 3; j++){printf("请输入您的用户名:");scanf("%s", tempCh1);printf("请输入您的密码:");tempCh2 = (char*)malloc(50);scanf("%s", tempCh2);for (i = 0; i < playerCount; i++){if (strcmp(tempCh1, player[i].userName) == 0 && strcmp(tempCh2, player[i].passWord) == 0){printf("登录成功!\n");playerCount = i + 1;getchar();return;}elseprintf("登录失败!\n您还有%d次登录机会", 3 - j);}}break;default:printf("请输入正确的选择\n");getchar();break;}
}
void Init()
{currplayer = &player[playerCount - 1];currplayer->Weapon = propArray[0];currplayer->Armor = propArray[9];currplayer->hp = 100;currplayer->mp = 200;currplayer->exp = 30;currplayer->level = 2;Bag bag = { 1,0,6 };currplayer->bag = bag;defaultPlayer[playerCount - 1] = player[playerCount-1];
}
void ShowPlayer()
{ClearInfo2();int i;setPosition(MARGIN_X + 3, INFO_Y);printf("玩家《%s》的个人信息如下:", currplayer->userName);setPosition(MARGIN_X + 5, INFO_Y+1);printf("HP:%d\tMP:%d\texp:%d\t等级:%d\t家族:%s", currplayer->hp, currplayer->mp, currplayer->exp,currplayer->level, currplayer->home.name);setPosition(MARGIN_X + 5, INFO_Y + 2);printf("武器:%s   防具:%s\t攻击力:%d  金钱:%.2lf", currplayer->Weapon.name, currplayer->Armor.name, currplayer->Weapon.minAtt,currplayer->price);setPosition(MARGIN_X + 5, INFO_Y + 3);printf("背包信息为:");for (i = 0; i < currplayer->bag.count; i++){if (i% 3 == 0){setPosition(MARGIN_X+7, INFO_Y +4+ i / 3);}printf("%s \t", currplayer->bag.prop[i].name, currplayer->bag.prop[i].stock);}getch();
}
void ShowMap()
{int i, j;ClearInfo(MARGIN_X, MAP_Y);for (i = 0; i < 5; i++){setPosition(MARGIN_X, MAP_Y + i);for (j = 0; j < 5; j++){//printf("  %-9s", Map[i][j]);//先打印后判断,此时打印的地图是默认颜色,setColor()执行时只对下一个变量进行变更if (X == j&&Y == i){setColor(1, 10);}elsesetColor(10, 0);printf("  %-9s", Map[i][j]);//后打印才能上色,此时所打印的颜色由上一个函数来决定setColor(10, 0);//颜色的改变会对以下的函数产生 持续影响,除非用函数重置一下颜色}   }setPosition(MARGIN_X, INFO_Y - 1);printf("%s", SEP);Home* currhome;char* homeInfo=NULL;//首先应该把指针声明为空指针for (i = 0; i < 4; i++){if (home[i].coord.X == X&&home[i].coord.Y == Y){currhome = &home[i];homeInfo = currhome->desc;}}if (homeInfo == NULL){setPosition(MARGIN_X, INFO_Y);printf("此地未完成,有待建设!");setPosition(MARGIN_X + 9, END);return;}else{int length;length = strlen(homeInfo);setPosition(MARGIN_X + 1, INFO_Y);printf(currhome->name);setPosition(MARGIN_X + 3, INFO_Y+1);for (i = 0; i < length; i++){if (i%55 == 0&i!=0)//  i%40表示i能被40整除 {setPosition(MARGIN_X+3, INFO_Y + 1 + i/55);}printf("%c", homeInfo[i]);//指针可以通过  str[i]来访问内部的字符}setPosition(MARGIN_X + 9, END);}
}
void ShowHome()
{X = currplayer->home.coord.X;Y = currplayer->home.coord.Y;currplayer->hp = defaultPlayer[playerCount - 1].hp;currplayer->mp = defaultPlayer[playerCount - 1].mp;ShowMap();
}
void ShowMonster()
{ClearInfo2();int i, j;int choice=0;int monsterCount = sizeof(monsters) / sizeof(Monster);int currmonsterIndex[6];Monster* currMonster;int currCount=1;char levelName[5][50] = { "新手","入门","队长","精英","大师" };setPosition(MARGIN_X + 3, INFO_Y);printf("当前地图《%s》的怪物有:", Map[Y][X]);setPosition(MARGIN_X + 4, INFO_Y + 1);for (i = 0; i < monsterCount; i++){if (monsters[i].mCoord.X == X&&monsters[i].mCoord.Y == Y&&monsters[i].state==1){currMonster = &monsters[i];printf("%d:%s(%s)   ", currCount, currMonster->name, levelName[currMonster->level]);//满足条件时进行打印currmonsterIndex[currCount - 1] = i;if (currCount % 3 == 0){setPosition(MARGIN_X + 4, INFO_Y+1 +currCount / 3);}/*setPosition(MARGIN_X + 4, INFO_Y + 1); //需要位置重置一遍就可以了,这样的话每次循环都要重置一下光标的位置printf("%d:%s(%s)   ", currCount, currMonster->name, levelName[currMonster->level]);*/currCount++;if (currCount == 7)break;//总数大于6时,不再进行循环判定}}if (currCount == 1){//判断循环外的情况,只需要排除循环内改变的变量就可以了printf("当前地区什么怪物也没有!");getch();return;//在此结束函数}do{setPosition(MARGIN_X + 1, INFO_Y + 4);printf("请输入你要挑战的怪物(按0键返回)");scanf("%d", &choice);if (choice < 0 || choice >= currCount){setPosition(MARGIN_X + 1, INFO_Y + 4);printf("                                                                                                ");}} while (choice < 0 || choice >= currCount);if (choice == 0){ShowMap();return;}currMonster = &monsters[currmonsterIndex[choice - 1]];ShowBattle(currplayer, currMonster);getch();
}
void ShowBattle(Player*currplayer, Monster*currMonster)
{int count=1;int playerAtt;srand(time(0));while (currplayer->hp>0&&currMonster->hp>0){playerAtt = rand() % (currplayer->Weapon.maxAtt - currplayer->Weapon.minAtt) + currplayer->Weapon.minAtt;setPosition(MARGIN_X, INFO_Y + 4);printf("                                                                                         ");setPosition(MARGIN_X, INFO_Y + 4);currMonster->hp -= playerAtt;currplayer->hp -= currMonster->att;currplayer->mp -= 1 * playerAtt;if (currplayer->mp <= 0){printf("当前内力已透支");return;}if (currplayer->hp < 0)currplayer->hp = 0;if (currMonster->hp < 0)currMonster->hp = 0;printf("战斗进行第%d轮:%s HP:%d MP:%d\t\t%s HP:%d",count, currplayer->userName, currplayer->hp, currplayer->mp, currMonster->name, currMonster->hp);count++;_sleep(200);}if (currplayer->hp == 0){setPosition(MARGIN_X, INFO_Y + 5);printf("玩完了,大侠《%s》在与《%s》的斗争中牺牲", currplayer->userName, currMonster->name);return;//表示结束,可以不写else函数,直接结束函数的运行}int Item = rand() % 9;currMonster->state = 0;currplayer->price += currMonster->maxLoot;currplayer->exp += currMonster->exp;setPosition(MARGIN_X, INFO_Y + 5);printf("大侠《%s》胜出!金钱+%d   经验+%d 获得道具:%s", currplayer->userName, currMonster->maxLoot,currMonster->exp,propArray[Item].name);currplayer->bag.prop[currplayer->bag.count] = propArray[Item];currplayer->bag.count++;LevelUp();
}
void ShowTrade()
{int i;int choice=0;ClearInfo2();setPosition(MARGIN_X, INFO_Y);printf("当前《%s》所有的商品如下:",Map[Y][X]);setPosition(MARGIN_X + 2, INFO_Y + 1);for (i = 0; i < 10; i++){if (i == 9)break;if (i % 3 == 0&&i!=0){setPosition(MARGIN_X + 2, INFO_Y + 1 + i / 3);}printf("%d,%s %.1lf %d\t", propArray[i].id, propArray[i].name, propArray[i].price, propArray[i].stock);}setPosition(MARGIN_X, INFO_Y + 4);printf("请输入您要购买的商品序号:(按0键返回)");scanf("%d", &choice);if (choice == 0){ShowMap();return;}setPosition(MARGIN_X, INFO_Y + 5);Trade(currplayer, choice); ShowTrade();
}
void Trade(Player*player, int choice)
{if (choice > 9 || choice < 0){printf("所选的选项不存在");getch();return;}if (currplayer->price < propArray[choice-1].price){printf("你的钱不够呀!");getch();return;}if (currplayer->bag.count == currplayer->bag.maxcount){printf("你的背包空间不够了!");getch();return;}if (propArray[choice-1].stock == 0){printf("商店被你给买没了");getch();return;}//满足交易条件,执行交易的业务操作//1、商品库存-1propArray[choice-1].stock--;//2、玩家金币-商品单价player->price -= propArray[choice - 1].price;currplayer->bag.prop[currplayer->bag.count] = propArray[choice-1];currplayer->bag.count++;/*currplayer->bag.count++;for (i = 0; i < currplayer->bag.count; i++){currplayer->bag.prop[i] = propArray[choice - 1];}*/printf("商品《%s》以购买",propArray[choice-1].name);getch();return;
}
void LevelUp()
{int expMax = 3* pow(2,(currplayer->level));//pow(2,n)表示n的2次方。squrt(a)表示求a的开方if (currplayer->exp >= expMax){currplayer->exp = 0;currplayer->level++;defaultPlayer[playerCount - 1].hp += 10;defaultPlayer[playerCount - 1].mp += 30;currplayer->hp = defaultPlayer[playerCount - 1].hp;currplayer->mp = defaultPlayer[playerCount - 1].mp;setPosition(MARGIN_X, INFO_Y + 5);printf("                                                                                         ");setPosition(MARGIN_X, INFO_Y + 5);printf("恭喜升级,当前%d级,最大体力+10,最大耐力+30", currplayer->level);}
}
void Poccess(char key)
{switch (key){case '1':ShowPlayer();break;case '2':ShowMonster();break;case '3':ShowTrade();break;case '4':ShowHome();break;case '5':exit(0);break;}setPosition(MARGIN_X + 9, END);
}

main.c

#include"gamelib.h"
#include"game.h"
extern Player*currplayer;
extern int X, Y;
int main()
{setColor(10, 0);Start();Init();Clear();setPosition(MARGIN_X, MAP_Y);printf("当前的您的状况如下:     (按任意键开始游戏)");ShowPlayer();getchar();Clear();//-3272  -3280   -3275   -3277Init();setPosition(MARGIN_X + 27, 0);printf("维斯特洛大陆");setPosition(MARGIN_X , 1);printf("%s", SEP);setPosition(MARGIN_X, MENU_Y-1);printf("%s",SEP);setPosition(MARGIN_X, MENU_Y);printf("1:查看个人状态:");setPosition(MARGIN_X, MENU_Y + 1);printf("2:四处查看:");setPosition(MARGIN_X, MENU_Y + 2);printf("3:购买装备:");setPosition(MARGIN_X, MENU_Y + 3);printf("4:回到城堡:");setPosition(MARGIN_X, MENU_Y + 4);printf("5:退出游戏:");char key;while (1){ShowMap();key = getch();//相当于一个回车按键if (key == '1'||key == '2'||key == '3'||key == '4'||key == '5'){Poccess(key);//getch();//用来接收一个按键位,进行一下缓冲}if (key == 72){Y--;}if (key ==80){Y++;}if (key ==75){X--;}if (key ==77){X++;}if (X > 4)X =0;if (X < 0)X = 4;if (Y > 4)Y =0;if (Y < 0)Y =4;}return 0;
}

C语言,RPG小游戏相关推荐

  1. c语言 倒计时不清屏_打字游戏超细讲解(C语言基础小游戏)

    首先我们会发现我们网上看到的打字游戏都是上来就敲代码,小白看的一脸懵,所以鑫哥在这给大家送上一份超级详细的打字游戏编写流程及对应的结果展示,希望可以帮到小白进行入门学习. 话不多说,我们先看一下什么叫 ...

  2. c语言经典游戏,C语言——经典小游戏——打砖块

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言--经典小游戏--打砖块 玩法:按A与D控制球拍的移动,按S暂停游戏 百度网盘下载:http://pan.baidu.com/s/1o64ECTc ...

  3. c语言2048代码linux,C语言2048小游戏课设(附源码).doc

    PAGE PAGE 1 C语言2048小游戏课设 项目说明 本系统基于C语言开发,适用于刚入门的C语言新手项目课设,开发软件采用VC++6.0开发,VS,DEV C++等均可运行.(书生) 项目运行截 ...

  4. java制作纯字rpg小游戏_求java rpg小游戏源代码 最好是文字rpg 不需要很复杂 只是交作业用...

    展开全部 连连看的小源码 package Lianliankan; import javax.swing.*; import java.awt.*; import java.awt.event.*; ...

  5. c语言五子棋学年论文,基于c语言五子棋小游戏生本科论文.doc

    基于c语言五子棋小游戏生本科论文 五子棋小游戏 需求分析 现在有越来越多的人使用电脑,而且五子棋的受众广泛但实体棋操作较为繁琐且平时较难实现,所以电脑版的五子棋游戏应运而生.大家对于这个小游戏的需求如 ...

  6. 用c语言编写的打字母游戏,用C语言编写小游戏——“井字棋”

    原标题:用C语言编写小游戏--"井字棋" 作者:Milo Yip 来源:知乎 原文链接:https://zhuanlan.zhihu.com/p/39581573 在 Milo Y ...

  7. Docker搭建RPG小游戏

    Docker镜像 Docker 镜像类似于虚拟机镜像,可以将它理解为⼀个只读的模板. 例如,⼀个镜像可以包含⼀个基本的操作系统环境,⾥⾯仅安装了Apache 应⽤程序(或 ⽤⼾需要的其他软件) .可以 ...

  8. python做的RPG小游戏(面向对象思想)

    花一晚上时间做的一个RPG小游戏,欢迎大家联系我,和我交流. 接下来计划做一个基于socket网络连接,可以实现,多人登录进去玩的RPG网络小游戏 游戏效果 // main.pyfrom M1 imp ...

  9. C语言自制小游戏:三子棋(井字棋)智能下棋补充

    目录 一.前期准备 二.逻辑与程序实现 1.连珠 ①横向连珠 ②纵向连珠 ③斜向连珠 ④函数完善 2.堵棋 ①横向堵棋 ②纵向堵棋 ③斜向堵棋 3.整理函数 ①整理AI_Computer函数 ②修改C ...

  10. C语言实现小游戏——模拟微信小游戏《最强飞刀手》

    C语言实现小游戏--模拟微信小游戏<最强飞刀手> 曾经玩过的微信小游戏,想着用C语言实现,只可惜,下图是我的上限. 这个下游戏界面简陋,把旋转的西瓜做成了平的接盘:实现的功能有:接盘的移动 ...

最新文章

  1. 天气预报都哪儿去了?
  2. 使用ffmpeg推流到Wowza
  3. vue-cli脚手架构建项目注意事项(填坑)
  4. 如何取消Angular rxjs Observable的订阅
  5. RED5 安装及问题
  6. lisp画靶子 visual_基于VisualLISP的AutoCAD绘图命令的二次开发_沈良翼
  7. Nacos系列:欢迎来到Nacos的世界!
  8. mtk一键usb驱动_微星b460主板装win7系统及bios设置教程(支持十代usb驱动)
  9. 登峰连接程式改坐标软件_如何用SOLIDWORKS方程式驱动圆柱波浪线?
  10. oracle搭建dblink,oracle创建dblink方法示例
  11. 计算机网络——信息安全
  12. openwrt环境下,使用externel commissioning组网openthread
  13. EXCEL:转换人民币大写
  14. Could not autowire. No beans of 'StudentService' type found
  15. 实体链指(2)EL:Disambiguation-Only
  16. SM2国密算法加解密
  17. 平台会员卡券源码文档
  18. Eclipse TPTP平台配置详细步骤Ver1.0
  19. MySQL数据库基础(1)数据库基础
  20. 【JavaWeb学习】CSS(选择器)

热门文章

  1. python分态密度图_学术干货丨能带结构和态密度图的绘制及初步分析
  2. spring占位符无法替换的报错排查
  3. [转载]“我做SLAM,那么论文该怎么发?”
  4. 高中物理创新实验室有哪些建设要求
  5. 绿标2.0达标秘笈之隐私安全问题破解
  6. 网络安全 -VLAN
  7. 赋能智慧城市“规、建、运、管、服”——Umbrameta CIM平台探索“CIM+”应用超市
  8. Oracle数据库如何干净的删除
  9. MIUI小米 卸载金山安全服务
  10. 表演动画中的动作捕捉技术的应用