打星星游戏
2015-07-07 15:53
190 查看
//大一暑假 #include <stdio.h> #include <stdlib.h> #include <conio.h> #define n 10//地图大小 int m=1; int g=5; //////////////////////////人是1,墙是9,星星是8/10,空位是0,光是2; int count=0; int point='w'; void move(int a[][10],int i,int j);//移动函数 void huatu(int a );//画图 void guang(int a[][10]); int main(void) { int a ={ {9,9,9,9,9,9,9,9,9,9}, {9,0,0,0,9,1,0,8,8,9}, {9,0,0,0,9,0,0,0,0,9}, {9,0,0,0,0,0,0,0,0,9}, {9,0,8,0,0,0,0,0,0,9}, {9,0,0,0,0,0,9,0,0,9}, {9,0,0,0,0,0,9,0,0,9}, {9,0,0,8,8,0,0,0,0,9}, {9,0,0,0,9,0,0,0,0,9}, {9,9,9,9,9,9,9,9,9,9} }; int ch; huatu(a); while(1) { ch=getch(); switch(ch) { case 72: move(a,-1,0);break; case 80: move(a,1,0);break; case 75: move(a,0,-1);break; case 77: move(a,0,1);break; case 'w': point='w';continue; case 's': point='s';continue; case 'a': point='a';continue; case 'd': point='d';continue; case 'j': guang(a);break; }; system("cls"); huatu(a); if(count==5)/////////终止条件 { printf("成功\n"); _sleep(1000); exit(0); } } return 0; } void move(int a[][10],int i,int j) { if(a[m+i][g+j]==9||a[m+i][g+j]==8)printf("撞墙或星星了"); //人-墙/星星 else if(a[m+i][g+j]==0)//人-无 { a[m][g]-=1; a[m+i][g+j]+=1; m+=i;g+=j; } } void guang(int a[][10]) { int i,j; if(point=='w')for(i=m-1;i>0 && a[i][g]!=9;--i){a[i][g]+=2;if(a[i][g]==10)++count;} else if(point=='s')for(i=m+1;i<9 && a[i][g]!=9;++i){a[i][g]+=2;if(a[i][g]==10)++count;} else if(point=='a')for(i=g-1;i>0 && a[m][i]!=9;--i){a[m][i]+=2;if(a[m][i]==10)++count;} else if(point=='d')for(i=g+1;i<9 && a[m][i]!=9;++i){a[m][i]+=2;if(a[m][i]==10)++count;} /////////////////////////显示攻击 system("cls"); huatu(a); _sleep(200); for(i=1;i<n-1;++i)///////被攻击后就变为0 for(j=1;j<n-1;++j) if(a[i][j]==2 || a[i][j]==10)a[i][j]=0; } void huatu(int a ) { int count=0; int i,j; for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(a[i][j]==5)count++; switch (a[i][j]) { case 9:printf("■");break; case 0:printf(" ");break; case 10: case 2:printf("□");break;//攻击 case 1:printf("㊣");break;///人 case 8:printf("☆");break;//星星 default: printf("?"); } } printf("\n"); } printf("\n\n按上下左右移动;;;;w s a d调整攻击方向;;; j攻击"); }
相关文章推荐
- 【数字图像处理之二】图像直方图均衡化
- 黑马程序员安卓Android52期 46期 35期就业班视频
- Sql Server 存储过程可选参数
- 图片展示(手动左右切换)
- springMVC注解方式+easyUI+MYSQL配置实例
- iOS8 CLLocationManager 、CLGeocoder获取地理位置
- 通过ApplicationContextAware加载Spring上下文环境
- 大整数的阶乘
- python re.search 和 re.match 正则表达式
- 密码学基础知识(五)序列密码
- 《软件学报》《计算机学报》《计算机研究与发展》为计算机类三大权威刊物
- NYOJ 198 数数
- Count Primes
- 泛型-模板函数-模板类
- PHP 获取客户端真实的ip地址
- 日历日历日历
- 对SQL连接池的理解
- PHPExcel融入ZF2
- ECNUOJ 2615 会议安排
- [laravel5.1学习]单个路由的中间件引用