๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/Etc

(JAVA) ๋ฐฐ์—ด ํ‹ฑํƒํ†  ๊ฒŒ์ž„

by yunamom 2022. 1. 24.
728x90
300x250
package E4_๋ฐฐ์—ด4_ํ‰๊ฐ€๋ฌธ์ œ;

import java.util.Arrays;
import java.util.Scanner;
import java.util.Random;

public class ๋ฐฐ์—ด4_ํ”„๋กœ์ ํŠธ_ํ‹ฑํƒํ†  {
	/* 
	 * [ํ‹ฑํƒํ† ]
	 *  
	 * 	์กฐ๊ฑด1) ๊ตฌ๊ธ€ ํฌ๋กฌ์— "ํ‹ฑํƒํ† " ๊ฒ€์ƒ‰ํ›„ ๊ฒŒ์ž„์„ ํ•œ๋ฒˆํ•˜๊ณ  
	 * 	          ์•„๋ž˜์™€๊ฐ™์ด ๋งŒ๋“ค์–ด๋ณด๊ธฐ.
	 *  ์กฐ๊ฑด2) P1 , P2 ๋ฅผ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ํ”Œ๋ ˆ์ด.
	 *  ์กฐ๊ฑด3) ๋จผ์ € ํ•œ์ค„์„ ์™„์„ฑํ•˜๋ฉด ์Šน๋ฆฌ
	 *  [์ถ”์ฒœ์กฐ๊ฑด] P2 ๋Š” com์œผ๋กœ ๋Œ€์ฒดํ•ด๋ณด์ž.(com์€ ๋žœ๋ค์œผ๋กœ ํ”Œ๋ ˆ์ด)
	 *
	 *=============
	 * [์ฒ˜์Œํ™”๋ฉด]
	 * 0,0,0
	 * 0,0,0
	 * 0,0,0
	 * [p1]์ธ๋ฑ์Šค ์ž…๋ ฅ : 6
	 * =============
	 * [1ํ„ด]
	 * 0,0,0
	 * 0,0,0
	 * 1,0,0
	 * [p2]์ธ๋ฑ์Šค ์ž…๋ ฅ : 1
	 * =============
	 * [2ํ„ด]
	 * 0,2,0
	 * 0,0,0
	 * 1,0,0
	 * [p1]์ธ๋ฑ์Šค ์ž…๋ ฅ : 3
	 * =============
	 * [3ํ„ด]
	 * 0,2,0
	 * 1,0,0
	 * 1,0,0
	 * [p2]์ธ๋ฑ์Šค ์ž…๋ ฅ : 2
	 * =============
	 * [4ํ„ด]
	 * 0,2,2
	 * 1,0,0
	 * 1,0,0
	 * [p1]์ธ๋ฑ์Šค ์ž…๋ ฅ : 0
	 * =============
	 * [5ํ„ด]
	 * 1,2,2
	 * 1,0,0
	 * 1,0,0
	 * [p1] ์Šน๋ฆฌ 
	 * ๋Œ€๊ฐ์„  0,4,8 / ์˜ค๋ฅธ์ชฝ ๋Œ€๊ฐ์„  2,4,6
	 */
	static boolean check(int tic[],int p) {
		int x=0,y=0,l=0,r=0,cnt=0;
		for(int i=0,j=0; i<tic.length; i++) {
			if(tic[i]==p) { //๊ฐ€๋กœ ์ฒดํฌ 
				x++;
			}
			if(tic[j+cnt]==p) { //์„ธ๋กœ ์ฒดํฌ
				j+=3; y++;
			}
			if(x==3 || y==3 || l==3 || r==3) {
				return true;
			}
			if(i%3==2) {
				if(tic[cnt*3+cnt]==p) l++; //์™ผ์ชฝ๋Œ€๊ฐ์„  0,4,8 ์ฒดํฌ 
				x=0;y=0;j=0;cnt++;
				if(tic[cnt*3-cnt]==p) r++; //์˜ค๋ฅธ์ชฝ๋Œ€๊ฐ์„  2,4,6 ์ฒดํฌ
			}
		}
		return false;
	}
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		Random ran=new Random();
		int tic[]=new int[9];
		int turn=0,p=-1,index=0;
		
		while(true) {
			System.out.printf("[%dํ„ด]\n",turn);
			for(int i=0; i<tic.length; i++) {
				System.out.printf("|%d|",tic[i]);
				if(i%3==2) {
					System.out.println();
				}	
			}
			if(check(tic,p)==true) {
				System.out.println(p+"๋‹˜ ์Šน๋ฆฌ!");break;
			}
			if(turn==tic.length) {
				System.out.println("[๋ฌด์Šน๋ถ€]"); break;
			}
			p=turn%2+1;
			System.out.printf("[p%d] ์ธ๋ฑ์Šค์ž…๋ ฅ:",p);
			if(p==1) {
				index= scan.nextInt();
				if(index<0 || index>=tic.length || tic[index]!=0) {
					System.out.println("๋‹ค์‹œ์ž…๋ ฅํ•˜์„ธ์š”."); continue;
				}tic[index] = p;
			}else {
				while(true) {
					index = ran.nextInt(tic.length);
					if(tic[index]==0) {
						break;
					}	
				}tic[index] = p;
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}System.out.println(index); turn++;
		}
	}
}

 

์™„๋ฃŒ!

 

728x90
300x250

์ฝ”๋“œ