디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

아아아...런타임에러 원인좀 알려주실분...

ㅁㅌ(115.126) 2012.03.05 21:34:20
조회 69 추천 0 댓글 4

형들 내가 지금 허접하게 스도쿠 게임을 C로 짜고 있는데 런타임 에러에서 막혀부렀어

키 조작 함수에서 숫자를 입력하면 런타임 에러가 뜨네

이런거 익숙치 않아서 당황스러워.. 도와줘요

소스는 아래

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <Windows.h>
#include <conio.h>

#define UP 72
#define DOWN 80
#define LEFT 75
#define RIGHT 77
#define ESC 27
#define space 32
#define Enter 13

void BlankArray_init (int *black_dupli[9]);
void Blank (int blank_dupli[][9], int select);
void Su_Rand (int temp[][9] , int key[][9] , int select);
void Playing_Game ();
void check_n_print(int corr, int key[][9], int x, int y);


void gotoxy(int x,int y)

 COORD xy = {x,y};
 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),xy); 
}

void SetColor(int bcolor,int tcolor) //bcolor는 배경 색, tcolor는 텍스트 색
{
    HANDLE hcon; 
    hcon = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hcon,(bcolor<<4)|tcolor);

enum Color  //콘솔에서 사용하는 색상
{
 BLACK,    BLUE,    GREEN, CYAN, RED,  MAGENTA,  BROWN, LIGHTGRAY,
  DARKGRAY,  LIGHTBLUE,  LIGHTGREEN, LIGHTCYAN, LIGHTRED,  LIGHTMAGENTA,  YELLOW,  WHITE
};

static int key[9][9]; //정답지
int blank_dupli[9][9]; //빈칸 뚫기 검사

void main ()
{
 int select = 0;
 


 
 //int su2[9][9];
 int temp[9][9] =
  {
   {1,2,3,4,5,6,7,8,9},
   {4,5,6,7,8,9,1,2,3},
   {7,8,9,1,2,3,4,5,6},  
   {2,3,4,5,6,7,8,9,1},
   {5,6,7,8,9,1,2,3,4},
   {8,9,1,2,3,4,5,6,7},   
   {3,4,5,6,7,8,9,1,2},
   {6,7,8,9,1,2,3,4,5},
   {9,1,2,3,4,5,6,7,8}
  };

 Su_Rand (temp, key, 10);
 Blank (blank_dupli, 1);
 Playing_Game();
}

void Su_Rand (int temp[][9] , int key[][9] , int select)
{
 int  a, b, i, j, k, l, Rand, temp1;


 srand(time(NULL));

 for (a = 0 ; a < (select+10) ; a++)
 {
  Rand = rand() % 3;
  i = (rand() % 3) + (Rand * 3);
  j = (rand() % 3) + (Rand * 3);

  for (b = 0 ; b < 9 ; b++)
  {
   temp1 = temp[b][i];
   temp[b][i] = temp[b][j];
   temp[b][j] = temp1;
  }
 }

 for (a = 0 ; a < (select+10) ; a++)
 {
  Rand = rand() % 3;
  k = (rand() % 3) + (Rand * 3);
  l = (rand() % 3) + (Rand * 3);

  for (b = 0 ; b < 9 ; b++)
  {
   temp1 = temp[k][b];
   temp[k][b] = temp[l][b];
   temp[l][b] = temp1;
  }
 }

 for (a = 0 ; a < 9 ; a++)
 {
  for (b = 0; b < 9 ; b++)
  {
   key[a][b] = temp[a][b];
  }
 }
 
 for (i = 0 ; i < 9 ; i++)
 {
  for (j = 0 ; j < 9 ; j++)
  {
   printf ("%d" , temp[i][j]);
  }
  printf ("n");
 }


}


void Blank (int blank_dupli[][9], int select)
{
 int i, k, l;
 
 BlankArray_init (blank_dupli); //배열을 0으로 초기화

 for (i = 0 ; i < (5*select)+10 ; i++)
 {
  k = rand() % 9;
  l = rand() % 9;
  //k = (4*(rand() % 9))+3;
  //l = (2*(rand() % 9))+1;
  if (blank_dupli[k][l] == 0)
  {
   SetColor(WHITE,NULL);
   gotoxy(k,l);
   printf(" ");
   blank_dupli[k][l] = 1; //중복으로 빈칸이 생성되는걸 방지
  }
 }
 SetColor (BLACK,WHITE);
 gotoxy (30,30);
}

void BlankArray_init (int blank_dupli[][9])
{
 int i, j;

 for (i = 0; i < 9; i++)
 {
  for (j = 0; j < 9; j++)
  {
   blank_dupli[i][j] = 0;
  }
 }
}

void Playing_Game (int black_dupli[][9])
{
 int i, j, buffer, corr;
 int x = 0, y = 0;
 gotoxy (x,y);

 while (buffer = getch())
 {
  switch (buffer)
  {
  case UP:
   if (y == 0)
    break;
   y -= 1;
   gotoxy (x,y);
   break;
  
  case DOWN:
   if (y == 8)
    break;
   y += 1;
   gotoxy (x,y);
   break;

  case LEFT:
   if (x == 0)
    break;
   x -= 1;
   gotoxy(x,y);
   break;

  case RIGHT:
   if (x == 8)
    break;
   x += 1;
   gotoxy (x,y);
   break;

  case ESC:
   gotoxy(0,9);
   return;
   break;
  default :
   break;

  }
  if ( 49 <= buffer && buffer <= 58 )
  {
   corr = buffer - 48;

   if (black_dupli[x][y] == 0) //0이면 빈칸이 아닌 곳  <-------------디버깅해보니까 여기서 에러가 남 ㅠㅠ
   {
    gotoxy(0,20);
    printf("문제지 숫자입니다. 변경할 수 없습니다n");
    gotoxy(x,y);
   }
   else //1이면 빈칸이 뚫린 곳
   {
    check_n_print (corr, key, x, y);
   }

  }
 }
}
void check_n_print(int corr, int key[][9], int x, int y)
{
 if (corr == key[x][y])
 {
  SetColor (NULL,BLUE);
  printf("%d", corr);
 }
 else
 {
  SetColor (NULL,RED);
  printf("%d", corr);
 }
}

시간되는 고수님들 도와줘요 ㅠ
그리고 디버그모드에서는 에러뜨는데 릴리즈 모드에서는
에러 안뜨는 이유가 뭐죠

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뛰어난 운동 신경으로 남자와 싸워도 이길 것 같은 여자 스타는? 운영자 25/11/24 - -
이슈 [디시人터뷰] 충무로가 주목하는 신예, '세계의 주인' 서수빈 운영자 25/11/24 - -
AD 대학생 필수템! What's in my Bag 운영자 25/11/21 - -
306486 왜 우리나라는 퇴근할 때 눈치를 보는가?? [3] 서현빠돌이갤로그로 이동합니다. 12.03.09 93 0
306485 형님들, JAVA에서 키보드없이 키보드 눌린효과를 주고 싶은데요... [6] 로히블랑코(211.221) 12.03.09 97 0
306484 JSP에 소스 다 때려박으면 말야 [3] 야요이갤로그로 이동합니다. 12.03.09 69 0
306483 강간을 해보겠습니다. [1] 야요이갤로그로 이동합니다. 12.03.09 81 0
306482 '퇴근해보겠습니다' 는 정확한 표현이다. [2] 바보플머(218.155) 12.03.09 542 1
306478 자바 웹 프 독학으로 가능? [9] ㅁㅌ(121.124) 12.03.09 193 0
306476 엄마가 칼을 사온게 미스테리 ㄷㄷㄷㄷ 서현빠돌이갤로그로 이동합니다. 12.03.09 33 0
306474 크롬에서 자바스크립트 처리 속도 [1] 공돌이대장갤로그로 이동합니다. 12.03.09 61 0
306473 바보플머의 파서강좌. [1] 바보플머(218.155) 12.03.09 106 0
306472 학교에서 프로세싱이란걸 배웟슴 [1] 강원도(1.177) 12.03.09 67 0
306471 횽들 C 매크로 뭐뭐 있지? [3] 생물학(211.234) 12.03.09 69 0
306470 내일은 금요일 [1] 생물학(211.234) 12.03.09 38 0
306469 즐거운 금요일 [2] 알렉산더갤로그로 이동합니다. 12.03.09 54 0
306467 전에 파서 짠다고 한거 건드리고 있는데 [2] 땡칠도사갤로그로 이동합니다. 12.03.09 101 0
306466 나도 샀따. [2] Gromit갤로그로 이동합니다. 12.03.09 79 0
306465 출근해보겠습니다 [1] 신입(115.23) 12.03.09 58 0
306463 정보처리기사가 있으면 뭐가 좋나요? [7] (61.81) 12.03.09 231 0
306462 도스와 윈도우의 차이점?? [2] 변질된면상갤로그로 이동합니다. 12.03.09 73 0
306460 증명 할수 있나? [3] 전원버튼갤로그로 이동합니다. 12.03.09 87 0
306459 안드로이드 초보인데 [1] cyber갤로그로 이동합니다. 12.03.09 75 0
306458 음... 이런 마사지 기구도 있네... SODMaster갤로그로 이동합니다. 12.03.09 86 0
306457 이상은없는데 오류가 뜨네 이거좀 ㅋ [13] 마실나감갤로그로 이동합니다. 12.03.09 114 0
306455 으 아까 비주얼 6.0 함수 질문인데 다시 정리 ㅜ [8] C++(125.129) 12.03.08 69 0
306454 대문자형은 봅니다... java로 3d... [1] 막장신입(14.32) 12.03.08 67 0
306449 개초보 질문임다.. if else if 문 [6] vold갤로그로 이동합니다. 12.03.08 75 0
306448 형들 비주얼 씨 호환문제 [3] ㅇㅇ갤로그로 이동합니다. 12.03.08 37 0
306447 [질문글]함수의 리턴값 질문요 ㅠㅠ [2] 엠엠데쓰갤로그로 이동합니다. 12.03.08 59 0
306446 비주얼 6.0 쓰는데 math 함수 관련 질문 [2] C++(125.129) 12.03.08 40 0
306445 디더링된 이미지를 원래대로 돌려주는 필터 같은 거 없을까 [1] 가나다라마법(211.44) 12.03.08 33 0
306444 이것좀 알려주세요 [6] -(122.34) 12.03.08 115 0
306443 .js 파일말인데 [2] CELICA갤로그로 이동합니다. 12.03.08 77 0
306442 자바에 Call by reference가 없다는게 무슨 말인지.. [6] 잡빠(122.128) 12.03.08 111 0
306440 for문은 어떻게 짜시나? [4] ㅇㅇ(122.128) 12.03.08 113 0
306439 닷넷 잘 아는 형들 있음? [1] 헤헤헤헤갤로그로 이동합니다. 12.03.08 68 0
306435 형들 vs2010 이거 왜 그런지 아시는분 계심? [2] 길가던놈갤로그로 이동합니다. 12.03.08 71 0
306432 미국 IT 회사의 근무 환경 뭐가 달라? [2] 서현빠돌이갤로그로 이동합니다. 12.03.08 207 0
306430 php에서 .= 은 뭐냐 ㅡ.ㅡ??? [4] 서현빠돌이갤로그로 이동합니다. 12.03.08 102 0
306429 나 신입인데 집에 언제가야함?... [7] 신입(122.36) 12.03.08 167 0
306428 java의 참조가 null 값을 가질 수 없음? [4] 추상화갤로그로 이동합니다. 12.03.08 82 0
306426 횽들 오늘 교수님이 이상한 질문을... [19] 뉴비(118.46) 12.03.08 158 0
306425 mfc 코드좀 봐줘 [2] mfc(119.214) 12.03.08 54 0
306420 형들 네트워크보안전문가 유망직종? [7] 효효횽(211.246) 12.03.08 143 0
306419 형들 오류가 51개가 뜨는데 왜 이런지좀 알려주세요(사진포함) [8] 행인(58.140) 12.03.08 80 0
306418 여기가 숙제갤인가요? [4] Harper갤로그로 이동합니다. 12.03.08 77 0
306417 리눅스 [1] 등골브레이커(175.117) 12.03.08 62 0
306416 프갤횽들~ 정보처리기사 책 좀 추천해 주시와요~ .ㅅ.(211.237) 12.03.08 52 0
306415 갤러리 존나병신같다 [3] 개쉛기갤로그로 이동합니다. 12.03.08 145 0
306414 인공지능 vs MFC [3] 면역이(14.44) 12.03.08 145 0
306412 비쥬얼 스튜디오 2010 한글판 구할곳 업나욤,, [9] 1(165.246) 12.03.08 139 0
306410 형들........헬프... [1] CampusTalk갤로그로 이동합니다. 12.03.08 47 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2