두부와 백설기
futureDevBlog
두부와 백설기
전체 방문자
오늘
어제
  • 분류 전체보기 (19)
    • 컴퓨터(IT) (4)
      • 책 서평or소개 (4)
      • 궁금증 해결 (0)
    • C (3)
      • 코딩 문제 (3)
    • JAVA (0)
      • 이것이 자바다 일대기 (0)
    • 직무관련 대외활동(교육) (1)
    • 일반 활동 기록 (11)
      • 혼공학습단 8기 (6)
      • 네이버 부스트코스 파이썬 코칭스터디(PY4E) (2)
      • 베어유(빡공단)생활영어(구 SQL) (0)
      • 2024 블록체인 누리단 (3)
    • 흘러가는 일상 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 페이스북

공지사항

인기 글

태그

  • 챌린지
  • 혼공학습단
  • 코딩문제
  • 공부
  • 빡공단
  • 스터디
  • 서평
  • 2024블록체인누리단
  • 혼공JS
  • 혼공학습단 8기
  • JavaScript
  • 쉽게 풀어쓴 C언어 Express
  • 오블완
  • abc waas
  • 베어유
  • 자바스크립트
  • 오아시스비지니스
  • k-에듀케이션
  • 티스토리챌린지
  • c언어
  • 타임교육c&p
  • JS
  • 알고리즘
  • 혼공
  • character and string
  • 문자와 문자열
  • 자료구조
  • 혼공단
  • 학습
  • 자기개발

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
두부와 백설기

futureDevBlog

C/코딩 문제

[쉽게 풀어쓴 C언어 Express]Ch.10 배열 array_Programming16

2022. 6. 20. 23:32

어떤 조건으로 해야 하는지 생각하고 고르는게 오래 걸렸다.


#include<stdio.h>
#include<stdlib.h>

int main(void) {

	char key;
	int  y = 1, x = 0;
	char map[20][15] = {
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'#','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','M','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','M','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','M','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','G'}
	};

	while (1) {
		for (int i = 0; i < 20; i++) {
			printf(" ");

			for (int j = 0; j < 15; j++)
				printf("%c", map[i][j]);

			printf("\n");
		}

		if (map[19][14] == '#') {
			printf("축하합니다! 금을 찾았어요!");
			_getch();
			break;
		}

		key = _getch();

		switch (key)
		{
		case 'w':
			--y;
			if (map[y][x] == 'M') { ++y; break; }
			// 벽(M)으로 이동하면 원래 좌표로

			if (y < 20 && y >= 0) {
				map[y + 1][x] = '.';
				map[y][x] = '#';
			}
			else
				y = 0;	// 맵 외부(배열 범위 밖)로 이동하면 다시 원래 좌표로

			break;
		case 's':
			++y;
			if (map[y][x] == 'M') { --y; break; }

			if (y < 20 && y >= 0) {
				map[y - 1][x] = '.';
				map[y][x] = '#';
			}
			else
				y = 19;

			break;
		case 'a':
			--x;
			if (map[y][x] == 'M') { ++x; break; }

			if (x < 15 && x >= 0) {
				map[y][x + 1] = '.';
				map[y][x] = '#';
			}
			else
				x = 0;

			break;
		case 'd':
			++x;
			if (map[y][x] == 'M') { --x; break; }

			if (x < 15 && x >= 0) {
				map[y][x - 1] = '.';
				map[y][x] = '#';
			}
			else
				x = 14;

			break;
		}

		system("cls");
	}
	return 0;
}

2022-05-25

저작자표시 비영리 변경금지 (새창열림)

'C > 코딩 문제' 카테고리의 다른 글

[쉽게 풀어쓴 C언어 Express]Ch.12 문자와 문자열 character and string_Programming12  (0) 2022.07.01
[쉽게 풀어쓴 C언어 Express]Ch.12 문자와 문자열 character and string_Programming11  (0) 2022.07.01
    'C/코딩 문제' 카테고리의 다른 글
    • [쉽게 풀어쓴 C언어 Express]Ch.12 문자와 문자열 character and string_Programming12
    • [쉽게 풀어쓴 C언어 Express]Ch.12 문자와 문자열 character and string_Programming11
    두부와 백설기
    두부와 백설기
    개발자가 되고 싶은 사람이 쓰는 블로그

    티스토리툴바