非常簡單的四子棋【java編寫】 | 四子棋java

非常簡單的四子棋遊戲. 本人是剛學java的小白,最近在書上看到了有關四子棋遊戲的程式設計題,就試著來寫一寫,程式碼也比較簡單。

技術文章»非常簡單的四子棋【java編寫】非常簡單的四子棋【java編寫】2021-03-1412:00:21非常簡單的四子棋遊戲本人是剛學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(date[i][j]==color){number++;}elsebreak;}if(number==4)end(color,"win");//第三個方向(水平)number=1;for(inti=x,j=place-1;j>=0;j--){if(date[i][j]==colo


常見健康問答


延伸文章資訊