P가 B를 G로 밀어넣는 게임입니다. W는 벽입니다.
Dev c++에서는 실행되고, visual studio에서는 안되네요. 좋은 의견 부탁드립니다.
소스코드는 텍스트파일에 있습니다.
본문에 넣을 수 있는 걸 첨부파일로 넣지 말았으면.
소스 코드를 보여주려면https://kldp.org/node/158191 참고하셔요.
안 된다면 그냥 안 된다 가 아니라 무슨 에러가 난다는 걸 보여주면 좋겠네요. 안 그러면 "내가 해 보니 에러난다. 에러 메시지는 네가 실행시켜서 봐라"라고 하는 것으로 보여요.
세벌 https://sebuls.blogspot.kr/
각 함수에 인자값. 리턴값. 오류값을 출력해서 확인해 보시기 바랍니다.http://codepad.org/VGB8shEr
#include<stdio.h> //#include<conio.h> #include<string.h> //#include<Windows.h> char PrintMap_easy[15][15]; #define STD_OUTPUT_HANDLE -11 //GetStdHandle function //https://docs.microsoft.com/en-us/windows/console/getstdhandle int G1=0, G2 = 0; int B1 = 0, B2 = 0; int P1 = 0, P2 = 0; //G의 원래위치 결함방지 int GP1 = 0, GP2 = 0; int GP = 0; // 난이도별 맵 int Map_easy(void) { char Map_easy[15][15]; int i2 = 15, j2 = 15; // int i = 0, j = 0; for (i = 0; i < 15; ++i) { for (j = 0; j < 15; ++j) { Map_easy[i][j] = 0x00; //'\0' } } for (i = 1; i < 9; ++i) { for (j = 1; j < 9; ++j) { Map_easy[i][j] = '.'; } } //플레이어,골인점,박스 위치를 좌표로 기술 Map_easy[8][5] = 'P'; P1 = 8, P2 = 5; Map_easy[1][7] = 'G'; G1 = 1, G2 = 7; Map_easy[6][7] = 'B'; B1 = 6, B2 = 7; memcpy(&PrintMap_easy[0][0], &Map_easy[0][0], 15*15); for (i = 0; i < i2; ++i) { for (j = 0; j < j2; ++j) { printf("%c\t", PrintMap_easy[i][j]); } putchar('\n'); putchar('\n'); } return 0; } int Map_normal(void) { char Map_normal[15][15]; int i2 = 15, j2 = 15; // int i = 0, j = 0; for (i = 0; i < 15; ++i) { for (j = 0; j < 15; ++j) { Map_normal[i][j] = 'W'; } } for (i = 1; i < 12; ++i) { for (j = 1; j < 12; ++j) { Map_normal[i][j] = '.'; } } //플레이어,골인점,박스 위치를 좌표로 기술 Map_normal[8][5] = 'P'; P1 = 8, P2 = 5; Map_normal[1][7] = 'G'; G1 = 1, G2 = 7; Map_normal[6][7] = 'B'; B1 = 6, B2 = 7; memcpy(&PrintMap_easy[0][0], &Map_normal[0][0], 15*15); for (i = 0; i < i2; ++i) { for (j = 0; j < j2; ++j) { printf("%c\t", PrintMap_easy[i][j]); } putchar('\n'); putchar('\n'); } return 0; } int Map_hard(void) { char Map_hard[15][15]; int i2 = 15, j2 = 15; // int i = 0, j = 0; for (i = 0; i < 15; ++i) { for (j = 0; j < 15; ++j) { Map_hard[i][j] = 'W'; } } for (i = 1; i < 14; ++i) { for (j = 1; j < 14; ++j) { Map_hard[i][j] = '.'; } } //플레이어,골인점,박스 위치를 좌표로 기술 Map_hard[8][5] = 'P'; P1 = 8, P2 = 5; Map_hard[1][7] = 'G'; G1 = 1, G2 = 7; Map_hard[6][7] = 'B'; B1 = 6, B2 = 7; memcpy(&PrintMap_easy[0][0], &Map_hard[0][0], 15*15); for (i = 0; i < i2; ++i) { for (j = 0; j < j2; ++j) { printf("%c\t", PrintMap_easy[i][j]); } putchar('\n'); putchar('\n'); } return 0; } //텍스트 색깔바꾸기 void textcolor(int color_number) { // SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color_number); } //시작화면 int FirstScreen(void) { int nInput = 0; printf("Move Box 제작자:심명진 \n"); printf("난이도를 선택하시오.\n1.easy\n2.normal\n3.hard\n"); while (nInput != 1 && nInput != 2 && nInput != 3) { // scanf_s("%d",&nInput,sizeof(nInput)); break; } // system("cls"); return nInput; } //게임엔진 int GamePlay(int i2, int j2,char Map[15][15]) { int clear = 0; int i = 0, j = 0; int OP1 = P1, OP2 = P2, OG1 = G1, OG2 = G2, OB1 = B1, OB2 = B2; char Input=0; if (OP1 == P1) { // system("cls"); printf("wasd:이동\n"); for (i = 0; i < i2; ++i) { for (j = 0; j < j2; ++j) { printf("%c\t", Map[i][j]); } putchar('\n'); putchar('\n'); } } // Input = getch(); if (Input == 'w' || Input == 'a' || Input == 's' || Input == 'd') { if (Input == 'w') { P1 -= 1; } else if (Input == 'a') { P2 -= 1; } else if (Input == 's') { P1 += 1; } else if (Input == 'd') { P2 += 1; } if (Map[P1][P2] == '.') { Map[OP1][OP2] = '.'; Map[P1][P2] = 'P'; } else if (Map[P1][P2] == 'W') { P1 = OP1; P2 = OP2; } // 결함 else if (Map[P1][P2] == 'G') { GP = 1; GP1 = OG1; GP2 = OG2; Map[OP1][OP2] = '.'; Map[P1][P2] = 'P'; } else if (Map[P1][P2] == 'B') { if (Input == 'w') { B1 -= 1; } else if (Input == 'a') { B2 -= 1; } else if (Input == 's') { B1 += 1; } else if (Input == 'd') { B2 += 1; } { if (Map[B1][B2] == '.') { Map[B1][B2] = 'B'; Map[OB1][OB2] = 'P'; Map[OP1][OP2] = '.'; } else if (Map[B1][B2] == 'W') { P1 = OP1; P2 = OP2; B1 = OB1; B2 = OB2; } else if (Map[B1][B2] == 'G') { clear = 1; Map[B1][B2] = 'B'; Map[OB1][OB2] = 'P'; Map[OP1][OP2] = '.'; } } } } if (Map[OG1][OG2] == '.') { Map[OG1][OG2] = 'G'; } // system("cls"); printf("wasd:이동\n"); for (i = 0; i < i2; ++i) { for (j = 0; j < j2; ++j) { printf("%c\t", Map[i][j]); } putchar('\n'); putchar('\n'); } putchar('\a'); return clear; } int main(void) { int clear = 0; int nInput = 0; int i = 0, j = 0; int i2 = 15, j2 = 15; char Index1[15][15]; //콘솔창 크기조절 가로2=세로1 // system("mode con cols=200 lines=80"); //시작화면에서 난이도를 입력받기 nInput=FirstScreen(); nInput = 1; if (nInput == 1) { Map_easy(); memcpy(&Index1[0][0], &PrintMap_easy[0][0], 15*15); while (clear == 0) { clear=GamePlay(i2,j2,Index1); break; } } else if (nInput == 2) { Map_normal(); memcpy(&Index1[0][0], &PrintMap_easy[0][0], 15*15); while (clear == 0) { clear = GamePlay(i2, j2, Index1); } } else if (nInput == 3) { Map_hard(); memcpy(&Index1[0][0], &PrintMap_easy[0][0], 15*15); while (clear == 0) { clear = GamePlay(i2, j2, Index1); } } printf("game clear\n"); // _getch(); return 0; }
---------------------------------------------------------------------------- 젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다. 정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
본문에 넣을 수 있는 걸 첨부파일로 넣지 말았으면.
본문에 넣을 수 있는 걸 첨부파일로 넣지 말았으면.
소스 코드를 보여주려면
https://kldp.org/node/158191
참고하셔요.
안 된다면 그냥 안 된다 가 아니라 무슨 에러가 난다는 걸 보여주면 좋겠네요.
안 그러면 "내가 해 보니 에러난다. 에러 메시지는 네가 실행시켜서 봐라"라고 하는 것으로 보여요.
세벌 https://sebuls.blogspot.kr/
참고해보세요.
각 함수에 인자값. 리턴값. 오류값을 출력해서 확인해 보시기 바랍니다.
http://codepad.org/VGB8shEr
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기