非常简单的四子棋游戏
本人是刚学java的小白,最近在书上看到了有关四子棋游戏的编程题,就试着来写一写,代码也比较简单。
思路
写四子棋的难点是如何判断四个棋子连在一起。
下面给出图解:
观察上图,先从落棋点开始,设置一个计数器 i ,并初始化它为1,像左端移动,遇到的是跟落棋点相同颜色的棋子,则使 i 加1,继续向左端移动,没有棋子,则回到落棋点从而向右移动,向右端移动遇到第三个相同的棋,这时i = 3,然后继续向右移动遇到第四个棋子使 i = 4,到最后只要i = 4,即游戏胜利。再看下图。
按照上面的流程,先向左边移动,遇到没有棋子的点停止后 i = 2,再向右移动,遇到不同颜色的棋子后停止,i = 3,这样落棋点两边方向判断结束后,i < 4即游戏继续。
总结
判断游戏是否胜利,就是从棋子落点两个相反的方向,遇到相同的棋子使计数器数值加1,遇到无棋或颜色不同就结束向另一个方向,直到遇到无棋子和不同颜色的棋子,然后判断计数器是否为4。在四子棋中有7个方向需要判断。
import java.util.Scanner;
/**
*
*
* 玩法:1.跟五子棋玩法差不多,只是少一颗子,下棋只能选择每列下在每列棋子上面一格。
* 2.棋子分为黄、红,执黄先行。
* 3.胜利条件跟五子棋一样,就是少一颗子。
*/
class Desk {
//棋桌类
private char[][] date = new char[6][7];
private Scanner scanner = new Scanner(System.in) ;
private int hand = 1 ;
//画出整个棋盘以及上面的棋子
public void draw() {
for (int i = 0; i < this.date.length; i++) {
System.out.print("|");
for (int j = 0; j < this.date[i].length; j++) {
System.out.print(this.date[i][j] + "|");
}
System.out.println();
}
if (this.hand % 2 == 1) {