Qbasicnews.com
September 18, 2019, 08:21:59 AM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: Back to Qbasicnews.com | QB Online Help | FAQ | Chat | All Basic Code | QB Knowledge Base
 
   Home   Help Search Login Register  
Pages: [1] 2 3 ... 10
  Print  
Author Topic: 100% QB game  (Read 44005 times)
Spotted Cheetah
Ancient QBer
****
Posts: 400



WWW
« on: March 06, 2004, 10:53:02 PM »

I know that I am new here, but believe, or not, I had seen much. I had seen that nowadays everybody programs under QB using libraries, and libraries, and other libraries, or assembly ect. I think this is not really QBasic...

So here is the challenge: Write a 100% QB code game! You can only use the default library (qb.qlb), and FFIX if needed.

(Believe or not, mouse is possible under QB, I just wrote one. No assembly, no extra libraries, just only qb.qlb!)

To make the project harder - do the game as fast as possible! I will program mine on a 33MHz 4.86! Smiley

The winner will be the best game of course. You do not have to do it on 33MHz, but I think a real QB game should work on all machines over 100Mhz...
Logged

fter 60 million years a civilization will search for a meteorite destroying most of the living creatures around this age...

There must be a better future for the Cheetahs!

http://rcs.fateback.com/
Plasma
Na_th_an
*****
Posts: 1770


WWW
« Reply #1 on: March 06, 2004, 11:06:44 PM »

Using the mouse is possible without using any routines in QB.QLB...
Logged
Diroga
Been there, done that
*****
Posts: 1087


« Reply #2 on: March 06, 2004, 11:07:19 PM »

www.geocities.com/mrynit/Block3.bas
not done yet
Logged
whitetiger0990
__/--\__
*****
Posts: 2964



WWW
« Reply #3 on: March 06, 2004, 11:33:05 PM »

http://mywebpages.comcast.net/whitetiger0990/qbasic/nmaze/nmaze.zip
this count?

(change the path IN the game file, near the begining, defualted to a:\nmaze)
Logged


[size=10]Back by popular demand!
I will byte and nibble you bit by bit until nothing remains but crumbs.[/size]
Zack
*/-\*
*****
Posts: 3974



WWW
« Reply #4 on: March 07, 2004, 06:41:41 PM »

When does this expire? Because I'm working on a game, Operation Pong...an RPG. No libs, not even the standard QB lib.
Logged

f only life let you press CTRL-Z.
--------------------------------------
Freebasic is like QB, except it doesn't suck.
relsoft
*/-\*
*****
Posts: 3927



WWW
« Reply #5 on: March 08, 2004, 03:38:08 AM »

Quote from: "Plasma"
Using the mouse is possible without using any routines in QB.QLB...


I saw that on neobasic. :*)  LOL

Cheeta:

http://rel.betterwebber.com/junk.php?id=8

http://rel.betterwebber.com/junk.php?id=11
Logged

y smiley is 24 bit.


Genso's Junkyard:
http://rel.betterwebber.com/
Spotted Cheetah
Ancient QBer
****
Posts: 400



WWW
« Reply #6 on: March 09, 2004, 05:23:09 AM »

This competition never ends Smiley

For example my game may be ready only to the end of summer... It needs many work. Of course I will put up demos here sooner if I can.

Now I am writing from school, so I can't wiev anything. And my computer's keyboard is gone :-?  (Why am I triing to fix it myself?? Smiley )
I must fix it, I can not buy a new one... It will take a while...

I was so upset because of that mouse routines because as I looked around, and searched for it, I could not find any pure QB routines. All of them worked with Assembly + the basic library! I can't guess why is this needed...

I think the basic library can be used... Otherwise we should put up here how to handle the interrupts without it. Of course handling interrupts does not mean writing an interrupt handler for example in C, and then using it in QB. Only use the interrupts what can be found on an usual DOS system (What can be found in Ralph Brown's Interrupt List).

Paths: You can use relative paths. You do not need to tell OPEN to use the file at "a:\hiscore.dat", it is just enough to say "hiscore.dat", and it will open if it executes in the directory where the file is. (This is why the program usually can't find it's files from the IDE. You should copy QB.EXE in the directory where you are developing, so the program will find them)


Of course that the competition never ends does not mean that there won't be any winner. We should rate the games, and make the results monthly (Did you understand what I told - My English is horrible, and I have no dictionary... :-? ).
Logged

fter 60 million years a civilization will search for a meteorite destroying most of the living creatures around this age...

There must be a better future for the Cheetahs!

http://rcs.fateback.com/
Spotted Cheetah
Ancient QBer
****
Posts: 400



WWW
« Reply #7 on: March 09, 2004, 03:50:12 PM »

Diroga, WhiteTiger0990, Relsoft: Now I downloaded your programs. I will test them on my 4.86 soon.
Logged

fter 60 million years a civilization will search for a meteorite destroying most of the living creatures around this age...

There must be a better future for the Cheetahs!

http://rcs.fateback.com/
Spotted Cheetah
Ancient QBer
****
Posts: 400



WWW
« Reply #8 on: March 11, 2004, 02:18:06 PM »

Relsoft: Bubble Fight's technique is very good! It made 14-16 FPS on my 33Mhz computer Smiley

Why are you all giving programs from the 1 hour competition here?? This is not a time race, let's make some real quality stuff.

I will put up somewhere the sprite editor what I will use to create my game soon...

I will use GET and PUT intensively on the 640*350 screen. Of course I will change the palette too to get nice colors (I know how to do it on SCREEN 9). And I am doing this all on the 33Mhz 4.86 Smiley.
Logged

fter 60 million years a civilization will search for a meteorite destroying most of the living creatures around this age...

There must be a better future for the Cheetahs!

http://rcs.fateback.com/
Agamemnus
x/ \z
*****
Posts: 3491



« Reply #9 on: March 11, 2004, 03:48:38 PM »

Where is that pureqb mouse routine, Plasma? I can't find it anywhere...
Logged

Peace cannot be obtained without war. Why? If there is already peace, it is unnecessary for war. If there is no peace, there is already war."

Visit www.neobasic.net to see rubbish in all its finest.
Plasma
Na_th_an
*****
Posts: 1770


WWW
« Reply #10 on: March 11, 2004, 05:12:51 PM »

I posted it on NeoBasic a few months ago. It resembles SuperPut...
Logged
Pyrodap
Senior Member
**
Posts: 166



« Reply #11 on: March 11, 2004, 06:06:37 PM »

Eh, what the hell! I'll join!

I'll start right now.


*TO THE LAB!!!*
Logged
Pyrodap
Senior Member
**
Posts: 166



« Reply #12 on: March 11, 2004, 09:03:08 PM »

Heh... Okay, I made a  game! (It took about 4 hours...)

I used Superput, but thats not a lib so I'm safe right? Anyway, Here ya go!


(It's kind've big)

Code:
DECLARE SUB superput ()
DECLARE SUB delay (d!)
DECLARE SUB init ()
DECLARE SUB loadpaldata ()
DIM SHARED Red, Green, Blue
DIM SHARED ship(40 * 32 \ 2 + 2)
DIM SHARED ship2(40 * 32 \ 2 + 2)
DIM SHARED Ringbottom(64 * 40 \ 2 + 2)
DIM SHARED Ringtop(64 * 40 \ 2 + 2)
RANDOMIZE TIMER
       TYPE Hero
       x AS INTEGER
       y AS INTEGER
       Xspeed AS INTEGER
       Yspeed AS INTEGER
       END TYPE
DIM SHARED Hero AS Hero
       TYPE Ring
       x AS INTEGER
       y AS INTEGER
       Active AS INTEGER
       END TYPE
DIM SHARED Ring(5) AS Ring
       
        TYPE Star
        x AS INTEGER
        y AS INTEGER
        Yspeed AS INTEGER
        END TYPE
DIM SHARED Star(50) AS Star
DIM SHARED score
init
mainloop:
        timing = 60 * 60
        DO
        LOCATE 1, 1
        PRINT "SCORE: " + LTRIM$(STR$(score))
        PRINT "TIME: " + LTRIM$(STR$(timing)) + " "
        timing = timing - 1
        a$ = INKEY$
        FOR s = 1 TO 50
                PSET (Star(s).x, Star(s).y), 0
                Star(s).y = Star(s).y + Star(s).Yspeed
                IF Star(s).y > 200 THEN Star(s).y = 0: Star(s).x = INT(RND * 320)
                PSET (Star(s).x, Star(s).y), 22 + Star(s).Yspeed
        NEXT
                SELECT CASE RIGHT$(a$, 1)
                CASE "H"
                        Hero.Yspeed = Hero.Yspeed - 1
                CASE "P"
                        Hero.Yspeed = Hero.Yspeed + 1
                CASE "K"
                        Hero.Xspeed = Hero.Xspeed - 1
                CASE "M"
                        Hero.Xspeed = Hero.Xspeed + 1
                END SELECT
        IF Hero.Xspeed > 5 THEN Hero.Xspeed = 5
        IF Hero.Yspeed > 5 THEN Hero.Yspeed = 5
        IF Hero.Xspeed < -5 THEN Hero.Xspeed = -5
        IF Hero.Yspeed < -5 THEN Hero.Yspeed = -5
       
        PUT (Hero.x, Hero.y), ship2
        Hero.x = Hero.x + Hero.Xspeed
        Hero.y = Hero.y + Hero.Yspeed
        IF Hero.x < 0 THEN Hero.x = 0: Hero.Xspeed = -Hero.Xspeed
        IF Hero.y < 50 THEN Hero.y = 50: Hero.Yspeed = -Hero.Yspeed
        IF Hero.x > 320 - 40 THEN Hero.x = 320 - 40: Hero.Xspeed = -Hero.Xspeed
        IF Hero.y > 200 - 40 THEN Hero.y = 200 - 40: Hero.Yspeed = -Hero.Yspeed
                FOR r = 1 TO 5
                        Ring(r).y = Ring(r).y + 1
                        IF Ring(r).y = 200 THEN Ring(r).y = -40 - INT(RND * 320): Ring(r).x = INT(RND * 256): Ring(r).Active = 1
                        PUT (Ring(r).x, Ring(r).y), Ringbottom
                NEXT

        PUT (Hero.x, Hero.y), ship
                FOR r = 1 TO 5
                        PUT (Ring(r).x, Ring(r).y), Ringtop
        coll = 0
        IF Ring(r).Active = 1 THEN coll = coll + 1
        IF Hero.x + 40 > Ring(r).x AND Hero.x < Ring(r).x + 64 THEN coll = coll + 1
        IF Hero.y + 32 > Ring(r).y AND Hero.y < Ring(r).y - 5 THEN coll = coll + 1
        IF coll = 3 THEN
                 Ring(r).Active = 0
                 score = score + 10
        END IF
                NEXT
        delay 1
        LOOP UNTIL a$ = CHR$(27) OR timing <= 0
        CLS
        SCREEN 0
        WIDTH 80, 25
        COLOR 15
        PRINT "FINAL SCORE" + STR$(score)
        PRINT "By Pyrodap"
        PRINT "Uses SuperPut by Plasma"
0 DATA "0 0 0"
1 DATA "0 0 42"
2 DATA "0 42 0"
3 DATA "0 42 42"
4 DATA "42 0 0"
5 DATA "42 0 42"
6 DATA "42 21 0"
7 DATA "42 42 42"
8 DATA "21 21 21"
9 DATA "21 21 63"
10 DATA "21 63 21"
11 DATA "21 63 63"
12 DATA "63 21 21"
13 DATA "63 21 63"
14 DATA "63 63 21"
15 DATA "63 63 63"
16 DATA "0 0 0"
17 DATA "5 5 5"
18 DATA "8 8 8"
19 DATA "11 11 11"
20 DATA "14 14 14"
21 DATA "17 17 17"
22 DATA "20 20 20"
23 DATA "24 24 24"
24 DATA "28 28 28"
25 DATA "32 32 32"
26 DATA "36 36 36"
27 DATA "40 40 40"
28 DATA "45 45 45"
29 DATA "50 50 50"
30 DATA "56 56 56"
31 DATA "63 63 63"
32 DATA "0 0 0"
33 DATA "4 0 0"
34 DATA "8 0 0"
35 DATA "12 0 0"
36 DATA "16 0 0"
37 DATA "21 0 0"
38 DATA "25 0 0"
39 DATA "29 0 0"
40 DATA "33 0 0"
41 DATA "37 0 0"
42 DATA "42 0 0"
43 DATA "46 0 0"
44 DATA "50 0 0"
45 DATA "54 0 0"
46 DATA "58 0 0"
47 DATA "63 0 0"
48 DATA "0 0 0"
49 DATA "0 0 4"
50 DATA "0 0 8"
51 DATA "0 0 12"
52 DATA "0 0 16"
53 DATA "0 0 21"
54 DATA "0 0 25"
55 DATA "0 0 29"
56 DATA "0 0 33"
57 DATA "0 0 37"
58 DATA "0 0 42"
59 DATA "0 0 46"
60 DATA "0 0 50"
61 DATA "0 0 54"
62 DATA "0 0 58"
63 DATA "0 0 63"
64 DATA "0 0 0"
65 DATA "0 4 0"
66 DATA "0 8 0"
67 DATA "0 12 0"
68 DATA "0 16 0"
69 DATA "0 21 0"
70 DATA "0 25 0"
71 DATA "0 29 0"
72 DATA "0 33 0"
73 DATA "0 37 0"
74 DATA "0 42 0"
75 DATA "0 46 0"
76 DATA "0 50 0"
77 DATA "0 54 0"
78 DATA "0 58 0"
79 DATA "0 63 0"
80 DATA "0 0 0"
81 DATA "4 0 4"
82 DATA "8 0 8"
83 DATA "12 0 12"
84 DATA "16 0 16"
85 DATA "21 0 21"
86 DATA "25 0 25"
87 DATA "29 0 29"
88 DATA "33 0 33"
89 DATA "37 0 37"
90 DATA "42 0 42"
91 DATA "46 0 46"
92 DATA "50 0 50"
93 DATA "54 0 54"
94 DATA "58 0 58"
95 DATA "63 0 63"
96 DATA "0 0 0"
97 DATA "0 4 4"
98 DATA "0 8 8"
99 DATA "0 12 12"
100 DATA "0 16 16"
101 DATA "0 21 21"
102 DATA "0 25 25"
103 DATA "0 29 29"
104 DATA "0 33 33"
105 DATA "0 37 37"
106 DATA "0 42 42"
107 DATA "0 46 46"
108 DATA "0 50 50"
109 DATA "0 54 54"
110 DATA "0 58 58"
111 DATA "0 63 63"
112 DATA "0 0 0"
113 DATA "4 4 0"
114 DATA "8 8 0"
115 DATA "12 12 0"
116 DATA "16 16 0"
117 DATA "21 21 0"
118 DATA "25 25 0"
119 DATA "29 29 0"
120 DATA "33 33 0"
121 DATA "37 37 0"
122 DATA "42 42 0"
123 DATA "46 46 0"
124 DATA "50 50 0"
125 DATA "54 54 0"
126 DATA "58 58 0"
127 DATA "63 63 0"
128 DATA "0 0 0"
129 DATA "4 2 0"
130 DATA "8 4 0"
131 DATA "12 6 0"
132 DATA "16 8 0"
133 DATA "21 10 0"
134 DATA "25 12 0"
135 DATA "29 14 0"
136 DATA "33 17 0"
137 DATA "37 19 0"
138 DATA "42 21 0"
139 DATA "46 23 0"
140 DATA "50 25 0"
141 DATA "54 27 0"
142 DATA "58 29 0"
143 DATA "63 32 0"
144 DATA "0 0 0"
145 DATA "4 0 2"
146 DATA "8 0 4"
147 DATA "12 0 6"
148 DATA "16 0 8"
149 DATA "21 0 10"
150 DATA "25 0 12"
151 DATA "29 0 14"
152 DATA "33 0 17"
153 DATA "37 0 19"
154 DATA "42 0 21"
155 DATA "46 0 23"
156 DATA "50 0 25"
157 DATA "54 0 27"
158 DATA "58 0 29"
159 DATA "63 0 32"
160 DATA "0 0 0"
161 DATA "0 2 4"
162 DATA "0 4 8"
163 DATA "0 6 12"
164 DATA "0 8 16"
165 DATA "0 10 21"
166 DATA "0 12 25"
167 DATA "0 14 29"
168 DATA "0 17 33"
169 DATA "0 19 37"
170 DATA "0 21 42"
171 DATA "0 23 46"
172 DATA "0 25 50"
173 DATA "0 27 54"
174 DATA "0 29 58"
175 DATA "0 32 63"
176 DATA "0 0 0"
177 DATA "4 3 2"
178 DATA "8 6 4"
179 DATA "12 9 6"
180 DATA "16 12 8"
181 DATA "21 16 10"
182 DATA "25 19 12"
183 DATA "29 22 14"
184 DATA "33 25 17"
185 DATA "37 28 19"
186 DATA "42 32 21"
187 DATA "46 35 23"
188 DATA "50 38 25"
189 DATA "54 41 27"
190 DATA "58 44 29"
191 DATA "63 48 32"
192 DATA "0 0 0"
193 DATA "4 2 2"
194 DATA "8 4 4"
195 DATA "12 6 6"
196 DATA "16 8 8"
197 DATA "21 10 10"
198 DATA "25 12 12"
199 DATA "29 14 14"
200 DATA "33 17 17"
201 DATA "37 19 19"
202 DATA "42 21 21"
203 DATA "46 23 23"
204 DATA "50 25 25"
205 DATA "54 27 27"
206 DATA "58 29 29"
207 DATA "63 32 32"
208 DATA "0 0 0"
209 DATA "3 2 0"
210 DATA "6 4 0"
211 DATA "9 6 0"
212 DATA "12 8 0"
213 DATA "15 10 0"
214 DATA "18 12 0"
215 DATA "21 14 0"
216 DATA "24 17 0"
217 DATA "27 19 0"
218 DATA "30 21 0"
219 DATA "33 23 0"
220 DATA "36 25 0"
221 DATA "39 27 0"
222 DATA "42 29 0"
223 DATA "46 32 0"
224 DATA "0 0 0"
225 DATA "0 0 0"
226 DATA "0 0 0"
227 DATA "0 0 0"
228 DATA "0 0 0"
229 DATA "0 0 0"
230 DATA "0 0 0"
231 DATA "0 0 0"
232 DATA "0 0 0"
233 DATA "0 0 0"
234 DATA "0 0 0"
235 DATA "0 0 0"
236 DATA "0 0 0"
237 DATA "0 0 0"
238 DATA "0 0 0"
239 DATA "0 0 0"
240 DATA "32 0 0"
241 DATA "34 4 0"
242 DATA "36 8 0"
243 DATA "38 12 0"
244 DATA "40 16 0"
245 DATA "42 21 0"
246 DATA "44 25 0"
247 DATA "46 29 0"
248 DATA "48 33 0"
249 DATA "50 37 0"
250 DATA "52 42 0"
251 DATA "54 46 0"
252 DATA "56 50 0"
253 DATA "58 54 0"
254 DATA "60 58 0"
255 DATA "63 63 0"
ShipData:
DATA 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,0,0,0,0,0,0,0,0
DATA 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,0,0,0,0,0,0,0,0
DATA 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,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,16,16,16,16,0,0,0,0,0,0,0,16,16,16,16,16,16,0,0,0,0,0,0,0,16,16,16,16,0,0,0,0,0,0
DATA 0,0,0,0,0,16,17,16,0,0,0,0,0,0,0,0,16,17,17,17,17,17,17,16,0,0,0,0,0,0,0,0,16,17,16,0,0,0,0,0
DATA 0,0,0,0,16,17,17,16,0,0,0,0,0,0,0,16,17,19,19,19,19,19,19,17,16,0,0,0,0,0,0,0,16,17,17,16,0,0,0,0
DATA 0,0,16,16,17,17,16,0,0,0,0,0,0,0,0,16,17,19,22,19,19,22,19,17,16,0,0,0,0,0,0,0,0,16,17,17,16,16,0,0
DATA 0,0,16,17,19,17,16,0,0,0,0,0,0,0,0,16,17,19,19,17,17,19,19,17,16,0,0,0,0,0,0,0,0,16,17,19,17,16,0,0
DATA 0,16,17,19,19,17,16,0,0,0,0,0,0,0,0,16,17,19,17,16,16,17,19,17,16,0,0,0,0,0,0,0,0,16,17,19,19,17,16,0
DATA 0,16,17,19,19,17,16,0,0,0,0,0,0,0,0,16,17,17,16,17,17,16,17,17,16,0,0,0,0,0,0,0,0,16,17,19,19,17,16,0
DATA 16,17,19,22,19,17,16,0,0,0,0,0,0,0,0,0,16,17,16,17,17,16,17,16,0,0,0,0,0,0,0,0,0,16,17,19,22,19,17,16
DATA 16,17,19,22,22,19,17,16,0,0,0,0,0,0,0,0,0,16,16,17,17,16,16,0,0,0,0,0,0,0,0,0,16,17,19,22,22,19,17,16
DATA 16,17,19,22,22,19,17,16,0,0,0,0,0,0,0,0,0,0,16,17,17,16,0,0,0,0,0,0,0,0,0,0,16,17,19,22,22,19,17,16
DATA 16,17,19,22,26,22,19,17,16,16,0,0,0,0,0,0,0,0,16,17,17,16,0,0,0,0,0,0,0,0,16,16,17,19,22,26,22,19,17,16
DATA 16,17,19,22,26,26,22,19,17,17,16,16,0,0,0,0,0,0,16,17,17,16,0,0,0,0,0,0,16,16,17,17,19,22,26,26,22,19,17,16
DATA 16,17,19,22,26,28,26,22,19,19,17,17,16,16,16,0,0,0,16,17,17,16,0,0,0,16,16,16,17,17,19,19,22,26,28,26,22,19,17,16
DATA 0,16,17,19,22,26,28,26,22,22,19,19,17,17,17,16,16,16,16,16,16,16,16,16,16,17,17,17,19,19,22,22,26,28,26,22,19,17,16,0
DATA 0,16,17,19,22,26,28,28,26,26,22,22,19,19,19,17,17,17,17,17,17,17,17,17,17,19,19,19,22,22,26,26,28,28,26,22,19,17,16,0
DATA 0,0,16,17,19,22,26,26,28,28,26,26,22,22,22,19,19,19,19,19,19,19,19,19,19,22,22,22,26,26,28,28,26,26,22,19,17,16,0,0
DATA 0,0,16,16,17,19,22,22,26,26,28,28,26,26,26,22,22,22,22,22,22,22,22,22,22,26,26,26,28,28,26,26,22,22,19,17,16,16,0,0
DATA 0,0,0,0,16,17,19,19,22,22,26,26,26,26,28,26,26,26,26,26,26,26,26,26,26,28,26,26,26,26,22,22,19,19,17,16,0,0,0,0
DATA 0,0,0,0,0,16,17,17,19,19,22,22,22,22,26,26,26,26,26,26,26,26,26,26,26,26,22,22,22,22,19,19,17,17,16,0,0,0,0,0
DATA 0,0,0,0,0,0,16,16,17,17,19,19,19,19,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,17,17,16,16,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,16,16,17,17,17,17,19,19,19,19,19,19,19,19,19,19,19,19,17,17,17,17,16,16,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,16,16,16,16,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 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,0,0,0,0,0,0,0,0
DATA 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,0,0,0,0,0,0,0,0
DATA 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,0,0,0,0,0,0,0,0
RingBottomData:
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 16,117,119,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,119,117,16
DATA 16,117,119,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,119,117,16
DATA 16,117,119,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,119,117,16
DATA 16,117,119,121,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,121,119,117,16
DATA 0,16,117,119,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,119,117,16,0
DATA 0,16,117,119,121,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,121,119,117,16,0
DATA 0,0,16,117,119,121,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,121,119,117,16,0,0
DATA 0,0,16,117,119,121,125,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,16,117,119,121,125,121,119,117,16,0,0
DATA 0,0,0,16,117,119,121,125,121,119,117,16,16,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,0,0,0,0,0,0,16,16,117,119,121,125,121,119,117,16,0,0,0
DATA 0,0,0,0,16,117,119,121,125,121,119,117,117,16,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,0,0,0,0,16,117,117,119,121,125,121,119,117,16,0,0,0,0
DATA 0,0,0,0,16,16,117,119,121,121,121,119,119,117,16,16,16,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,16,16,16,117,119,119,121,121,121,119,117,16,16,0,0,0,0
DATA 0,0,0,0,0,0,16,117,119,119,121,121,121,119,117,117,117,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,117,117,117,119,121,121,121,119,119,117,16,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,16,117,117,119,119,121,121,119,119,119,117,117,117,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,117,117,117,119,119,119,121,121,119,119,117,117,16,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,16,16,117,117,119,119,121,121,121,119,119,119,117,117,117,117,117,16,16,16,16,16,16,16,16,16,16,16,16,16,16,117,117,117,117,117,119,119,119,121,121,121,119,119,117,117,16,16,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,16,16,117,117,119,119,121,121,121,121,119,119,119,119,119,117,117,117,117,117,117,117,117,117,117,117,117,117,117,119,119,119,119,119,121,121,121,121,119,119,117,117,16,16,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,16,16,117,117,119,119,119,119,121,121,121,121,121,119,119,119,119,119,119,119,119,119,119,119,119,119,119,121,121,121,121,121,119,119,119,119,117,117,16,16,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,117,117,117,117,119,119,119,119,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,119,119,119,119,117,117,117,117,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,117,117,117,117,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,117,117,117,117,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
RingTopData:
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,117,117,117,117,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,117,117,117,117,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,117,117,117,117,119,119,119,119,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,119,119,119,119,117,117,117,117,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,16,16,117,117,119,119,119,119,121,121,121,121,121,119,119,119,119,119,119,119,119,119,119,119,119,119,119,121,121,121,121,121,119,119,119,119,117,117,16,16,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,16,16,117,117,119,119,121,121,121,121,119,119,119,119,119,117,117,117,117,117,117,117,117,117,117,117,117,117,117,119,119,119,119,119,121,121,121,121,119,119,117,117,16,16,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,16,16,117,117,119,119,121,121,121,119,119,119,117,117,117,117,117,16,16,16,16,16,16,16,16,16,16,16,16,16,16,117,117,117,117,117,119,119,119,121,121,121,119,119,117,117,16,16,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,16,117,117,119,119,121,121,119,119,119,117,117,117,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,117,117,117,119,119,119,121,121,119,119,117,117,16,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,16,117,119,119,121,121,121,119,117,117,117,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,117,117,117,119,121,121,121,119,119,117,16,0,0,0,0,0,0
DATA 0,0,0,0,16,16,117,119,121,121,121,119,119,117,16,16,16,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,16,16,16,117,119,119,121,121,121,119,117,16,16,0,0,0,0
DATA 0,0,0,0,16,117,119,121,125,121,119,117,117,16,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,0,0,0,0,16,117,117,119,121,125,121,119,117,16,0,0,0,0
DATA 0,0,0,16,117,119,121,125,121,119,117,16,16,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,0,0,0,0,0,0,16,16,117,119,121,125,121,119,117,16,0,0,0
DATA 0,0,16,117,119,121,125,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,16,117,119,121,125,121,119,117,16,0,0
DATA 0,0,16,117,119,121,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,121,119,117,16,0,0
DATA 0,16,117,119,121,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,121,119,117,16,0
DATA 0,16,117,119,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,119,117,16,0
DATA 16,117,119,121,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,121,119,117,16
DATA 16,117,119,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,119,117,16
DATA 16,117,119,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,119,117,16
DATA 16,117,119,121,119,117,16,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,117,119,121,119,117,16
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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
DATA 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,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

SUB delay (d)
        FOR x = 1 TO d
WAIT &H3DA, 8
        NEXT
END SUB

SUB init
superput
loadpaldata
        FOR y = 1 TO 32
       FOR x = 1 TO 40
       READ col
       PSET (x, y), col
       NEXT
        NEXT
GET (0, 0)-(39, 31), ship
        RESTORE ShipData
        FOR y = 1 TO 32
       FOR x = 1 TO 40
       READ col
       IF col <> 0 THEN PSET (x, y), 16
       NEXT
        NEXT
GET (0, 0)-(39, 31), ship2
       
        FOR y = 1 TO 40
       FOR x = 1 TO 64
       READ col
       PSET (x, y), col
       NEXT
        NEXT
GET (0, 0)-(63, 39), Ringbottom
        FOR y = 1 TO 40
       FOR x = 1 TO 64
       READ col
       PSET (x, y), col
       NEXT
        NEXT
GET (0, 0)-(63, 39), Ringtop
CLS
        FOR s = 1 TO 50
                Star(s).x = INT(RND * 320)
                Star(s).y = INT(RND * 200)
                Star(s).Yspeed = INT(RND * 10) + 1
        NEXT
               
                FOR r = 1 TO 5
                        Ring(r).y = -40 - INT(RND * 320)
                        Ring(r).x = INT(RND * 256)
                        Ring(r).Active = 1
                NEXT
Hero.x = (320 \ 2) - (40 \ 2)
Hero.y = 200 - 32
END SUB

SUB loadpaldata
OUT &H3C8, 0
                        FOR t = 0 TO 255
                READ temp$
                FOR i = 1 TO LEN(temp$)
IF ASC(MID$(temp$, i, 1)) = 32 THEN
        Red$ = MID$(temp$, 1, i - 1)
        temp$ = RIGHT$(temp$, LEN(temp$) - i)
        EXIT FOR
END IF
                NEXT
             
                FOR i = 1 TO LEN(temp$)
IF ASC(MID$(temp$, i, 1)) = 32 THEN
        Blue$ = MID$(temp$, 1, i - 1)
        temp$ = RIGHT$(temp$, LEN(temp$) - i)
        EXIT FOR
END IF
                NEXT
Green$ = temp$

OUT &H3C9, VAL(Red$)
OUT &H3C9, VAL(Green$)
OUT &H3C9, VAL(Blue$)
                        NEXT t


END SUB

DEFINT A-Z
SUB superput STATIC
  IF NOT Loaded THEN
    SCREEN 13
    PSET (160, 100), 0

    DefSeg& = VARSEG(DefSeg$)
    DEF SEG = DefSeg&
    FOR i = 0 TO &H7FFC
      IF PEEK(i) = &HA0 AND PEEK(i + 1) = &H7D THEN
      IF PEEK(i + 2) = &H0 AND PEEK(i + 3) = &HA0 THEN
        VideoSegOff = i + 2
        EXIT FOR
      END IF
      END IF
    NEXT

    IF i = &H7FFD THEN
      SCREEN 0
      WIDTH 80, 25
      PRINT "SuperPut Error: Cannot find video segment offset."
      PRINT "Check to make sure you are using a compatible version of QB."
      END
    END IF
   
    PutSeg& = DefSeg& - &H400
    DO WHILE PutSeg& > 0
      DEF SEG = PutSeg&
      FOR i = 0 TO &H3FF4
        IF PEEK(i) = &HC4 AND PEEK(i + 1) = &H5E AND PEEK(i + 2) = &HA THEN
        IF PEEK(i + 3) = &H8C AND PEEK(i + 4) = &HC1 AND PEEK(i + 5) = &H41 THEN
        IF PEEK(i + 6) = &HE2 AND PEEK(i + 7) = &H5 AND PEEK(i + 8) = &H8B THEN
        IF PEEK(i + 9) = &H5E AND PEEK(i + 10) = &H8 AND PEEK(i + 11) = &HC4 THEN
        IF PEEK(i + 12) = &H1F THEN
          PutOff = i
          PutSeg& = PutSeg& - 1
          EXIT DO
        END IF
        END IF
        END IF
        END IF
        END IF
      NEXT
      PutSeg& = PutSeg& - &H3FF
    LOOP

    IF i = &H3FF5 THEN
      SCREEN 0
      WIDTH 80, 25
      PRINT "SuperPut Error: Cannot find QB's B$GPUT routine."
      PRINT "Check to make sure you are using a compatible version of QB"
      PRINT "and have compiled your program as a stand-alone EXE."
      END
    END IF
    NewPut$ = "8B1CC1EB032E891E36022E891E3C028B54022E891638022E89163E022EC706"
    NewPut$ = NewPut$ + "340200002EC7063A0200002EC706400200002EC706420200002E"
    NewPut$ = NewPut$ + "C706460200002EC7064402000083C6048B460A3D3F010F8F8C00"
    NewPut$ = NewPut$ + "3D00000F8CA6008B4E0881F9C7007F7C83F9000F8CAB0003D881"
    NewPut$ = NewPut$ + "FB3F010F8FB7002BD803D181FAC7000F8FC1002BD12E891E3602"
    NewPut$ = NewPut$ + "86E9BB40018BF92E2B1E3602C1EF0203F92E891E3A0203F8837E"
    NewPut$ = NewPut$ + "06020F84B700837E06000F84DF00837E06010F842601837E0603"
    NewPut$ = NewPut$ + "742A2E8B1E36028BCB8A04460AC07403268805474975F22E033E"
    NewPut$ = NewPut$ + "3A022E033634024A75E31F075F5E5DCA0800FC2E8B1E36028BCB"
    NewPut$ = NewPut$ + "F3A42E033E3A022E033634024A75EFEBDFF7D82BD87ED903F02E"
    NewPut$ = NewPut$ + "A334022EA3440233C0E945FFF7D92BD17EC42E890E40022E0336"
    NewPut$ = NewPut$ + "36024975F8E93FFF81EB40012E011E34022E891E4202BB40012B"
    NewPut$ = NewPut$ + "D8E935FF03CA81E9C8002BD12E8B0E3E022E890E46022E291646"
    NewPut$ = NewPut$ + "028B4E08E924FF2E033642022E8B0E36028BD94B2E2B1E44028A"
    NewPut$ = NewPut$ + "000AC07403268805474B4975F22E033E3A022E03363C024A75D8"
    NewPut$ = NewPut$ + "E951FFB940018BDA4B0FAFCB03F92E8B0E3C022E8B1E40020FAF"
    NewPut$ = NewPut$ + "CB2BF12EA13C022E8B1E46020FAFC303F02E8B0E36028A04460A"
    NewPut$ = NewPut$ + "C07403268805474975F22E2B3E360281EF40012E033634024A75"
    NewPut$ = NewPut$ + "DCE902FF2E8B0E3C028BDA0FAFCB03F14E2E8B0E3C022E8B1E40"
    NewPut$ = NewPut$ + "020FAFCB2BF12EA13C022E8B1E46020FAFC303F02E2B3644022E"
    NewPut$ = NewPut$ + "8B0E36022E2B3644028A044E0AC07403268805474975F22E033E"
    NewPut$ = NewPut$ + "3A022E2B3642024A75DBE9ABFE00000000000000000000000000"
    NewPut$ = NewPut$ + "00000000000000"
    DIM NewPut(LEN(NewPut$) / 2 - 1)
    DEF SEG = VARSEG(NewPut(0))
    FOR i = 1 TO LEN(NewPut$) STEP 2
      POKE (i - 1) / 2, VAL("&H" + MID$(NewPut$, i, 2))
    NEXT
    NewPut$ = ""
  END IF
  DEF SEG = PutSeg&
  IF PEEK(PutOff + &H1D) = &H26 THEN
    POKE PutOff + &H50, PEEK(PutOff + &H2B)
    POKE PutOff + &H51, PEEK(PutOff + &H2C)
    POKE PutOff + &H52, PEEK(PutOff + &H33)
    POKE PutOff + &H53, PEEK(PutOff + &H34)
    POKE PutOff + &H54, PEEK(PutOff + &H38)
    POKE PutOff + &H55, PEEK(PutOff + &H39)
  END IF
  POKE PutOff + &H1D, &H1E
  POKE PutOff + &H1E, &HA1
  POKE PutOff + &H1F, PEEK(PutOff + &H42)
  POKE PutOff + &H20, PEEK(PutOff + &H43)
  POKE PutOff + &H21, &H89
  POKE PutOff + &H22, &H46
  POKE PutOff + &H23, &H8
  POKE PutOff + &H24, &HA1
  POKE PutOff + &H25, PEEK(PutOff + &H54)
  POKE PutOff + &H26, PEEK(PutOff + &H55)
  POKE PutOff + &H27, &H89
  POKE PutOff + &H28, &H46
  POKE PutOff + &H29, &HA
  POKE PutOff + &H2A, &H89
  POKE PutOff + &H2B, &HDE
  POKE PutOff + &H2C, &H8C
  POKE PutOff + &H2D, &HC3
  POKE PutOff + &H2E, &H8E
  POKE PutOff + &H2F, &HDB
  POKE PutOff + &H30, &HBB
  POKE PutOff + &H31, DefSeg& AND &HFF
  POKE PutOff + &H32, (DefSeg& AND &HFF00&) \ &H100
  POKE PutOff + &H33, &H8E
  POKE PutOff + &H34, &HC3
  POKE PutOff + &H35, &H26
  POKE PutOff + &H36, &H8B
  POKE PutOff + &H37, &H1E
  POKE PutOff + &H38, VideoSegOff AND &HFF
  POKE PutOff + &H39, (VideoSegOff AND &HFF00&) \ &H100
  POKE PutOff + &H3A, &H8E
  POKE PutOff + &H3B, &HC3
  POKE PutOff + &H3C, &HEA
  POKE PutOff + &H3D, &H0
  POKE PutOff + &H3E, &H0
  POKE PutOff + &H3F, VARSEG(NewPut(0)) AND &HFF
  POKE PutOff + &H40, (VARSEG(NewPut(0)) AND &HFF00&) \ &H100

  Loaded = -1

END SUB

SUB SuperPutRemove STATIC
  IF PutSeg& = 0 THEN   'First time? If so, we have to find B$GPUT.
    PutSeg& = VARSEG(DefSeg$) - &H400
    DO WHILE PutSeg& > 0
      DEF SEG = PutSeg&
      FOR i = 0 TO &H3FF4
        IF PEEK(i) = &HC4 AND PEEK(i + 1) = &H5E AND PEEK(i + 2) = &HA THEN
        IF PEEK(i + 3) = &H8C AND PEEK(i + 4) = &HC1 AND PEEK(i + 5) = &H41 THEN
        IF PEEK(i + 6) = &HE2 AND PEEK(i + 7) = &H5 AND PEEK(i + 8) = &H8B THEN
        IF PEEK(i + 9) = &H5E AND PEEK(i + 10) = &H8 AND PEEK(i + 11) = &HC4 THEN
        IF PEEK(i + 12) = &H1F THEN
          PutOff = i
          PutSeg& = PutSeg& - 1
          EXIT DO
        END IF
        END IF
        END IF
        END IF
        END IF
      NEXT
      PutSeg& = PutSeg& - &H3FF
    LOOP

    IF i = &H3FF5 THEN
      SCREEN 0
      WIDTH 80, 25
      PRINT "SuperPut Error: Cannot find QB's B$GPUT routine."
      PRINT "Check to make sure you are using a compatible version of QB"
      PRINT "and have compiled your program as a stand-alone EXE."
      END
    END IF

  END IF


  DEF SEG = PutSeg&
  IF PEEK(PutOff + &H1D) = &H26 THEN EXIT SUB
  POKE PutOff + &H1D, &H26
  POKE PutOff + &H1E, &H8B
  POKE PutOff + &H1F, &H37
  POKE PutOff + &H20, &H56
  POKE PutOff + &H21, &H26
  POKE PutOff + &H22, &H8B
  POKE PutOff + &H23, &H7F
  POKE PutOff + &H24, &H2
  POKE PutOff + &H25, &H57
  POKE PutOff + &H26, &H83
  POKE PutOff + &H27, &HC3
  POKE PutOff + &H28, &H4
  POKE PutOff + &H29, &H53
  POKE PutOff + &H2A, &HE8
  POKE PutOff + &H2B, PEEK(PutOff + &H50)
  POKE PutOff + &H2C, PEEK(PutOff + &H51)
  POKE PutOff + &H2D, &H93
  POKE PutOff + &H2E, &H96
  POKE PutOff + &H2F, &H99
  POKE PutOff + &H30, &H32
  POKE PutOff + &H31, &HFF
  POKE PutOff + &H32, &HE8
  POKE PutOff + &H33, PEEK(PutOff + &H52)
  POKE PutOff + &H34, PEEK(PutOff + &H53)
  POKE PutOff + &H35, &H48
  POKE PutOff + &H36, &H8B
  POKE PutOff + &H37, &H16
  POKE PutOff + &H38, PEEK(PutOff + &H54)
  POKE PutOff + &H39, PEEK(PutOff + &H55)
  POKE PutOff + &H3A, &H3
  POKE PutOff + &H3B, &HC2
  POKE PutOff + &H3C, &H72
  POKE PutOff + &H3D, &H1B
  POKE PutOff + &H3E, &H8B
  POKE PutOff + &H3F, &HC8
  POKE PutOff + &H40, &H8B
  POKE PutOff + &H50, &H75
  POKE PutOff + &H51, &H4
  POKE PutOff + &H52, &H2B
  POKE PutOff + &H53, &HDF
  POKE PutOff + &H54, &HEB
  POKE PutOff + &H55, &H3

END SUB



Hope this is okay! (And again, sorry for the size)

btw i call it "Flyer.bas"

the object is to get through as many rings as possible in the allotted time. Uhh I know it has ALOT of data statements, the first ones are the palette and the nextones are the sprites.

controls are just arrowkeys...(and esc)


Now to get it down to 9 lines...
Logged
Spotted Cheetah
Ancient QBer
****
Posts: 400



WWW
« Reply #13 on: March 12, 2004, 05:28:30 AM »

This is interesting... I think we should divide this competition into multiple parts since the code above is a very deep use of "undocumented code". I will look around in it.

So there would be the "documented class" where the programmers use only what is displayed in the help, or "easily understandable" code like using up BSAVE's fileformats and things like this. What can be explained in a few words. For example if we GET an image into an integer array, array(0) will store the X dimension, and array(1) will store the Y dimension.

The "undocumented class" will be the others like this SuperPUT routine where you are going very deep in QB. I could not find out if this contains some Assembly code for the first look, if yes, it can not be called 100% QB. But this seems to do something different...

If You are using the basic library and interrupts, You shoul describe each of them what you are using, or give a location where it is written.

FFIX can be used freely, that library's only purpose is to fix a QB bug so the games will run a bit faster if using floating point, and will not freeze the computer.
Logged

fter 60 million years a civilization will search for a meteorite destroying most of the living creatures around this age...

There must be a better future for the Cheetahs!

http://rcs.fateback.com/
Spotted Cheetah
Ancient QBer
****
Posts: 400



WWW
« Reply #14 on: March 12, 2004, 05:32:46 AM »

Yet one more: 100% QB does not mean that You must do it in a single .BAS file. You can use external files if needed. (For example some BMP pictures, or BSAVEd ones, or maps, or anything else)
Logged

fter 60 million years a civilization will search for a meteorite destroying most of the living creatures around this age...

There must be a better future for the Cheetahs!

http://rcs.fateback.com/
Pages: [1] 2 3 ... 10
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!