junglejourney
changeset 201:72baa6318192
Added the final two enemies.
Fixed enemy type selection to include the fifth enemy type.
| author | David Boddie <david@boddie.org.uk> |
|---|---|
| date | Sat Oct 08 23:06:44 2011 +0200 |
| parents | 2e43c7e90f42 |
| children | c0400eb6eabd |
| files | build.py images/beastld1.xpm images/beastld2.xpm images/beastld3.xpm images/beastld4.xpm images/beastrd1.xpm images/beastrd2.xpm images/beastrd3.xpm images/beastrd4.xpm images/lizardld1.xpm images/lizardld2.xpm images/lizardld3.xpm images/lizardld4.xpm images/lizardrd1.xpm images/lizardrd2.xpm images/lizardrd3.xpm images/lizardrd4.xpm mapcode.oph tools/makesprites.py |
| diffstat | 19 files changed, 390 insertions(+), 25 deletions(-) [+] |
line diff
1.1 --- a/build.py Sun Oct 02 21:04:54 2011 +0200 1.2 +++ b/build.py Sat Oct 08 23:06:44 2011 +0200 1.3 @@ -123,15 +123,15 @@ 1.4 # 4 * 2 * 0x30 (player movement) 1.5 # 4 * 0x30 (player demise) 1.6 # 4 * 2 * 0x10 (projectile) 1.7 - # 5 * 4 * 2 * 0x40 (enemies) 36C0 1.8 + # 5 * 4 * 2 * 0x40 (enemies) 41C0 1.9 # 4 * 0x40 (enemy appear) 1.10 # 4 * 0x40 (enemy demise) 1.11 - # 4 * 0x40 (weapons) 42C0 1.12 + # 4 * 0x40 (weapons) 4dC0 1.13 # 5 * 0x40 (treasure) 1.14 - # 2 * 0x60 (exit) 4500 1.15 + # 2 * 0x60 (exit) 5000 1.16 # 2 * 0x60 (final exit) 1.17 # 1.18 - # 4*2*0x30 + 4*0x30 + 4*2*0x10 + 5*4*2*0x40 + 4*0x40 + 4*0x40 + 4*0x40 + 5*0x40 + 2*0x60 + 2*0x60 + 0x3f00 1.19 + # 0x3f00 + 4*2*0x30 + 4*0x30 + 4*2*0x10 + 5*4*2*0x40 + 4*0x40 + 4*0x40 + 4*0x40 + 5*0x40 + 2*0x60 + 2*0x60 1.20 # 1.21 # 5180 high scores (8 * 12 = 0xe0) 1.22 # n 3 bytes score + 9 bytes ASCII
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/images/beastld1.xpm Sat Oct 08 23:06:44 2011 +0200 2.3 @@ -0,0 +1,23 @@ 2.4 +/* XPM */ 2.5 +static char * beastld1_xpm[] = { 2.6 +"16 16 4 1", 2.7 +" c None", 2.8 +". c #000000", 2.9 +"+ c #FF0000", 2.10 +"@ c #FFFF00", 2.11 +"................", 2.12 +"................", 2.13 +"..............+.", 2.14 +".......+++++...+", 2.15 +"..+...++++@++.+.", 2.16 +"..+++.+@++++++..", 2.17 +"..+@+++++@+++++.", 2.18 +"++++++++++++@++.", 2.19 +"+..+++@+++@++++.", 2.20 +"..++.+++++++++..", 2.21 +"......++..++....", 2.22 +"......++..++....", 2.23 +"....+++....+++..", 2.24 +".....+......+...", 2.25 +"................", 2.26 +"................"};
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/images/beastld2.xpm Sat Oct 08 23:06:44 2011 +0200 3.3 @@ -0,0 +1,23 @@ 3.4 +/* XPM */ 3.5 +static char * beastld2_xpm[] = { 3.6 +"16 16 4 1", 3.7 +" c None", 3.8 +". c #000000", 3.9 +"+ c #FF0000", 3.10 +"@ c #FFFF00", 3.11 +"................", 3.12 +"................", 3.13 +"..............+.", 3.14 +".......+++++...+", 3.15 +"..+...++++@++.+.", 3.16 +"..+++.+@++++++..", 3.17 +"..+@+++++@+++++.", 3.18 +"++++++++++++@++.", 3.19 +"+..+++@+++@++++.", 3.20 +"..++.+++++++++..", 3.21 +"......++..++....", 3.22 +"......++..++....", 3.23 +"......++..++....", 3.24 +".....++....++...", 3.25 +"......+....+....", 3.26 +"................"};
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/images/beastld3.xpm Sat Oct 08 23:06:44 2011 +0200 4.3 @@ -0,0 +1,23 @@ 4.4 +/* XPM */ 4.5 +static char * beastld3_xpm[] = { 4.6 +"16 16 4 1", 4.7 +" c None", 4.8 +". c #000000", 4.9 +"+ c #FF0000", 4.10 +"@ c #FFFF00", 4.11 +"................", 4.12 +"................", 4.13 +"...............+", 4.14 +".......+++++..+.", 4.15 +"..+...++++@++.+.", 4.16 +"..+++.+@++++++..", 4.17 +"..+@+++++@+++++.", 4.18 +"++++++++++++@++.", 4.19 +"+.++++@+++@++++.", 4.20 +".....+++++++++..", 4.21 +"......++..++....", 4.22 +"......++..++....", 4.23 +"......++..++....", 4.24 +".......+.++.....", 4.25 +"......++..+.....", 4.26 +"................"};
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/images/beastld4.xpm Sat Oct 08 23:06:44 2011 +0200 5.3 @@ -0,0 +1,23 @@ 5.4 +/* XPM */ 5.5 +static char * beastld4_xpm[] = { 5.6 +"16 16 4 1", 5.7 +" c None", 5.8 +". c #000000", 5.9 +"+ c #FF0000", 5.10 +"@ c #FFFF00", 5.11 +"................", 5.12 +"................", 5.13 +"...............+", 5.14 +".......+++++..+.", 5.15 +"..+...++++@++.+.", 5.16 +"..+++.+@++++++..", 5.17 +"..+@+++++@+++++.", 5.18 +"++++++++++++@++.", 5.19 +"+..+++@+++@++++.", 5.20 +"..++.+++++++++..", 5.21 +"......++..++....", 5.22 +"......++..++....", 5.23 +"......++..++....", 5.24 +".......++..++...", 5.25 +".......+...+....", 5.26 +"................"};
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/images/beastrd1.xpm Sat Oct 08 23:06:44 2011 +0200 6.3 @@ -0,0 +1,23 @@ 6.4 +/* XPM */ 6.5 +static char * beastrd1_xpm[] = { 6.6 +"16 16 4 1", 6.7 +" c None", 6.8 +". c #000000", 6.9 +"+ c #FF0000", 6.10 +"@ c #FFFF00", 6.11 +"................", 6.12 +"................", 6.13 +".+..............", 6.14 +"+...+++++.......", 6.15 +".+.++@++++...+..", 6.16 +"..++++++@+.+++..", 6.17 +".+++++@+++++@+..", 6.18 +".++@++++++++++++", 6.19 +".++++@+++@+++..+", 6.20 +"..+++++++++.++..", 6.21 +"....++..++......", 6.22 +"....++..++......", 6.23 +"..+++....+++....", 6.24 +"...+......+.....", 6.25 +"................", 6.26 +"................"};
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 7.2 +++ b/images/beastrd2.xpm Sat Oct 08 23:06:44 2011 +0200 7.3 @@ -0,0 +1,23 @@ 7.4 +/* XPM */ 7.5 +static char * beastrd2_xpm[] = { 7.6 +"16 16 4 1", 7.7 +" c None", 7.8 +". c #000000", 7.9 +"+ c #FF0000", 7.10 +"@ c #FFFF00", 7.11 +"................", 7.12 +"................", 7.13 +".+..............", 7.14 +"+...+++++.......", 7.15 +".+.++@++++...+..", 7.16 +"..++++++@+.+++..", 7.17 +".+++++@+++++@+..", 7.18 +".++@++++++++++++", 7.19 +".++++@+++@+++..+", 7.20 +"..+++++++++.++..", 7.21 +"....++..++......", 7.22 +"....++..++......", 7.23 +"....++..++......", 7.24 +"...++....++.....", 7.25 +"....+....+......", 7.26 +"................"};
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 8.2 +++ b/images/beastrd3.xpm Sat Oct 08 23:06:44 2011 +0200 8.3 @@ -0,0 +1,23 @@ 8.4 +/* XPM */ 8.5 +static char * beastrd3_xpm[] = { 8.6 +"16 16 4 1", 8.7 +" c None", 8.8 +". c #000000", 8.9 +"+ c #FF0000", 8.10 +"@ c #FFFF00", 8.11 +"................", 8.12 +"................", 8.13 +"+...............", 8.14 +".+..+++++.......", 8.15 +".+.++@++++...+..", 8.16 +"..++++++@+.+++..", 8.17 +".+++++@+++++@+..", 8.18 +".++@++++++++++++", 8.19 +".++++@+++@++++.+", 8.20 +"..+++++++++.....", 8.21 +"....++..++......", 8.22 +"....++..++......", 8.23 +"....++..++......", 8.24 +".....++.+.......", 8.25 +".....+..++......", 8.26 +"................"};
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 9.2 +++ b/images/beastrd4.xpm Sat Oct 08 23:06:44 2011 +0200 9.3 @@ -0,0 +1,23 @@ 9.4 +/* XPM */ 9.5 +static char * beastrd4_xpm[] = { 9.6 +"16 16 4 1", 9.7 +" c None", 9.8 +". c #000000", 9.9 +"+ c #FF0000", 9.10 +"@ c #FFFF00", 9.11 +"................", 9.12 +"................", 9.13 +"+...............", 9.14 +".+..+++++.......", 9.15 +".+.++@++++...+..", 9.16 +"..++++++@+.+++..", 9.17 +".+++++@+++++@+..", 9.18 +".++@++++++++++++", 9.19 +".++++@+++@+++..+", 9.20 +"..+++++++++.++..", 9.21 +"....++..++......", 9.22 +"....++..++......", 9.23 +"....++..++......", 9.24 +"...++..++.......", 9.25 +"....+...+.......", 9.26 +"................"};
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 10.2 +++ b/images/lizardld1.xpm Sat Oct 08 23:06:44 2011 +0200 10.3 @@ -0,0 +1,23 @@ 10.4 +/* XPM */ 10.5 +static char * lizardld1_xpm[] = { 10.6 +"16 16 4 1", 10.7 +" c None", 10.8 +". c #000000", 10.9 +"+ c #FF0000", 10.10 +"@ c #FFFF00", 10.11 +".......+........", 10.12 +".......++.......", 10.13 +"......++........", 10.14 +"......++......++", 10.15 +"...+...+.....@+.", 10.16 +"...++.++@++@++..", 10.17 +"..++..++@++@++..", 10.18 +"..++.+@++@......", 10.19 +"...@++@++++.....", 10.20 +"...@+++@..++....", 10.21 +".+++@++....+++..", 10.22 +"++@++.+.....+...", 10.23 +"++++..++........", 10.24 +"..++...+++......", 10.25 +".++.....+.......", 10.26 +"................"};
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 11.2 +++ b/images/lizardld2.xpm Sat Oct 08 23:06:44 2011 +0200 11.3 @@ -0,0 +1,23 @@ 11.4 +/* XPM */ 11.5 +static char * lizardld2_xpm[] = { 11.6 +"16 16 4 1", 11.7 +" c None", 11.8 +". c #000000", 11.9 +"+ c #FF0000", 11.10 +"@ c #FFFF00", 11.11 +".......+........", 11.12 +".......++.......", 11.13 +"......++........", 11.14 +"......++......++", 11.15 +"..+....+....+@+.", 11.16 +".+++..++@++@++..", 11.17 +".++...++@++@+...", 11.18 +"..++.+@++@......", 11.19 +"...@++@+++......", 11.20 +"...@+++@.++.....", 11.21 +".+++@++...++....", 11.22 +"++@++.+....++...", 11.23 +"++++..++...+....", 11.24 +"..++...+++......", 11.25 +".++.....+.......", 11.26 +"................"};
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 12.2 +++ b/images/lizardld3.xpm Sat Oct 08 23:06:44 2011 +0200 12.3 @@ -0,0 +1,23 @@ 12.4 +/* XPM */ 12.5 +static char * lizardld3_xpm[] = { 12.6 +"16 16 4 1", 12.7 +" c None", 12.8 +". c #000000", 12.9 +"+ c #FF0000", 12.10 +"@ c #FFFF00", 12.11 +"......+.........", 12.12 +"......++........", 12.13 +".....++......++.", 12.14 +".....++....++@++", 12.15 +"..+...+...@++...", 12.16 +".+++..++@++@....", 12.17 +".++...++@++@....", 12.18 +"..++.+@++@......", 12.19 +"...@++@+++......", 12.20 +"...@+++@.++.....", 12.21 +".+++@++...++....", 12.22 +"++@++.+....++...", 12.23 +"++++..++...+....", 12.24 +"..++...+++......", 12.25 +".++.....+.......", 12.26 +"................"};
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 13.2 +++ b/images/lizardld4.xpm Sat Oct 08 23:06:44 2011 +0200 13.3 @@ -0,0 +1,23 @@ 13.4 +/* XPM */ 13.5 +static char * lizardld4_xpm[] = { 13.6 +"16 16 4 1", 13.7 +" c None", 13.8 +". c #000000", 13.9 +"+ c #FF0000", 13.10 +"@ c #FFFF00", 13.11 +"................", 13.12 +".....+..........", 13.13 +"....++.......++.", 13.14 +".....++....++@++", 13.15 +".+....+...@++...", 13.16 +"++....++@++@....", 13.17 +".++...++@++@....", 13.18 +"..++.+@++@......", 13.19 +"...@++@+++......", 13.20 +"...@+++@.++.....", 13.21 +".+++@++...++....", 13.22 +"++@++.+....++...", 13.23 +"++++..++...+....", 13.24 +"..++...+........", 13.25 +".++....++.......", 13.26 +".......+........"};
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 14.2 +++ b/images/lizardrd1.xpm Sat Oct 08 23:06:44 2011 +0200 14.3 @@ -0,0 +1,23 @@ 14.4 +/* XPM */ 14.5 +static char * lizardrd1_xpm[] = { 14.6 +"16 16 4 1", 14.7 +" c None", 14.8 +". c #000000", 14.9 +"+ c #FF0000", 14.10 +"@ c #FFFF00", 14.11 +"........+.......", 14.12 +".......++.......", 14.13 +"........++......", 14.14 +"++......++......", 14.15 +".+@.....+...+...", 14.16 +"..++@++@++.++...", 14.17 +"..++@++@++..++..", 14.18 +"......@++@+.++..", 14.19 +".....++++@++@...", 14.20 +"....++..@+++@...", 14.21 +"..+++....++@+++.", 14.22 +"...+.....+.++@++", 14.23 +"........++..++++", 14.24 +"......+++...++..", 14.25 +".......+.....++.", 14.26 +"................"};
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 15.2 +++ b/images/lizardrd2.xpm Sat Oct 08 23:06:44 2011 +0200 15.3 @@ -0,0 +1,23 @@ 15.4 +/* XPM */ 15.5 +static char * lizardrd2_xpm[] = { 15.6 +"16 16 4 1", 15.7 +" c None", 15.8 +". c #000000", 15.9 +"+ c #FF0000", 15.10 +"@ c #FFFF00", 15.11 +"........+.......", 15.12 +".......++.......", 15.13 +"........++......", 15.14 +"++......++......", 15.15 +".+@+....+....+..", 15.16 +"..++@++@++..+++.", 15.17 +"...+@++@++...++.", 15.18 +"......@++@+.++..", 15.19 +"......+++@++@...", 15.20 +".....++.@+++@...", 15.21 +"....++...++@+++.", 15.22 +"...++....+.++@++", 15.23 +"....+...++..++++", 15.24 +"......+++...++..", 15.25 +".......+.....++.", 15.26 +"................"};
16.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 16.2 +++ b/images/lizardrd3.xpm Sat Oct 08 23:06:44 2011 +0200 16.3 @@ -0,0 +1,23 @@ 16.4 +/* XPM */ 16.5 +static char * lizardrd3_xpm[] = { 16.6 +"16 16 4 1", 16.7 +" c None", 16.8 +". c #000000", 16.9 +"+ c #FF0000", 16.10 +"@ c #FFFF00", 16.11 +".........+......", 16.12 +"........++......", 16.13 +".++......++.....", 16.14 +"++@++....++.....", 16.15 +"...++@...+...+..", 16.16 +"....@++@++..+++.", 16.17 +"....@++@++...++.", 16.18 +"......@++@+.++..", 16.19 +"......+++@++@...", 16.20 +".....++.@+++@...", 16.21 +"....++...++@+++.", 16.22 +"...++....+.++@++", 16.23 +"....+...++..++++", 16.24 +"......+++...++..", 16.25 +".......+.....++.", 16.26 +"................"};
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 17.2 +++ b/images/lizardrd4.xpm Sat Oct 08 23:06:44 2011 +0200 17.3 @@ -0,0 +1,23 @@ 17.4 +/* XPM */ 17.5 +static char * lizardrd4_xpm[] = { 17.6 +"16 16 4 1", 17.7 +" c None", 17.8 +". c #000000", 17.9 +"+ c #FF0000", 17.10 +"@ c #FFFF00", 17.11 +"................", 17.12 +"..........+.....", 17.13 +".++.......++....", 17.14 +"++@++....++.....", 17.15 +"...++@...+....+.", 17.16 +"....@++@++....++", 17.17 +"....@++@++...++.", 17.18 +"......@++@+.++..", 17.19 +"......+++@++@...", 17.20 +".....++.@+++@...", 17.21 +"....++...++@+++.", 17.22 +"...++....+.++@++", 17.23 +"....+...++..++++", 17.24 +"........+...++..", 17.25 +".......++....++.", 17.26 +"........+......."};
18.1 --- a/mapcode.oph Sun Oct 02 21:04:54 2011 +0200 18.2 +++ b/mapcode.oph Sat Oct 08 23:06:44 2011 +0200 18.3 @@ -2294,11 +2294,11 @@ 18.4 jsr unlimited_values 18.5 lda $7d 18.6 and #7 18.7 - cmp #4 18.8 + cmp #5 18.9 bmi emerge_type_ok 18.10 18.11 sec 18.12 - sbc #4 18.13 + sbc #5 18.14 clc 18.15 18.16 emerge_type_ok:
19.1 --- a/tools/makesprites.py Sun Oct 02 21:04:54 2011 +0200 19.2 +++ b/tools/makesprites.py Sat Oct 08 23:06:44 2011 +0200 19.3 @@ -93,7 +93,6 @@ 19.4 read_xpm("images/wasprd3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.5 read_xpm("images/wasprd4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.6 19.7 - # placeholder enemy sprites 19.8 read_xpm("images/snakeld1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.9 read_xpm("images/snakeld2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.10 read_xpm("images/snakeld3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.11 @@ -103,25 +102,23 @@ 19.12 read_xpm("images/snakerd3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.13 read_xpm("images/snakerd4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.14 19.15 - # placeholder enemy sprites 19.16 - read_xpm("images/birdld1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.17 - read_xpm("images/birdld2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.18 - read_xpm("images/birdld3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.19 - read_xpm("images/birdld4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.20 - read_xpm("images/birdrd1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.21 - read_xpm("images/birdrd2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.22 - read_xpm("images/birdrd3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.23 - read_xpm("images/birdrd4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.24 + read_xpm("images/lizardld1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.25 + read_xpm("images/lizardld2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.26 + read_xpm("images/lizardld3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.27 + read_xpm("images/lizardld4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.28 + read_xpm("images/lizardrd1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.29 + read_xpm("images/lizardrd2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.30 + read_xpm("images/lizardrd3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.31 + read_xpm("images/lizardrd4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.32 19.33 - # placeholder enemy sprites 19.34 - read_xpm("images/birdld1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.35 - read_xpm("images/birdld2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.36 - read_xpm("images/birdld3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.37 - read_xpm("images/birdld4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.38 - read_xpm("images/birdrd1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.39 - read_xpm("images/birdrd2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.40 - read_xpm("images/birdrd3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.41 - read_xpm("images/birdrd4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.42 + read_xpm("images/beastld1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.43 + read_xpm("images/beastld2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.44 + read_xpm("images/beastld3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.45 + read_xpm("images/beastld4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.46 + read_xpm("images/beastrd1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.47 + read_xpm("images/beastrd2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.48 + read_xpm("images/beastrd3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.49 + read_xpm("images/beastrd4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]), 19.50 19.51 # Enemy emerge 19.52 read_xpm("images/emerge1.xpm", [(".", "0"), ("+", "1"), ("#", "2"), ("@", "3")]),
