c拼图小游戏.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c拼图小游戏

/*新建游戏,实际上就是把有数字的八个方格打散, 这种效果的实现就是随机的两两交换,而怎么不与空的那个交换呢? 这涉及有没有解的问题 不管怎么样,九格游戏最后的结果只有两个: 123 | 123 456 | 456 78 | 87 (证明从略) 而要两两交换而始终有解的话,(从原序列开始)必须:相邻交换的次数为偶 但我们用一种更有效的方法: 每一个总与其下第二个交换. 第7,8个与0,1交换,只要交换次数多,仍可获得相同的效果. 而这些的前提是其中的0不能与其第奇数个作奇数次交换. 为了省事,不处理0... 其中产道理,请自己思考 */ #includestdio.h #includetime.h #includestdlib.h #includewindows.h #include conio.h #define L 12 static void change(int a,int b); static int GetTheNull(); static int isSuccess(); static void update(); static void newGame(); static void clrscr();//清屏 static void gotoxy(int x,int y);//把光标移动到屏幕的x(1~80),y(1~25/50)处 static void randomize(void);//复位随机发生器 static int random(int a);//产生一个在0到a-1之间的整数 static int num[]={1,2,3,4,5,6,7,8,0}; /*方块的数字*/ void main() { system(color 1A); char key=0; /*键盘码*/ int pos; /*九格中,空格的位置*/ clrscr(); /*清屏*/ randomize(); /*初始化随机发生器*/ gotoxy(L,1);printf( 欢 迎 使 用 本 款 游 戏 ); gotoxy(L,3);printf(*******************************************************); newGame(); gotoxy(L,20);printf(*******************************************************); for(;;) { gotoxy(L,22);printf(重新开始请按N,推出请按ESC:); key=getch(); /*获得键盘输入*/ if(key==0) continue; pos=GetTheNull(); /*得到空格*/ switch(key){ /*测试按键*/ case 72: /*按下*/ if(pos=5) change(pos,pos+3); break; case 80: /*按上*/ if(pos=3) change(pos,pos-3); break; case 77: /*按左*/ if(pos%3!=0) change(pos,pos-1); break; case 75: /*按右*/ if(pos%3!=2) change(pos,pos+1); break; case 110: /*按下‘n’新建游戏*/ newGame(); } update(); /*更新*/ if(isSuccess()) { /*看是否游戏成功,成功了,输出一个写有Well done!的外框*/ clrscr(); gotoxy(26,10); printf(*********************); got

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档