资源描述:
《达内学习心得和TTS 有所不同的贪吃蛇 能穿墙而不是撞墙.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、达内学习心得:和TTS有所不同的贪吃蛇能穿墙而不是撞墙参赛人:陈彬豪获得奖项:三等奖内容:第一步,就是先把单个格子的属性创建出来publicclassCell{introw;intcol;intcolor;staticintindexRow=10000;//这个参数是上下穿墙用的,为了保证不用完,要尽可能的大staticintindexCol=10000;//这个参数是左右穿墙用的,为了保证不用完,要尽可能的大publicCell(){//对于父类,无参数构造器不一定用到,应该习惯的写上}public
2、Cell(intx,inty,intcolor){super();this.row=x;this.col=y;this.color=color;}//各属性的getset方法publicintgetColor(){returncolor;}publicvoidsetColor(intcolor){this.color=color;}publicintgetRow(){returnrow;}publicvoidsetRow(intx){this.row=x;}publicintgetCol(){retu
3、rncol;}publicvoidsetCol(inty){this.col=y;}/**向X轴负正向走*/publicvoidleft(){row=(indexRow+(--row))%40;/*这就是穿墙的关键,40是贪吃蛇墙的长,%40就能使蛇走不出墙,注意!!(--row)不能写成(row--)*/}/**向X轴负方向走*/publicvoidright(){row=(indexRow+(++row))%40;}/**向Y轴负方向走*/publicvoidup(){col=(indexCol+
4、(--col))%40;}/**向Y轴正方向走*/publicvoiddown(){col=(indexCol+(++col))%40;}publicStringtoString(){returnrow+","+col;}}第二步,对蛇身的构造,以及蛇运动的方法importjava.util.Arrays;publicclassBodyextendsCell{/**蛇身的颜色*/publicstaticfinalintBADY_COLOR=0x66ccff;/**身体*/publicCell[]bod
5、ys;/**头*/protectedCellhead;publicBody(){bodys=newCell[5];head=newCell(4,10,BADY_COLOR);bodys[0]=head;bodys[1]=newCell(3,10,BADY_COLOR);bodys[2]=newCell(2,10,BADY_COLOR);bodys[3]=newCell(1,10,BADY_COLOR);bodys[4]=newCell(0,10,BADY_COLOR);}/**绝对左移*/public
6、Cell[]moveLeft(){inti;wormWorm=newworm();//当前蛇身的长度intlength=Worm.getBodyCellsLength();//对蛇身数组的扩容bodys=Arrays.copyOf(bodys,length);for(i=length-1;i>0;i--){if(bodys[i]==null){//如果吃了食物就会扩容,扩容的新元素为nullbodys[i]=newCell();}bodys[i].col=bodys[i-1].col;bodys[i]
7、.row=bodys[i-1].row;}head.left();returnbodys;}/**绝对左移*/publicCell[]moveRight(){inti;wormWorm=newworm();intlength=Worm.getBodyCellsLength();bodys=Arrays.copyOf(bodys,length);for(i=length-1;i>0;i--){if(bodys[i]==null){bodys[i]=newCell();}bodys[i].setCol(b
8、odys[i-1].col);bodys[i].setRow(bodys[i-1].row);}head.right();returnbodys;}/**绝对上移*/publicCell[]goUp(){inti;wormWorm=newworm();intlength=Worm.getBodyCellsLength();bodys=Arrays.copyOf(bodys,length);for(i=length-1;i>0;i--){if(bodys[