C语言控制台小游戏
来源:互联网 发布:网站 ip地址 域名绑定 编辑:程序博客网 时间:2024/05/22 02:05
游戏规则:在一个5行5列的数组中,每个元素都有两种状态,输入一个坐标点(x,y)ps:x,y取值为1~5,这个点和其上下左右的四个点都会变为其相反的状态,
如果所有的元素都变成了空心的圆,则过关,进入下一关....
void initArray();//初始化数组void refresh();//刷新数组void trigger(int x,int y);//控制void reversal(int x,int y);//逆转void playerCood();//玩家坐标int verdict();//裁定void levels();//关卡void engine();//进程
char arr[5][5];int answer[40] = {0};//保存随机数int k = 0;int level = 1;char pos = '1';//positivechar neg = '0';//negativevoid initArray()//初始化数组{ for(int i = 0; i < 5; i++) { for(int j = 0; j < 5; j++) { *(*(arr+i)+j) = pos; } }}void refresh()//刷新数组{ for(int i = 0; i < 5; i++) { for(int j = 0; j < 5; j++) { if(*(*(arr+i)+j) == pos) printf("⧬ "); else printf("⧭ "); } printf("\n"); }}void reversal(int x,int y)//逆转{ if(*(*(arr+x)+y) == pos) { *(*(arr+x)+y) = neg; } else { *(*(arr+x)+y) = pos; }}void trigger(int x,int y)//控制{ reversal(x, y); if(x - 1 >= 0) { reversal(x - 1, y);//上 } if(x + 1 <= 4) { reversal(x + 1, y);//下 } if(y - 1 >= 0) { reversal(x, y - 1);//左 } if(y + 1 <= 4) { reversal(x, y + 1);//右 }}void playerCood()//玩家坐标{ int x = 0, y = 0; printf("Coordinate(x,y):"); scanf("%d %d",&x,&y); if((x >0 && x <= 5) && (y > 0 && y <=5)) { x = x - 1;//转换 y = y - 1; trigger(x, y); } else //输入错误提示并重新输入 { printf("Input error ‼︎\n"); playerCood(); }}int verdict()//裁定{ for(int i = 0; i < 5; i++) { for(int j = 0; j < 5; j++) { if(*(*(arr+i)+j) == pos) { continue; } else //说明不全为‘⧬’,游戏还没有结束,返回 { return 0; } } } return 1;//game over}void levels()//关卡{ k = 0; for(int i = 0; i < level; i++) { int x = arc4random()%5; int y = arc4random()%5; answer[k] = x+1; k++; answer[k] = y+1; k++; trigger(x, y); }}void engine()//进程{ char yesno[20] = {'n'}; initArray();//数组初始化 if(1 == level) { printf("THE 1 LEVEL\n"); } levels();//载入关卡 printf("Note:"); for(int i = 0; i < k; i++)//答案 { printf("(%d ",answer[i++]); printf("%d)",answer[i]); } printf("\n"); refresh();//刷新 while(YES) { playerCood();//玩家坐标 refresh();//刷新 if(verdict() == 1) //判断是否结束 { printf("Congratulations, You passed the %d level !\n",level); printf("Continue or exit (y/n)? "); // getchar();//获得 scanf("%s",yesno); if('N' == yesno[0] || 'n' == yesno[0]) { printf("\nExit Success!"); exit(1); //退出 } else { level++; //进入下一关 printf("THE %d LEVEL\n",level); engine(); } } }}
int main(int argc, const char * argv[]){ engine(); return 0;}
THE 1 LEVEL
Note:(2 4)
⧬ ⧬⧬ ⧭⧬
⧬ ⧬⧭ ⧭⧭
⧬ ⧬⧬ ⧭⧬
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
Coordinate(x,y):2 4
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
Congratulations, You passed the 1 level !
Continue or exit (y/n)? y
THE 2 LEVEL
Note:(3 5)(4 1)
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧭
⧭ ⧬⧬ ⧭⧭
⧭ ⧭⧬ ⧬⧭
⧭ ⧬⧬ ⧬⧬
Coordinate(x,y):3 5
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
⧭ ⧬⧬ ⧬⧬
⧭ ⧭⧬ ⧬⧬
⧭ ⧬⧬ ⧬⧬
Coordinate(x,y):4 1
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
Congratulations, You passed the 2 level !
Continue or exit (y/n)? sadf
THE 3 LEVEL
Note:(1 4)(1 1)(3 1)
⧭ ⧭⧭ ⧭⧭
⧬ ⧬⧬ ⧭⧬
⧭ ⧭⧬ ⧬⧬
⧭ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
Coordinate(x,y):1 4
⧭ ⧭⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
⧭ ⧭⧬ ⧬⧬
⧭ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
Coordinate(x,y):1 1
⧬ ⧬⧬ ⧬⧬
⧭ ⧬⧬ ⧬⧬
⧭ ⧭⧬ ⧬⧬
⧭ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
Coordinate(x,y):3 1
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
⧬ ⧬⧬ ⧬⧬
Congratulations, You passed the 3 level !
Continue or exit (y/n)? n
Exit Success!
- C语言控制台小游戏
- c语言控制台输出制作拼图小游戏
- c语言控制台推箱子小游戏
- c语言控制台的一个贪吃蛇小游戏
- [C]名字大战(控制台小游戏)
- C语言小游戏源代码
- c语言数数小游戏
- 猜拳小游戏 C语言
- C语言小游戏 - 俄罗斯方块
- C语言小游戏
- C语言小游戏开发
- C语言小游戏"三子棋"
- C语言小游戏“扫雷”
- 扫雷小游戏【C语言】
- C语言随机数小游戏
- C语言2048小游戏
- 三子棋小游戏--C语言
- c语言小游戏---扫雷
- LeetCode(11) ContainerWithMostWater
- PHP运行出现Notice : Use of undefined constant 的解决办法
- CRM上线之路 走上了CRM实施顾问-第88天上班 -第19周
- AJAX_1
- 正则获取key value
- C语言控制台小游戏
- 帐号状态account_status
- delphi7的调试功能
- java web移植 遇到Project facet Java version 1.7 is not supported
- ENGLISH资料收集(44)-少管闲事
- linear regression 线性回归
- 程序人生的四个象限和两条主线
- H题
- linux的poll机制