栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA单机五子棋小游戏(双人对战版)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA单机五子棋小游戏(双人对战版)

 此代码为简单双人对战五子棋程序,不涉及算法游戏策略。 具有轮流出手,判断输赢,判断输入是否合法功能。 运行效果如图:

 

import java.io.*;
public class Gobang
{
 // 定义棋盘的大小
	private static int BOARD_SIZE = 15;
 // 定义一个二维数组来充当棋盘
	private String[][] board;

	int getsize(){
		return Gobang.BOARD_SIZE;
	}





	public void initBoard(){
 // 初始化棋盘数组
		board = new String[BOARD_SIZE][BOARD_SIZE];
 // 把每个元素赋为"╋",用于在控制台画出棋盘
		for (int i = 0 ; i < BOARD_SIZE ; i++){
			for ( int j = 0 ; j < BOARD_SIZE ; j++){
					board[i][j] = "╋";
			}
		}
	}
 // 在控制台输出棋盘的方法
	public void printBoard(){
 // 打印每个数组元素
		System.out.println(" 1 2 3 4 5 6 7 8 9 A B C D E F");
		for (int i = 0 ; i < BOARD_SIZE ; i++){
			System.out.print(Integer.toHexString(i+1).toUpperCase());
			for ( int j = 0 ; j < BOARD_SIZE ; j++){
               // 打印数组元素后不换行
				System.out.print(board[i][j]);
			}
 // 每打印完一行数组元素后输出一个换行符
		System.out.print("n");
		}
	}
	
	public static int GameOver(String[][] a,int	M,int N){
		for(int i=0;i3;i--){
			for(int j=N-1;j>3;j--){
				if(a[i][j]=="●" && a[i-1][j-1]=="●" && a[i-2][j-2]=="●" && a[i-3][j-3]=="●" && a[i-4][j-4]=="●")
					return 1;
				else if(a[i][j]=="○" && a[i-1][j-1]=="○" && a[i-2][j-2]=="○" && a[i-3][j-3]=="○" && a[i-4][j-4]=="○")
					return 2;
			}
		}
		return 0;
	}






    public static void main(String[] args) throws Exception{
		boolean b = false;
        Gobang gb = new Gobang();
		gb.initBoard();
		gb.printBoard();
		System.out.print("请白手输入坐标,应以x,y的格式:");
         // 这是用于获取键盘输入的方法
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String inputStr = null;
 // br.readLine():每当在键盘上输入一行内容按回车,用户刚输入的内容将被br读取到。
		while ((inputStr = br.readLine()) != null){
 // 将用户输入的字符串以逗号(,)作为分隔符,分隔成2个字符串
			try{	

			String[] posStrArr = inputStr.split(",");
 // 将2个字符串转换成用户下棋的座标

			int xPos = Integer.parseInt(posStrArr[0]);
			int yPos = Integer.parseInt(posStrArr[1]);
			if(gb.board[yPos - 1][xPos - 1].compareToIgnoreCase("╋") != 0){
				System.out.print("该位置已有棋子,请重新输入:");
				continue;
			}
 // 把对应的数组元素赋为"●"○。
			if(b == false){
				gb.board[yPos - 1][xPos - 1] = "●";
				b = true;
			}
			else{
				gb.board[yPos - 1][xPos - 1] = "○";
				b = false;
			}
			gb.printBoard();
			}catch (Exception e){
                System.out.println("您输入的格式有误!请重新输入!");
			}
			if(gb.GameOver(gb.board,gb.getsize(),gb.getsize())==1) {System.out.println("游戏结束, ● 胜!");}
			else if(gb.GameOver(gb.board,gb.getsize(),gb.getsize())==2) {System.out.println("游戏结束, ○ 胜!");}
			else {
			if(b == false)
				System.out.print("请白手输入坐标,应以x,y的格式:");
			else
				System.out.print("请黑手输入坐标,应以x,y的格式:");
		}
		}
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/362482.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号