JAVA简易五子棋游戏

这是我们的第一次java作业,一个五子棋小游戏,不用实现屏幕交互

由于初学,找了很多资料,调试了很多遍才成功

放代码:

package java1;
import java.util.Arrays;
import java.util.Scanner;
public class wzq {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		boolean finish = false;//控制游戏是否结束
		int turn = 1;
		int x = 0,y = 0;
		final char player1 = '*';
		final char player2 = 'o';//常量定义玩家2使用的字符
		final char empty = '-';//常量定义空棋盘字符
		
		char cb[][] = new char[10][10];//定义11*11二维数组
		for (int i = 0;i < (cb.length);i++) {
			Arrays.fill(cb[i],empty);//棋盘每一个坐标填上empty
		}
		while(!finish) {//游戏开始,打印棋盘,
			System.out.println("-------------------");
			System.out.println("  1 2 3 4 5 6 7 8 9");
			for (int i = 1;i < 10;i++) {//只打印9*9,实现显示出的棋盘都能落子
				System.out.print(i + " ");
				fo
  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的 Java 五子棋游戏代码,供参考: ```java import java.util.Scanner; public class Gobang { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[][] board = new int[15][15]; int player = 1; int row, col; while (true) { System.out.print("Player " + player + " make a move (row, col): "); row = scanner.nextInt(); col = scanner.nextInt(); if (board[row][col] != 0) { System.out.println("Invalid move, try again."); continue; } board[row][col] = player; printBoard(board); if (checkWin(board, row, col, player)) { System.out.println("Player " + player + " wins!"); break; } player = 3 - player; // switch to the other player } } public static void printBoard(int[][] board) { for (int i = 0; i < 15; i++) { for (int j = 0; j < 15; j++) { System.out.print(board[i][j] + " "); } System.out.println(); } } public static boolean checkWin(int[][] board, int row, int col, int player) { int count = 0; // horizontal for (int j = col - 4; j <= col; j++) { if (j < 0 || j + 4 >= 15) { continue; } count = 0; for (int k = 0; k < 5; k++) { if (board[row][j + k] == player) { count++; } } if (count == 5) { return true; } } // vertical for (int i = row - 4; i <= row; i++) { if (i < 0 || i + 4 >= 15) { continue; } count = 0; for (int k = 0; k < 5; k++) { if (board[i + k][col] == player) { count++; } } if (count == 5) { return true; } } // diagonal (top-left to bottom-right) for (int i = row - 4, j = col - 4; i <= row && j <= col; i++, j++) { if (i < 0 || j < 0 || i + 4 >= 15 || j + 4 >= 15) { continue; } count = 0; for (int k = 0; k < 5; k++) { if (board[i + k][j + k] == player) { count++; } } if (count == 5) { return true; } } // diagonal (bottom-left to top-right) for (int i = row + 4, j = col - 4; i >= row && j <= col; i--, j++) { if (i >= 15 || j < 0 || i - 4 < 0 || j + 4 >= 15) { continue; } count = 0; for (int k = 0; k < 5; k++) { if (board[i - k][j + k] == player) { count++; } } if (count == 5) { return true; } } return false; } } ``` 该代码使用一个二维数组 `board` 表示棋盘,每个空格的值为 0 表示未落子,1 表示黑子,2 表示白子。每个回合轮流由两个玩家输入坐标,在棋盘上落子,然后判断是否有任何一方胜利。`checkWin()` 方法用于检查一个玩家在该回合是否获胜,它依次检查横向、纵向和两个对角线上是否有连续的五颗同色棋子。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值