출처 : 반크_독도포스터
참고풀이]
//Dev-C++ 5.11로 작업함.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main(void) {
char board[10][10] = {
{'#', '#', '#', '#', '#', '.', '.', '.', '.', '.' },
{'.', '.', '.', '.', '.', '#', '.', '.', '.', '.' },
{'#', '#', '#', '.', '#', '.', '.', '.', '.', '.' },
{'.', '.', '#', '.', '.', '#', '.', '.', '.', '.' },
{'.', '.', '#', '.', '.', '#', '.', '.', '.', '.' },
{'.', '.', '#', '.', '.', '#', '.', '.', '.', '.' },
{'.', '.', '.', '#', '.', '.', '#', '#', '.', '.' },
{'.', '.', '.', '.', '#', '.', '.', '.', '#', '#' },
{'.', '.', '.', '.', '.', '#', '.', '.', '.', '.' },
{'.', '.', '.', '.', '.', '#', '#', '#', '#', '#' } };
int xpos, ypos;
int x, y;
int ch, ch2;
int chk;
int count;
// 사용자로부터 위치를 받아서 보드에 표시한다.
count=3;
while(count)
{
xpos = 0, ypos = 1;
board[ypos][xpos] = '@';
chk=1;
while (1) {
system("cls");
printf("왼쪽이동: →, 오른쪽 이동: ←, 위쪽 이동: ↑, 아래쪽 이동: ↓\n");
printf("게임어 : %d\n",count);
for (y = 0; y < 10; y++) {
for (x = 0; x < 10; x++) printf("%c", board[y][x]);
printf("\n");
}
board[ypos][xpos] = '.';
ch = getch();
if (ch == 224)
{
ch2 = getch();
if (ch2 == 75) xpos--; // ←
else if (ch2 == 80) ypos++; // ↑
else if (ch2 == 72) ypos--; // ↓
else if (ch2 == 77) xpos++; // →
}
if(ypos==10 || xpos==10) break;
if(board[ypos][xpos]=='#')
{
chk=0;
break;
}
else board[ypos][xpos] = '@';
}
if(chk)
{
printf("\n통과를 축하합니다!!!\n");
break;
}
else
{
count--;
printf("\n벽에 닿아 미션을 통과하지 못하였습니다.\n");
printf("다음에는 꼭 통과하세요.\n");
}
}
return 0;
}
참고풀이 결과]
대한민국의 아름다운 영토, 독도의 여름
'프로그램 > C언어 1000제' 카테고리의 다른 글
C언어 81제] C언어 콘서트 CHAPTER 10 p396 도전문제 2 문제 업그레이드 (0) | 2021.12.30 |
---|---|
C언어 80제] C언어 콘서트 CHAPTER 10 p396 도전문제 1 유사문자열도 정답으로 하기 (0) | 2021.12.30 |
C언어 78제] C언어 콘서트 CHAPTER 10 p385 도전문제 2 벽에 닿으면 실패하는 게임으로 바꿔보자 (0) | 2021.12.28 |
C언어 77제] C언어 콘서트 CHAPTER 10 p385 도전문제1 화살표 키 입력받기 (0) | 2021.12.28 |
C언어 76제] C언어 콘서트 CHAPTER 9 Programming 6 5번 문제에서 영상밝기를 증가시키는 함수, 출력함수 등등을 추가하기 p372 (0) | 2021.12.28 |
댓글