-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.cs
154 lines (141 loc) · 3.63 KB
/
Program.cs
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
using System;
namespace museum
{
class Program
{
static void Main(string[] args)
{
// Konstanter
const string noDoorMessage = "Det finns ingen dörr där";
// Start tillstånd
// Vi är i lobbyn
bool visiting = true;
bool thereIsAFire = false;
Random fireStarter = new Random();
int triesLeftForEscaping = 10;
int x = 20;
int y = 1;
int previousX = x;
int previousY = y;
bool doorUp = false;
bool doorLeft = false;
bool doorRight = false;
bool doorDown = false;
while (visiting)
{
int position = x + y;
// Varna för brand
if (thereIsAFire)
{
Console.WriteLine("Det brinner!");
triesLeftForEscaping -= 1;
if (triesLeftForEscaping <= 0)
{
Console.WriteLine("Det gick tyvärr inte så bra... försök igen :)");
return;
}
}
// Potentiellt starta en brand
else if (9 == fireStarter.Next(0, 10))
{
thereIsAFire = true;
}
// Alla rum i en switch
switch (position)
{
// Lobbyn
case 21:
doorUp = true;
doorLeft = true;
doorRight = true;
doorDown = false;
Console.WriteLine("Du är i Lobbyn");
break;
// Utsidan
case 20:
visiting = false;
Console.WriteLine("Du är i frihet igen!");
if (thereIsAFire)
{
Console.WriteLine("Skönt att den där brandövningen gick bra och så!");
Console.WriteLine("Du tog dig ut med " + (triesLeftForEscaping) + " försök kvar :)");
}
return;
// Blåa rummet
case 0:
doorUp = false;
doorLeft = false;
doorRight = false;
doorDown = true;
Console.WriteLine("Du är i Blåa rummet");
break;
// Röda rummet
case 1:
doorUp = true;
doorLeft = false;
doorRight = true;
doorDown = false;
Console.WriteLine("Du är i Röda rummet");
break;
// Gula rummet
case 11:
doorUp = false;
doorLeft = true;
doorDown = true;
doorRight = true;
Console.WriteLine("Du är i Gula rummet");
break;
// Svarta rummet
case 2:
doorUp = false;
doorLeft = false;
doorRight = true;
doorDown = false;
Console.WriteLine("Du är i Svarta rummet");
break;
// Gröna rummet
case 12:
doorUp = true;
doorLeft = true;
doorRight = false;
doorDown = false;
Console.WriteLine("Du är i Gröna rummet");
break;
// Det finns inget rum...
default:
throw new Exception("Användaren försökte gå till ett rum som inte finns.");
}
// Fråga vilken riktning användaren vill gå...
Console.WriteLine("Vart vill du gå? [U|N|V|H]");
string input = Console.ReadLine();
// Gör inmatningen till bara stora bokstäver
input = input.ToUpper();
// Plocka den första bokstaven ur inmatningen
string direction = input.Substring(0, 1);
// Spara undan den senaste positionen
previousX = x;
previousY = y;
// Uppdatera positionen
switch (direction)
{
case "U":
if (!doorUp) { Console.WriteLine(noDoorMessage); break; }
y = y - 1;
break;
case "N":
if (!doorDown) { Console.WriteLine(noDoorMessage); break; }
y = y + 1;
break;
case "V":
if (!doorLeft) { Console.WriteLine(noDoorMessage); break; }
x = x - 10;
break;
case "H":
if (!doorRight) { Console.WriteLine(noDoorMessage); break; }
x = x + 10;
break;
}
}
}
}
}