티스토리 뷰


package javaapplication1;

import java.io.*;

public class JavaApplication1 {

  

    public static void main(String[] args ) throws IOException{

     BufferedReader in=new BufferedReader(new InputStreamReader(System.in));

     

       int omok[][]=new int[8][8];

       int x,y,px,py,result=0,cnt;

     

       

       

/*--------------------오목배열 초기화-------------*/ 

       for(py=0; py<8; py++)

           for(px=0; px<8; px++)

               omok[py][px]=0;

       

       

       System.out.println("오목프로그램 시작.(초기화완료)");

       

/*-----------------게임시작-----------------------------------------------*/

         while(true)

       {

           System.out.printf("오목판에 오목을 놓거라!\n");

           System.out.print("X축입력:");

            x=Integer.parseInt(in.readLine());

            System.out.print("Y축입력:");

            y=Integer.parseInt(in.readLine());

            if(x>7||y>7||omok[y][x]==1)

            {

                System.out.printf("다시입력해!\n");

                continue; //입력이 틀릴시 while문으로 다시올라감.

            }

            omok[y][x]=1;

            

            

 /*----------------출력부분-----------------*/

       for(py=0; py<8; py++){

           for(px=0; px<8; px++)

               System.out.printf("%d  ",omok[py][px]);

           System.out.printf("\n");

                                }

       

/*----------------검사시작------------------*/

       

      

/*-----------------x축검사식-------------------*/

   

       for(px=0,cnt=0; px<7; px++)

      {

          

          if(omok[y][px]==1&&omok[y][px]==omok[y][px+1])

              cnt++;

          if(cnt>=4)

              result=1;

              

      }           

       

/*----------------y축검사식------------------*/

      

      for(py=0 ,cnt=0; py<7; py++)

      {

          if(omok[py][x]==1&&omok[py][x]==omok[py+1][x])

              cnt++;

          if(cnt>=4)

              result=1;

              

      }     

/*----------------대각선축검사------------------*/

  if(x>y)//x축이 더 클때의 상황 처리식.

    for(px=x-y,py=0,cnt=0; px<7; py++,px++){

        if(omok[py][px]==1&&omok[py][px]==omok[py+1][px+1])

            cnt++;

        if(cnt>=4)

            result=1;

    }

  else//y축이 더 클때의 상황과 가운데 대각선 까지 처리식.

     for(px=0,py=y-x,cnt=0; py<7; py++,px++){

        if(omok[py][px]==1&&omok[py][px]==omok[py+1][px+1])

            cnt++;

        if(cnt>=4)

            result=1;

    }


  

/*----------------역대각선축검사------------------*/

  if(x+y>7)//x+y가 7보다 더 클때의 역대각선검사 처리식.

  for(px=x+y-7,py=7,cnt=0; px<7; py--,px++)

     if(omok[py][px]==1&&omok[py][px]==omok[py-1][px+1])

            cnt++;

        if(cnt>=4)

            result=1;

  else if(x+y<=7)//x+y가 7보다 작거나 같을때의 역대각선검사 처리식.

     for(py=x+y,px=0,cnt=0; py>0; py--,px++)

     if(omok[py][px]==1&&omok[py][px]==omok[py-1][px+1])

            cnt++;

        if(cnt>=4)

            result=1;

/*--------------------------------result판단-------------*/

       if(result==1){

           System.out.printf("게임종료.\n게임에서 이겻습니다.\n"); 

           break;

       }

       

/*----------------검사종료------------------*/       

        }

/*-----------------게임종료 -----------------------------------------------*/

                               

       

                       

       }

    

    }

'IT Skills > Programming' 카테고리의 다른 글

C#-수강신청  (0) 2013.04.10
Linux vi편집기 사용법(한글깨짐오류처리방법포함)&&telnet 기본적인 사용법  (0) 2013.04.02
JAVA - 오목 만들어보기 1  (0) 2013.04.01
C#-2  (0) 2013.03.25
java  (0) 2013.03.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함