极限编程20小时的游戏

来源:互联网 发布:java 导出本地excel 编辑:程序博客网 时间:2024/05/29 14:46

源码链接

 

部分源码

boolNoHit();//碰撞检测boolNoBody(int a);//障碍检测booleat();//吃羊检测intAlive();//还有几只羊boolSheepAction();//羊的行动boolhold(int key);//是否已经占据该关键点boolCanBeEat(int key);//判断移动后是否会被吃boolUP(int key);//向上找羊boolDOWN(int key);//向下找羊boolLEFT(int key);//向左找羊boolRIGHT(int key);//向右找羊boolSaveTop(int key);//移动前上面是否安全boolSaveBelow(int key);//移动前下面是否安全boolSaveLeft(int key);//移动前左面是否安全boolSaveRight(int key);//移动前右面是否安全boolUPSAVE(int key);//移动后上面是否安全boolDOWNSAVE(int key);//移动后下面是否安全boolLEFTSAVE(int key);//移动后左面是否安全boolRIGHTSAVE(int key);//移动后右面是否安全boolWolfUp(int wolf);//判断狼的上方是否被围boolWolfDown(int wolf);//判断狼的下方是否被围boolWolfLeft(int wolf);//判断狼的左方是否被围boolWolfRight(int wolf);//判断狼的右方是否被围intgetPos(int key);//根据狼或羊的编号获得位置编号boolWolfCanAction();//判断是否还有狼可以行动

 
// 羊的行动bool SheepAction(){// 先判断是否有羊处于狼口之下 有的话就跑for (int i = 0; i<15; i++){if (!SaveTop(i)){p[i].y -= 102;if (SaveTop(i) && SaveBelow(i) && SaveLeft(i) && SaveRight(i)){return true;}else{p[i].y += 102;}}if (!SaveBelow(i)){p[i].y += 102;if (SaveTop(i) && SaveBelow(i) && SaveLeft(i) && SaveRight(i)){return true;}else{p[i].y -= 102;}}if (!SaveLeft(i)){p[i].x -= 102;if (SaveTop(i) && SaveBelow(i) && SaveLeft(i) && SaveRight(i)){return true;}else{p[i].x += 102;}}if (!SaveRight(i)){p[i].x += 102;if (SaveTop(i) && SaveBelow(i) && SaveLeft(i) && SaveRight(i)){return true;}else{p[i].x -= 102;}}}//判断狼是否被围for (int i = 15; i<18; i++){if (!WolfUp(i)){if (UP(getPos(i)-5) || LEFT(getPos(i)-5) || RIGHT(getPos(i)-5)){return true;}}if (!WolfDown(i)){if (DOWN(getPos(i)+5) || LEFT(getPos(i)+5) || RIGHT(getPos(i)+5)){return true;}}if (!WolfLeft(i)){if (UP(getPos(i)-1) || DOWN(getPos(i)-1) || LEFT(getPos(i)-1)){return true;}}if (!WolfRight(i)){if (UP(getPos(i)+1) || DOWN(getPos(i)+1) || RIGHT(getPos(i)+1)){return true;}}}// 第一顺位关键点if (UP(6) || LEFT(6) || RIGHT(6) || DOWN(6)){return true;}else if(UP(8) || RIGHT(8) || LEFT(8) || DOWN(8)){return true;}else if (DOWN(16) || LEFT(16) || UP(16) || RIGHT(16)){return true;}else if (DOWN(18) || RIGHT(18) || UP(18) || LEFT(18)){return true;}// 第二顺位关键点else if (LEFT(21) || RIGHT(21) || UP(21)){return true;}else if (RIGHT(23) || LEFT(23) || UP(23)){return true;}else if (DOWN(15) || UP(15)){return true;}else if (DOWN(19) || UP(19)){return true;}else if (UP(5) || DOWN(5)){return true;}else if (UP(9) || DOWN(9)){return true;}else if (LEFT(1) || RIGHT(1)){return true;}else if (RIGHT(3) || LEFT(3)){return true;}// 第三顺位关键点else if (UP(7) || DOWN(7)){return true;}else if (LEFT(11) || RIGHT(11)){return true;}else if (RIGHT(13) || LEFT(13)){return true;}else if (DOWN(17) || UP(17)){return true;}// 第四顺位关键点else if (DOWN(2) || LEFT(2) || RIGHT(2)){return true;}else if (UP(22) || LEFT(22) || RIGHT(22)){return true;}else if (RIGHT(10) || UP(10) || DOWN(10)){return true;}else if (LEFT(14) || UP(14) || DOWN(14)){return true;}// 余下一个中心点和四个边角点else if (UP(12) || DOWN(12) || LEFT(12) || RIGHT(12)){return true;}else if (RIGHT(0) || DOWN(0)){return true;}else if (LEFT(4) || DOWN(4)){return true;}else if (UP(20) || RIGHT(20)){return true;}else if (UP(24) || LEFT(24)){return true;}// 判断到这里说明只有6 8 16 18这4个关键点可能有羊了 输定了else if(DOWN(1) || UP(11) || LEFT(7) || RIGHT(5)){return true;}else if(DOWN(3) || UP(13) || LEFT(9) || RIGHT(7)){return true;}else if(DOWN(11) || UP(21) || LEFT(17) || RIGHT(15)){return true;}else if(DOWN(13) || UP(23) || LEFT(19) || RIGHT(17)){return true;}return false;}

目前羊的AI不够完善 希望感兴趣的朋友一起讨论