非常简单的四子棋【java编写】 | 四子棋java

本人是刚学java的小白,最近在书上看到了有关四子棋游戏的编程题,就试着来写一写,代码也比较简单。

思路. 写四子棋的难点是如何判断四个棋子连在一起。

非常简单的四子棋【java编写】孤风寒雪2021-03-1212:29:203343收藏11文章标签:java游戏版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/m0_52349141/article/details/114692927版权非常简单的四子棋游戏本人是刚学java的小白,最近在书上看到了有关四子棋游戏的编程题,就试着来写一写,代码也比较简单。

思路写四子棋的难点是如何判断四个棋子连在一起。

下面给出图解:观察上图,先从落棋点开始,设置一个计数器i,并初始化它为1,像左端移动,遇到的是跟落棋点相同颜色的棋子,则使i加1,继续向左端移动,没有棋子,则回到落棋点从而向右移动,向右端移动遇到第三个相同的棋,这时i=3,然后继续向右移动遇到第四个棋子使i=4,到最后只要i=4,即游戏胜利。

再看下图。

按照上面的流程,先向左边移动,遇到没有棋子的点停止后i=2,再向右移动,遇到不同颜色的棋子后停止,i=3,这样落棋点两边方向判断结束后,i<4即游戏继续。

总结判断游戏是否胜利,就是从棋子落点两个相反的方向,遇到相同的棋子使计数器数值加1,遇到无棋或颜色不同就结束向另一个方向,直到遇到无棋子和不同颜色的棋子,然后判断计数器是否为4。

在四子棋中有7个方向需要判断。

importjava.util.Scanner;/*****玩法:1.跟五子棋玩法差不多,只是少一颗子,下棋只能选择每列下在每列棋子上面一格。

*2.棋子分为黄、红,执黄先行。

*3.胜利条件跟五子棋一样,就是少一颗子。

*/classDesk{//棋桌类privatechar[][]date=newchar[6][7];privateScannerscanner=newScanner(System.in);privateinthand=1;//画出整个棋盘以及上面的棋子publicvoiddraw(){for(inti=0;i=0;i--){//if(date[i][place]=='\u0000'){date[i][place]=color;break;}}if(i<0)System.exit(1);elsewin(i,place,color);}//判断游戏是否有人胜利或平局(依据是根据落子位置的两个方向是否连成四子)publicvoidwin(intx,intplace,charcolor){intnumber=1;//第一个方向(右斜线方向)for(inti=x-1,j=place-1;(i>=0)&&(j>=0);i--,j--){if(date[i][j]==color){number++;}elsebreak;}for(inti=x+1,j=place+1;(i<=5)&&(j<=6);i++,j++){if(date[i][j]==color){number++;}elsebreak;}if(number==4)end(color,"win");//第二个方向(左斜线方向)number=1;for(inti=x-1,j=place+1;(i>=0)&&(j<=6);i--,j++){if(date[i][j]==color){number++;}elsebreak;}for(inti=x+1,j=place-1;(i<=5)&&(j>=0);i++,j--){if(


常見健康問答


延伸文章資訊