网站大量收购闲置独家精品文档,联系QQ:2885784924

俄罗斯方块C-2012-2课件.pptVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
俄罗斯方块C-2012-2课件.ppt

C 语 言 教 程 _俄罗斯方块 2 中国福利会儿童计算机活动中心 俄 罗 斯 方 块 2 俄 罗 斯 方 块 2 例子:Box函数 俄 罗 斯 方 块 2 俄 罗 斯 方 块 2 俄 罗 斯 方 块 2 俄 罗 斯 方 块 2 俄 罗 斯 方 块 2 探究:在已经设定的容器中,怎样使一块积木从容器的顶端往下掉? 在积木下落的同时,操作左右方向键可以使积木作左右移动。操作向上的方向键则可以使积木旋转。 keyin()函数的局部参考程序: if (k==27) exit(0); if (k==0) { k=getch(); switch(k){ case 77: right(); delay(50);break; case 75: left(); delay(50);break; case 72: turn(); delay(50);break; case 80: break; } } 俄 罗 斯 方 块 积木的左右移动   不停掉下各种形状的积木在左右方向键的控制下可以灵活地移动。经过前面的探索,我们已经积木下落过程是由于积木的Y变量的变化导致的。那么,左、右方向键的使用,怎样可以让积木左右移动呢? 定义:左移函数left(),右移函数right() 由于在移动过程中,要判断是否碰到容器的左边框和右边框,以及是否碰到底边(包括是否碰到其他堆积在底边上的其他积木)。所以要定义一个专门的测试函数:test(),用以判别是否有空间可以移过去。Test()函数该放在那里有效呢? 参考程序 left() { int ox; t=32; display(i,t); ox=fx ; fx--; test(); if(s==1) fx=ox; t=219; display(i,t); } 积木块的旋转: 1 2 3 1 2 3 3 2 1 3 2 1 X1 =–2 Y1= 0 X1= 0 Y1=–2 X1 = 2 Y1= 0 X1= 0 Y1=2 X2 =–1 Y2= 0 X2= 0 Y2=–1 X2 = 1 Y2= 0 X2= 0 Y2=1 X3 = 0 Y2= 1 X3 =–1 Y3= 0 X3= 0 Y3=–1 X3= 1 Y3= 0 从这些数据变化中,可以找出其中的规律吗? 可以发现旋转90度后,原来的X数值变成了Y数值,而原来的Y数值改变符号后成为X数值。这就是旋转后每一小块的数据变化规律,对于其他各积木都是适用的。可以用以下的变换式来表示: 旋转后的 X’ = – Y 旋转前的 旋转后的 Y’ = X 旋转前的 如此,可以用类似于变量三角交换的语句来实现旋转90度后的数据变换。 c=x[i][j]; x[i][j]= -y[i][j]; y[i][j]=c; 数据变换后,必须先判别一下是否有空间可以旋转到那个位置。这样又要再一次调用test子程序去检测。检测后若FIAG=1说明某一位置己占位不能旋转,那么还要将数据变换回去。其子程序如下设计。 数据变换后,也必须先判别一下是否有空间可以旋转到那个位置。这样又要再一次调用test()函数去检测。检测后若s=1说明某一位置己占位不能旋转,那么还要将数据变换回去。参考程序如下: turn() { for (j=1;j4;j++) { c=x[i][j]; x[i][j]=-y[i][j]; y[i][j]=c; } test(); if (s==0) return; for (j=1;j4;j++) { c=y[i][j]; y[i][j]=-x[i][j]; x[i][j]=c;} } 探索: (1) 当新的

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档