java五子棋程序_Java实现简单的五子棋小游戏

五子棋游戏(Java),供大家参考,具体内容如下

思路:

1.首先创建一个棋盘,建立一个二维数组,此文中为一个15*15的二维数组,

2.初始化棋盘,给棋盘上个点赋初始值为“+”;

3.打印棋盘;

4.开始游戏

创建一个下棋的函数(playChess),黑方棋子为“●”,白方棋子为“○”,用奇偶数分别代表黑方和白方;判断输赢,有5个连续一样的棋子即为赢,游戏结束

五个棋子连续条件

本来需要判断8个方向的棋子,但由于棋子没有方向,头尾可调换,所以只要使得有四个方向的棋子5个连续就可以,这四个方向分别为:右边、右上、右下、下边(其他对应方向也可以),如下图所示。

12d744e473fa581305807cfc0e60c7c7.png

import java.util.Scanner;

public class Demo01WuZiQi {

//1.创建一个15*15的棋盘

public static String[][] board = new String[15][15];

public static Scanner scanner = new Scanner(System.in);

public static int player = 0;

public static void main(String[] args) {

//2.初始化棋盘

initBoard();

//3.打印棋盘

printBoard();

//4.开始游戏

startGame();

}

private static void startGame() {

while (!isGameOver()) {

if (player % 2 == 0) { //黑方下棋

System.out.println(">>>请黑方下棋");

playChess("●");

} else { //白方下棋

System.out.println(">>>请白方下棋");

playChess("○");

}

player++;

}

System.out.println("Game Over");

}

private static boolean isGameOver() {

for (int x = 0; x < board.length; x++) {

for (int y = 0; y < board[x].length; y++) {

if(!board[x][y].equals("+")){

//向右

if (y < 11) {

if(board[x][y].equals(board[x][y+1])

&& board[x][y].equals(board[x][y+2])

&& board[x][y].equals(board[x][y+3])

&& board[x][y].equals(board[x][y+4]))

{

return true;

}

}

//向下

if (x < 11) {

if(board[x][y].equals(board[x+1][y])

&& board[x][y].equals(board[x+2][y])

&& board[x][y].equals(board[x+3][y])

&& board[x][y].equals(board[x+4][y]))

{

return true;

}

}

//向右下

if (x < 11 && y < 11) {

if(board[x][y].equals(board[x+1][y+1])

&& board[x][y].equals(board[x+2][y+2])

&& board[x][y].equals(board[x+3][y+3])

&& board[x][y].equals(board[x+4][y+4]))

{

return true;

}

}

//向右上

if (x > 3 && y < 11) {

if(board[x][y].equals(board[x-1][y+1])

&& board[x][y].equals(board[x-2][y+2])

&& board[x][y].equals(board[x-3][y+3])

&& board[x][y].equals(board[x-4][y+4]))

{

return true;

}

}

}

}

}

return false;

}

private static void playChess(String chess) {

System.out.print(">>>请输入棋子的坐标:");

int x = scanner.nextInt() - 1;

int y = scanner.nextInt() - 1;

if (board[x][y].equals("+")) {

board[x][y] = chess;

printBoard();

} else {

System.out.println(">>>此处已有棋子,请重新输入");

player--;

}

}

public static void printBoard() {

System.out.print(" ");

//打印列号

for (int i = 1; i <= board.length; i++) {

System.out.printf("%-3d",i);

}

System.out.println();

for (int i = 0; i < board.length; i++) {

//打印行号

System.out.printf("%-3d", i + 1);

//打印每一行的棋盘

for (int j = 0; j < board[i].length; j++) {

System.out.print(board[i][j] + " ");

}

System.out.println();

}

}

public static void initBoard() {

for (int i = 0; i < board.length; i++) {

for (int j = 0; j < board[i].length; j++) {

board[i][j] = "+";

}

}

}

}

更多有趣的经典小游戏实现专题,分享给大家:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值