June is Combung

틱택토 본문

java/2차원 배열

틱택토

june__Park 2021. 3. 23. 11:05
package week4;

import java.util.Scanner;

class Ex03 {
	String[][] game = new String[3][3];
	int turn = 0;
	int win = 0;
}

public class TicTakTok {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		Ex03 e = new Ex03();
		for (int i = 0; i < e.game.length; i++) {
			for (int j = 0; j < e.game[i].length; j++) {
				e.game[i][j] = "[ ]";
			}
		}
		while (true) {
			for (int i = 0; i < e.game.length; i++) {
				for (int j = 0; j < e.game[i].length; j++) {
					System.out.print(e.game[i][j] + " ");
				}
				System.out.println();
			}
			System.out.println();
			if (e.win == 1) {
				System.out.println("[p1]승리");
				break;
			} else if (e.win == 2) {
				System.out.println("[p2]승리");
				break;
			}
			if (e.win == 0 && e.turn == 9) {
				System.out.println("비겼다.");
				break;
			}
			if (e.turn % 2 == 0) {
				System.out.print("[p1]y좌표 입력 : ");
				int y = scan.nextInt();
				System.out.print("[p1]x좌표 입력 : ");
				int x = scan.nextInt();
				if (x >= 3 || y >= 3 || x < 0 || y < 0) {
					System.out.println("좌표값오류 ");
					continue;
				}
				if (e.game[y][x].equals("[ ]")) {
					e.game[y][x] = "[O]";
					e.turn += 1;
				}
			} else if (e.turn % 2 == 1) {
				System.out.print("[p2]y좌표 입력 : ");
				int y = scan.nextInt();
				System.out.print("[p2]x좌표 입력 : ");
				int x = scan.nextInt();
				if (x >= 3 || y >= 3 || x < 0 || y < 0) {
					System.out.println("좌표값오류 ");
					continue;
				}
				if (e.game[y][x].equals("[ ]")) {
					e.game[y][x] = "[X]";
					e.turn += 1;
				}
			}
			for (int i = 0; i < e.game.length; i++) {
				if (!e.game[i][1].equals("[ ]") && e.game[i][1].equals(e.game[i][0])
						&& e.game[i][2].equals(e.game[i][1])) {
					if (e.game[i][0].equals("[O]")) {
						e.win = 1;
					} else {
						e.win = 2;
					}
				}
			}
			for (int i = 0; i < e.game.length; i++) {
				if (!e.game[i][1].equals("[ ]") && e.game[1][i].equals(e.game[0][i])
						&& e.game[2][i].equals(e.game[1][i])) {
					if (e.game[0][i].equals("[O]")) {
						e.win = 1;
					} else {
						e.win = 2;
					}
				}
			}
			if (!e.game[0][0].equals("[ ]") && e.game[0][0].equals(e.game[1][1]) && e.game[1][1].equals(e.game[2][2])) {
				if (e.game[0][0].equals("[O]")) {
					e.win = 1;
				} else {
					e.win = 2;
				}
			}
			if (e.game[0][2].equals(e.game[1][1]) && e.game[1][1].equals(e.game[2][0]) && !e.game[2][0].equals("[ ]")) {
				if (e.game[0][2].equals("[O]")) {
					e.win = 1;
				} else {
					e.win = 2;
				}
			}
		}
	}
}

'java > 2차원 배열' 카테고리의 다른 글

1등학생  (0) 2021.03.23
Comments