Java編程實現五子棋人人對戰代碼示例

利用Java,在控制臺操作下,編寫的五子棋,作為復習二維數組,面向對象等基礎知識。w表示白棋,b表示黑棋

創新互聯主營澗西網站建設的網絡公司,主營網站建設方案,重慶App定制開發,澗西h5小程序制作搭建,澗西網站營銷推廣歡迎澗西等地區企業咨詢

Java編程實現五子棋人人對戰代碼示例

import java.util.Scanner;

public class MainMethod {

	public static char[][] c = new char[10][10];

	public static void main(String[] args) {
		MainMethod mainMethod = new MainMethod();
		mainMethod.init();
		int i;
		boolean color;
		int[] point = new int[2];
		Scanner scanner = new Scanner(System.in);

		for (i = 1; i < 100; i++) {
			mainMethod.draw();// 繪制棋盤
			System.out.println("請輸入坐標,范圍為(0,0)到(9,9)");
			int x = scanner.nextInt();
			int y = scanner.nextInt();
			if (i % 2 == 1)
				color = true;
			else
				color = false;
			point[0] = x;
			point[1] = y;
			if (mainMethod.paint(point, color) == false) {//
				System.out.println("下的位置不合理,請重新開始");
				break;
			}
			if (mainMethod.win() == 1) {
				mainMethod.draw();
				System.out.println("恭喜白棋贏!!");
				break;
			} else if (mainMethod.win() == -1) {
				mainMethod.draw();
				System.out.println("恭喜黑棋贏!!");
				break;
			}

		}

		if (i == 100)
			System.out.println("平局");

	}

	public char[][] init() {// 初始化棋盤
		for (int i = 0; i < c.length; i++) {
			for (int j = 0; j < c.length; j++) {
				c[i][j] = '+';
			}
		}
		return c;
	}

	public boolean paint(int[] point, boolean colr) {// 判斷下的位置是否正確,若正確改變棋盤
		boolean b = true;
		int x = point[0];
		int y = point[1];

		if (inBoard(point) == false || c[x][y] == 'w' || c[x][y] == 'b' || x < 0) {
			b = false;
			return b;
		}

		else if (colr == true) {// 白棋下
			if (c[x][y] == '+') {
				c[x][y] = 'w';
			}
		}

		else if (colr == false) {// 黑棋下
			if (c[x][y] == '+') {
				c[x][y] = 'b';
			}
		}
		return b;
	}

	public boolean inBoard(int[] point) {// 判斷point是否在棋盤上
		int x = point[0];
		int y = point[1];
		if (x < 0 || y < 0 || x >= c.length || y >= c.length)
			return false;
		else
			return true;

	}

	public int win() {// 判斷輸贏,1表示白的贏,-1黑的贏,0暫無輸贏
		int whoWin = 0;

		int[] point = new int[2];
		outer: while (true) {
			for (int i = 0; i < c.length; i++) {
				for (int j = 0; j < c.length; j++) {

					if (c[i][j] == 'w') {// 遍歷數組,找到的第一個白棋
						point[0] = i;
						point[1] = j + 4;

						if (inBoard(point)) {// 如果存在向右數4個的棋盤
							if (c[i][j + 1] == 'w' && c[i][j + 2] == 'w' && c[i][j + 3] == 'w' && c[i][j + 4] == 'w') {
								whoWin = 1;
								break outer;
							}
						}

						point[0] = i + 4;
						point[1] = j + 4;

						if (inBoard(point)) {// 如果存在向右,向下數4個的棋盤
							if (c[i + 1][j + 1] == 'w' && c[i + 2][j + 2] == 'w' && c[i + 3][j + 3] == 'w'
									&& c[i + 4][j + 4] == 'w') {
								whoWin = 1;
								break outer;
							}
						}

						point[0] = i + 4;
						point[1] = j;

						if (inBoard(point)) {// 如果存在向下數4個的棋盤
							if (c[i + 1][j] == 'w' && c[i + 2][j] == 'w' && c[i + 3][j] == 'w' && c[i + 4][j] == 'w') {
								whoWin = 1;
								break outer;
							}
						}

						point[0] = i - 4;
						point[1] = j + 4;

						if (inBoard(point)) {// 如果存在向左,向下數4個的棋盤
							if (c[i - 1][j + 1] == 'w' && c[i - 2][j + 2] == 'w' && c[i - 3][j + 3] == 'w'
									&& c[i - 4][j + 4] == 'w') {
								whoWin = 1;
								break outer;
							}
						}

					} else if (c[i][j] == 'b') {
						point[0] = i;
						point[1] = j + 4;

						if (inBoard(point)) {// 如果存在向右數4個的棋盤
							if (c[i][j + 1] == 'b' && c[i][j + 2] == 'b' && c[i][j + 3] == 'b' && c[i][j + 4] == 'b') {
								whoWin = -1;
								break outer;
							}
						}

						point[0] = i + 4;
						point[1] = j + 4;

						if (inBoard(point)) {// 如果存在向右,向下數4個的棋盤
							if (c[i + 1][j + 1] == 'b' && c[i + 2][j + 2] == 'b' && c[i + 3][j + 3] == 'b'
									&& c[i + 4][j + 4] == 'b') {
								whoWin = -1;
								break outer;
							}
						}

						point[0] = i + 4;
						point[1] = j;

						if (inBoard(point)) {// 如果存在向下數4個的棋盤
							if (c[i + 1][j] == 'b' && c[i + 2][j] == 'b' && c[i + 3][j] == 'b' && c[i + 4][j] == 'b') {
								whoWin = -1;
								break outer;
							}
						}

						point[0] = i - 4;
						point[1] = j + 4;

						if (inBoard(point)) {// 如果存在向左,向下數4個的棋盤
							if (c[i - 1][j + 1] == 'b' && c[i - 2][j + 2] == 'b' && c[i - 3][j + 3] == 'b'
									&& c[i - 4][j + 4] == 'b') {
								whoWin = -1;
								break outer;
							}
						}

					}

				}
			}
			whoWin = 0;
			break outer;

		}
		return whoWin;
	}

	public void draw() {// 繪制棋盤
		for (int i = 0; i < c.length; i++) {
			for (int j = 0; j < c.length; j++) {
				System.out.print(c[i][j] + " ");
			}
			System.out.println();
		}
	}

}

運行結果:

+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
請輸入坐標,范圍為(0,0)到(9,9)
4
6
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + w + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
請輸入坐標,范圍為(0,0)到(9,9)
6
5
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + w + + + 
+ + + + + + + + + + 
+ + + + + b + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
+ + + + + + + + + + 
請輸入坐標,范圍為(0,0)到(9,9)

誰輸誰贏我就不弄出來了,太長,占地。。

總結

以上就是本文關于Java編程實現五子棋人人對戰代碼示例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

當前名稱:Java編程實現五子棋人人對戰代碼示例
鏈接分享:http://m.kartarina.com/article46/pipieg.html

成都網站建設公司_創新互聯,為您提供小程序開發網站導航網站建設電子商務營銷型網站建設Google

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站優化排名
主站蜘蛛池模板: 国产a级理论片无码老男人| 国产精品无码永久免费888| 亚欧无码精品无码有性视频| 亚洲国产精品无码专区| 亚洲日产无码中文字幕| 97性无码区免费| 无码国产色欲XXXXX视频| 红桃AV一区二区三区在线无码AV| 久久久久无码精品国产h动漫| 少妇精品无码一区二区三区| 亚洲熟妇无码八V在线播放| 一本色道无码道DVD在线观看 | 精品无码久久久久久久久久| 日韩精品人妻系列无码专区| 无码人妻精品一区二区| 亚洲AV无码一区二区三区在线观看| 亚洲成AV人在线播放无码| 国产丝袜无码一区二区视频| 亚洲AV无码之日韩精品| 亚洲国产成人精品无码区花野真一| 亚洲第一极品精品无码久久| 人妻无码久久精品| 免费一区二区无码东京热| 粉嫩高中生无码视频在线观看| 一本久道综合在线无码人妻| 亚洲gv猛男gv无码男同短文| h无码动漫在线观看| 东京热HEYZO无码专区| 内射人妻无套中出无码| 亚洲日韩看片无码电影| 无码夫の前で人妻を犯す中字| 亚洲AV中文无码字幕色三| 人妻无码一区二区视频| 无码人妻少妇久久中文字幕| 亚洲国产精品成人AV无码久久综合影院| 无码免费午夜福利片在线| 成人免费午夜无码视频| 日韩精品中文字幕无码专区| 在线观看无码的免费网站| 亚洲?v无码国产在丝袜线观看| 日韩视频无码日韩视频又2021|