1
1
"std" import drop
2
2
3
- clear
4
-
5
3
func getaction do
6
4
inch types :bints expand drop
7
5
dup 3 = if 0 exit end // exit on Crtl+C
@@ -15,38 +13,55 @@ func getaction do
15
13
-1
16
14
end
17
15
18
- 51 store xsize
19
- 21 store ysize
20
-
21
- 4 store xpos
22
- 4 store ypos
23
-
24
- 10 store maxhp
25
- maxhp store hp
26
- 0 store coins
27
-
28
- 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 xsize collect
29
- 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 xsize collect
30
- 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 xsize collect
31
- 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 xsize collect
32
- 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 xsize collect
33
- 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 2 2 0 0 1 xsize collect
34
- 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 3 0 0 0 0 0 1 2 2 0 0 0 0 0 0 0 0 0 2 2 2 0 0 1 xsize collect
35
- 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 1 xsize collect
36
- 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 xsize collect
37
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 xsize collect
38
- 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 3 0 0 0 0 0 0 0 0 3 3 0 0 0 0 0 0 0 0 0 0 0 1 xsize collect
39
- 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 3 3 3 0 0 0 0 3 3 0 3 1 xsize collect
40
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 2 2 0 0 0 0 3 3 3 3 0 0 3 0 1 xsize collect
41
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 0 0 0 0 0 1 0 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 1 xsize collect
42
- 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 xsize collect
43
- 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xsize collect
44
- 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xsize collect
45
- 0 0 0 2 0 0 0 0 0 0 0 0 1 0 0 3 0 0 0 0 0 2 2 0 0 1 2 2 0 2 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xsize collect
46
- 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 2 2 2 0 1 2 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xsize collect
47
- 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 2 2 2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xsize collect
48
- 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 xsize collect
49
- ysize collect store map
16
+ func start do
17
+ clear
18
+
19
+ // https://patorjk.com/software/taag
20
+ " _ _ _ _ \n"
21
+ " / \\ __| |_ _____ _ __ | |_ _ _ _ __(_) ___ __ _ \n" +
22
+ " / _ \\ / _` \\ \\ / / _ \\ '_ \\| __| | | | '__| |/ __/ _` |\n" +
23
+ " / ___ \\ (_| |\\ V / __/ | | | |_| |_| | | | | (_| (_| |\n" +
24
+ " /_/ \\_\\__,_| \\_/ \\___|_| |_|\\__|\\__,_|_| |_|\\___\\__,_|\n" +
25
+ " A game made in stackscript for testing purposes,\n" +
26
+ " and sounds way cooler than it is." +
27
+ store title
28
+
29
+ 51 global xsize
30
+ 21 global ysize
31
+
32
+ 4 global xpos
33
+ 4 global ypos
34
+
35
+ 10 global maxhp
36
+ maxhp global hp
37
+ 0 global coins
38
+
39
+ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 xsize collect
40
+ 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 xsize collect
41
+ 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 1 xsize collect
42
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 2 0 2 3 0 3 0 0 0 3 0 0 0 0 1 xsize collect
43
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 2 3 3 2 2 0 3 3 3 0 0 0 0 0 1 xsize collect
44
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 2 3 2 2 2 3 0 0 0 2 2 2 0 0 1 xsize collect
45
+ 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 3 0 0 0 0 0 1 2 2 3 2 2 2 3 2 0 0 0 2 2 2 0 0 1 xsize collect
46
+ 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 1 xsize collect
47
+ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 xsize collect
48
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 xsize collect
49
+ 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 3 0 0 0 0 0 0 0 0 3 3 0 0 0 0 0 0 0 0 0 0 0 1 xsize collect
50
+ 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 3 3 3 0 0 0 0 3 3 0 3 1 xsize collect
51
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 2 2 0 0 0 0 3 3 3 3 0 0 3 0 1 xsize collect
52
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 0 0 0 0 0 1 0 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 1 xsize collect
53
+ 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 xsize collect
54
+ 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 3 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xsize collect
55
+ 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 3 2 2 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xsize collect
56
+ 0 0 0 2 0 0 0 0 0 0 0 0 1 0 0 3 0 0 0 0 0 2 2 0 0 1 2 3 0 2 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xsize collect
57
+ 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 2 2 2 0 1 3 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xsize collect
58
+ 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 2 2 2 0 1 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xsize collect
59
+ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 xsize collect
60
+
61
+ ysize collect global map
62
+
63
+ game
64
+ end
50
65
51
66
func wrapcoords do // x, y
52
67
dup 0 < if drop ysize 1 - end
@@ -103,14 +118,16 @@ func draw do
103
118
y 1 + update y
104
119
y ysize <
105
120
end
106
- " \nhp : [" + " |" hp int * + " -" maxhp hp - * +
121
+ "\n " + name + " hp : [" + "|" hp int * + "-" maxhp hp - * +
107
122
"] coins: " + coins types :str +
108
123
0 0 os :cmdcurpos
109
124
outln
110
125
end
111
126
112
127
func game do
113
128
"cls" os :system drop
129
+ title
130
+ "\n\nEnter adventurer's name: " + in global name
114
131
draw
115
132
true while
116
133
getaction dup 0 >= if
@@ -140,6 +157,19 @@ func game do
140
157
hp 1 - update hp
141
158
end
142
159
draw
160
+ hp 0 <= if
161
+ 0 0 os :cmdcurpos
162
+ "cls" os :system drop
163
+ title
164
+ "\n\nYou died! Press space/enter to restart!\n\n" +
165
+ "And so the adventure of " + name + " ends...\n" +
166
+ "Gold picked up: " + coins types :str + outln
167
+ true while
168
+ inch expand drop dup
169
+ 13 = swap 32 = | !
170
+ end
171
+ return
172
+ end
143
173
true
144
174
end
145
175
end
@@ -182,4 +212,7 @@ func bombd do // x, y
182
212
end
183
213
184
214
// attention, this inout doesnt work in pycharm, execute in normal console instead!
185
- game
215
+ true while
216
+ start
217
+ true
218
+ end
0 commit comments