콘솔앱 기반의 간단한 보물 찾기 게임 제작.
- 목표: 플레이어는 그리드 형태의 맵에서 보물을 찾아야 합니다.
- 게임 플레이: 플레이어는 '상', '하', '좌', '우' 방향으로 이동할 수 있으며, 맵의 특정 위치에 숨겨진 보물을 찾으면 승리합니다.
- 게임 종료 조건: 보물을 찾거나, 제한된 이동 횟수를 초과하면 게임이 종료됩니다.
- 2차원 배열을 사용하여 그리드 맵을 생성 (기본 5x5)
- 플레이어의 시작 위치와 보물의 위치를 무작위로 설정. 플레이어 시작 위치와 보물 위치는 달라야 함
- 이동 횟수 제한을 설정(기본 10회)
- 상하좌우 입력은 W,A,S,D
- 보물을 찾으면 찾았다는 메시지, 횟수 초과시 게임 오버 메시지 출력
출력 예)
코드는 아래에~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
using System;
class Program
{
static void Main()
{
char[,] map = new char[5, 5];
Random random = new Random();
int treasureX, treasureY;
int playerX, playerY;
int movesLeft = 10;
// 보물과 플레이어의 위치를 설정하는 루프
do
{
treasureX = random.Next(0, 5);
treasureY = random.Next(0, 5);
playerX = random.Next(0, 5);
playerY = random.Next(0, 5);
} while (treasureX == playerX && treasureY == playerY); // 위치가 다를 때까지 반복
while (true)
{
Console.Clear();
for (int y = 0; y < 5; y++)
{
for (int x = 0; x < 5; x++)
{
if (x == playerX && y == playerY)
Console.Write("P ");
else
Console.Write(". ");
}
Console.WriteLine();
}
if (playerX == treasureX && playerY == treasureY)
{
Console.WriteLine("보물 발견!!");
break;
}
if (movesLeft == 0)
{
Console.WriteLine("게임 오버...");
break;
}
Console.WriteLine($"남은 이동 횟수: {movesLeft}");
Console.WriteLine("이동 (W/A/S/D): ");
char move = Console.ReadKey().KeyChar;
switch (move)
{
case 'w':
playerY = Math.Max(0, playerY - 1);
break;
case 's':
playerY = Math.Min(4, playerY + 1);
break;
case 'a':
playerX = Math.Max(0, playerX - 1);
break;
case 'd':
playerX = Math.Min(4, playerX + 1);
break;
}
movesLeft--;
}
Console.WriteLine($"보물 위치 ({treasureX}, {treasureY})");
}
}
|
cs |
'프로그래밍 문제 > c# 문제' 카테고리의 다른 글
c# 문제 54. 배열의 교집합 요소 찾기 (0) | 2023.12.14 |
---|---|
c# 문제 53. 배열의 요소 무작위 정렬 (0) | 2023.12.13 |
c# 문제 51. 가위 바위 보 (0) | 2023.12.01 |
c# 문제 50. 정수형 배열의 특정 숫자 이동 (0) | 2023.11.28 |
c# 문제 49. 행렬 더하기 빼기 (0) | 2023.11.23 |
댓글