C语言键盘控制走迷宫小游戏
时间:2021-03-28 09:18:22|栏目:C代码|点击: 次
本文实例为大家分享了C语言键盘控制走迷宫小游戏的具体代码,供大家参考,具体内容如下
在看了《啊哈C语言》之后想写一个游戏demo
游戏的截图
首先是启动界面
然后是初始化
接下来是键盘操控
地图的复杂度也很容易修改。
也支持退出。按s键选择退出游戏这个选项即可。
下面是源代码
#include <stdio.h> #include <stdlib.h> void startUp(); void gameInstructions(); void menu(char c); void gameMap(); char map[6][6]={"######", "#o # ", "# ## #", "# # #", "## #", "######" }; int main() { startUp();//游戏启动界面 gameInstructions();//游戏说明 //显示菜单 printf(" -> 开始游戏\n"); printf(" 退出游戏\n"); printf("按Enter进入游戏\n"); char choose1; choose1 = getch(); menu(choose1); //加载游戏地图 gameMap(); //玩家进行操作 system("cls"); int i,x,y,p,q,j; char ch; x=1;y=1;p=1;q=5; for(i=0;i<6;++i){ printf(" "); for(j=0;j<6;++j){ printf("%c ",map[i][j]); } printf("\n"); } while(x != p || y != q){ ch = getch(); if(ch == 's' || ch == 'S'){ if(map[x+1][y] != '#'){ map[x][y] = ' '; x++; map[x][y] = 'o'; }else{ printf("\a"); } } if(ch == 'w' || ch == 'W'){ if(map[x-1][y] != '#'){ map[x][y] = ' '; x--; map[x][y] = 'o'; }else{ printf("\a"); } } if(ch == 'a' || ch == 'A'){ if(map[x][y-1] != '#'){ map[x][y] = ' '; y--; map[x][y] = 'o'; }else{ printf("\a"); } } if(ch == 'd' || ch == 'D'){ if(map[x][y+1] != '#'){ map[x][y] = ' '; y++; map[x][y] = 'o'; }else{ printf("\a"); } } system("cls"); for(i=0;i<6;++i){ printf(" "); for(j=0;j<6;++j){ printf("%c ",map[i][j]); } printf("\n"); } } system("cls"); printf("You Win!\n"); Sleep(3000); return 0; } void startUp(){ int i; int circle = 2; for(i=0;i<circle;++i){ system("cls"); printf(" 游戏正在加载"); Sleep(500); system("cls"); printf(" 游戏正在加载."); Sleep(500); system("cls"); printf(" 游戏正在加载.."); Sleep(500); system("cls"); printf(" 游戏正在加载..."); Sleep(500); } system("cls"); printf(" 游戏加载完毕!\n"); Sleep(1000); } void gameInstructions(){ printf("<---操作按键:[W][S][A][D]--->\n"); printf("<---分别对应[上][下][左][右]--->\n"); printf("<---注意使用英文输入法--->\n"); Sleep(1000); } void menu(char c){ system("cls"); if(c == 'S' || c == 's'){ printf(" 游戏加载完毕!\n"); printf("<---操作按键:[W][S][A][D]--->\n"); printf("<---分别对应[上][下][左][右]--->\n"); printf(" 开始游戏\n"); printf(" -> 退出游戏\n"); printf("程序将在5s后关闭\n"); int i = 0; for(i=0;i<5;++i){ system("cls"); printf("程序将在 %ds后关闭\n",5-i); Sleep(1000); } exit(0);//退出程序 }else{ printf(" 游戏加载完毕!\n"); printf("<---操作按键:[W][S][A][D]--->\n"); printf("<---分别对应[上][下][左][右]--->\n"); printf(" -> 开始游戏\n"); printf(" 退出游戏\n"); printf("按Enter进入游戏\n"); } } void gameMap(){ system("cls"); printf("---正在加载游戏地图---\n"); int i, j; for(i=0;i<6;++i){ printf(" "); for(j=0;j<6;++j){ printf("%c ",map[i][j]); Sleep(100); } printf("\n"); Sleep(200); } system("cls"); printf("---Part1---\n"); for(i=0;i<6;++i){ printf(" "); for(j=0;j<6;++j){ printf("%c ",map[i][j]); } printf("\n"); } }