2016년 2월 6일 토요일

c언어 스도쿠 만들기 : 배열

일주일만에 스도쿠에 도전을 한다.
스도쿠를 예전에 군대에 있을 때 친구가 하는 걸 보고 관심이 생겨 한 번 해본적이 있었다.
룰은 간단했지만 굉장히 어려워서 금세 포기하고 말았다. 그런데 그런 스도쿠를 만들다니 정말 아이러니했다.

http://navercast.naver.com/contents.nhn?rid=22&contents_id=1127 그림 발췌


스도쿠는 위 그림처럼  9x9칸으로 구성 되어 있고 3x3 칸 9개로 볼 수 있다.
3x3 안에는 1~9까지 겹치지 않게 들어가고 가로줄 9개에 1~9까지 겹치지 않게 모두 들어가있다. 또한 세로줄 마찬가지이다.


#include<stdio.h>
int main()
{
    int i,j;
 int A[9][9]= {
  {2,0,5,0,0,7,0,0,6},
  {4,0,0,9,6,0,0,2,0},
  {0,0,0,0,8,0,0,4,5},
  {9,8,0,0,7,4,0,0,0},
  {5,7,0,8,0,2,0,6,9},
  {0,0,0,6,3,0,0,5,7},
  {7,5,0,0,2,0,0,0,0},
  {0,6,0,0,5,1,0,0,2},
  {3,0,0,4,0,0,5,0,8}
 };
 int B[9][9] = {
  {2,3,5,1,4,7,9,8,6},
  {4,1,8,9,6,5,7,2,3},
  {6,9,7,2,8,3,1,4,5},
  {9,8,6,5,7,4,2,3,1},
  {5,7,3,8,1,2,4,6,9},
  {1,4,2,6,3,9,8,5,7},
  {7,5,9,3,2,8,6,1,4},
  {8,6,4,7,5,1,3,9,2},
  {3,2,1,4,9,6,5,7,8}
 };
 int c[9][9];

 printf("아래에 0에 들어가는 알맞는 자리를 입력하세요.\n");
 for(i=0;i<9;i++)
 {
  for(j=0;j<9;j++)
  {
   printf("%2d",A[i][j]);
  }
  printf("\n");
 }
 mygoto :
 printf("스도쿠의 모든 숫자를 입력하세요\n");
 do{
 for(i=0;i<9;i++)
 {
  scanf_s("%d %d %d %d %d %d %d %d %d",&c[i][0],&c[i][1],&c[i][2],&c[i][3],&c[i][4],&c[i][5],&c[i][6],&c[i][7],&c[i][8]);
 }
 for(i=0;i<9;i++)
  for(j=0;j<9;j++)
  {
   if(c[i][j] != B[i][j])
   {
    printf("틀렸습니다. 다시 입력하세요 \n");
 goto mygoto;            // 여기에  continue를 해서 반복문 처음으로 보냈었는데 그랬더니 9번 틀리면 9번 틀렸습니다. 다시 입력하세요 라고 나오고 맞는 줄은 정답 게임종료라고 계속 떠서 goto로 반복문 앞 으로 보냈다.
   }
  }

 }while(c[8][8] != B[8][8]);
 printf(" 정답! 게임종료\n");





 

댓글 2개:

  1. 작성자가 댓글을 삭제했습니다.

    답글삭제
  2. How to Play Pai Gow Poker | BetRivers Casino - Wolverione
    Pai Gow Poker is worrione.com an online version of a traditional table game poormansguidetocasinogambling in which players place bets in the https://septcasino.com/review/merit-casino/ background. Pai Gow Poker uses only the symbols wooricasinos.info from a

    답글삭제