Find the ball - classic shell game - Dav - 05-09-2022
I put this together last night for a younger relative to play. It's the classic cups and ball, or shell game. The ball hides under a cup, cups are shuffled around, you click on the cup you think the ball is under. There's no score keeping, it just keeps looping over with a new game. Mildly entertaining to play for a while I suppose. The fun for me was making it. This uses the power of RotoZoom3 to animate/shuffle the cups.
- Dav
Code: (Select All) '============
'FINDBALL.BAS
'============
'Classic Cups & Ball game (shell game)
'Coded by Dav, MAY/2022
'Cups will shuffle. Click the cup with the ball.
'If selected correctly, screen flashes green. If not,
'screen will flash red. This could be turned into a
'game easy, with score keeping and speed changes.
'For now it just loops over and over.
RANDOMIZE TIMER
SCREEN _NEWIMAGE(1000, 600, 32)
cup& = BASIMAGE1& 'decode cup image to use
ball& = BASIMAGE2& 'decode ball image to use
'=== draw background
CLS , _RGB(232, 232, 255)
LINE (0, 350)-(_WIDTH, _HEIGHT), _RGB(128, 255, 128), BF
'=== grab background image
back& = _COPYIMAGE(_DISPLAY)
speed = 75 'speed for _LIMIT
moves = 15 'how many shuffle moves to do
DO
cupball = INT(RND * 3) + 1 'make random cupball number (1,2,or 3)
GOSUB ShowBall 'show where ball is first
'shuffle the cups
FOR m = 1 TO moves
SELECT CASE INT(RND * 6) + 1 'random move
CASE 1: GOSUB move1to2
CASE 2: GOSUB move1to3
CASE 3: GOSUB move2to1
CASE 4: GOSUB move2to3
CASE 5: GOSUB move3to1
CASE 6: GOSUB move3to2
END SELECT
NEXT
GOSUB PlaceCups 'make sure they are placed right
selected = 0 'not selected yet
DO
WHILE _MOUSEINPUT: WEND
IF _MOUSEBUTTON(1) THEN
mx = _MOUSEX: my = _MOUSEY
'clicked cup 1
IF mx > 114 AND mx < 316 AND my > 146 AND my < 439 THEN
IF cupball = 1 THEN selected = 1
EXIT DO
END IF
'clicked cup 2
IF mx > 378 AND mx < 600 AND my > 146 AND my < 439 THEN
IF cupball = 2 THEN selected = 1
EXIT DO
END IF
'clicked cup 3
IF mx > 694 AND mx < 911 AND my > 146 AND my < 439 THEN
IF cupball = 3 THEN selected = 1
EXIT DO
END IF
END IF
LOOP
'make sure mouse button up to continue
DO UNTIL _MOUSEBUTTON(1) = 0: m = _MOUSEINPUT: LOOP
'flash screen based on selection
IF selected = 0 THEN
'flash red - wrong one
LINE (0, 0)-(_WIDTH, _HEIGHT), _RGBA(255, 0, 0, 100), BF
_DISPLAY
_DELAY .25
ELSE
'flash green - selected right
LINE (0, 0)-(_WIDTH, _HEIGHT), _RGBA(0, 255, 0, 100), BF
_DISPLAY
_DELAY .25
END IF
GOSUB ShowBall 'show where ball is
LOOP
END
'===================================================================
PlaceCups: 'shows all cups in place
'=========
'Place all cups first
_PUTIMAGE (0, 0), back&
RotoZoom3 200, 300, cup&, 1, 1, 0
RotoZoom3 500, 300, cup&, 1, 1, 0
RotoZoom3 800, 300, cup&, 1, 1, 0
_DISPLAY
RETURN
'=====
'===================================================================
ShowBall: 'Raises cup to show ball
'=======
'make sure showing all cups first
GOSUB PlaceCups
_DISPLAY: _DELAY 1
'raise a cup based on cupball number
SELECT CASE cupball
CASE IS = 1 'raise cup 1
_PUTIMAGE (0, 0), back&
FOR y = 300 TO 175 STEP -7
_PUTIMAGE (0, 0), back&
RotoZoom3 500, 300, cup&, 1, 1, 0
RotoZoom3 800, 300, cup&, 1, 1, 0
RotoZoom3 210, 400, ball&, 1, 1, 0 'ball first
RotoZoom3 200, y, cup&, 1, 1, 0 'cup over
_DISPLAY
_LIMIT 50
NEXT
CASE IS = 2 'raise cup 2
_PUTIMAGE (0, 0), back&
FOR y = 300 TO 175 STEP -7
_PUTIMAGE (0, 0), back&
RotoZoom3 200, 300, cup&, 1, 1, 0
RotoZoom3 800, 300, cup&, 1, 1, 0
RotoZoom3 510, 400, ball&, 1, 1, 0 'ball first
RotoZoom3 500, y, cup&, 1, 1, 0 'cup over
_DISPLAY
_LIMIT 50
NEXT
CASE IS = 3 'raise cup 3
_PUTIMAGE (0, 0), back&
FOR y = 300 TO 175 STEP -7
_PUTIMAGE (0, 0), back&
RotoZoom3 200, 300, cup&, 1, 1, 0
RotoZoom3 500, 300, cup&, 1, 1, 0
RotoZoom3 810, 400, ball&, 1, 1, 0 'ball first
RotoZoom3 800, y, cup&, 1, 1, 0 'cup over
_DISPLAY
_LIMIT 50
NEXT
END SELECT
_DELAY 1 'pause to see ball
'now lower the same a cup
SELECT CASE cupball
CASE IS = 1 'lower cup 1
_PUTIMAGE (0, 0), back&
FOR y = 175 TO 300 STEP 7
_PUTIMAGE (0, 0), back&
RotoZoom3 500, 300, cup&, 1, 1, 0
RotoZoom3 800, 300, cup&, 1, 1, 0
RotoZoom3 210, 400, ball&, 1, 1, 0 'ball first
RotoZoom3 200, y, cup&, 1, 1, 0 'cup over
_DISPLAY
_LIMIT 50
NEXT
CASE IS = 2 'lower cup 2
_PUTIMAGE (0, 0), back&
FOR y = 175 TO 300 STEP 7
_PUTIMAGE (0, 0), back&
RotoZoom3 200, 300, cup&, 1, 1, 0
RotoZoom3 800, 300, cup&, 1, 1, 0
RotoZoom3 510, 400, ball&, 1, 1, 0 'ball first
RotoZoom3 500, y, cup&, 1, 1, 0 'cup over
_DISPLAY
_LIMIT 50
NEXT
CASE IS = 3 'lower cup 3
_PUTIMAGE (0, 0), back&
FOR y = 175 TO 300 STEP 7
_PUTIMAGE (0, 0), back&
RotoZoom3 200, 300, cup&, 1, 1, 0
RotoZoom3 500, 300, cup&, 1, 1, 0
RotoZoom3 810, 400, ball&, 1, 1, 0 'ball first
RotoZoom3 800, y, cup&, 1, 1, 0 'cup over
_DISPLAY
_LIMIT 50
NEXT
END SELECT
RETURN
'=====
'===================================================================
move1to2: 'moves cup 1 over to cup 2
'=======
cup1z = 1: cup2z = 1: cup3z = 1
FOR move = 1 TO 300 STEP 15
_PUTIMAGE (0, 0), back& 'redraw background
'cup 3 stays in place
RotoZoom3 800, 300, cup&, cup3z, cup3z, 0
'cup 2 shrinks, going under cup 1, moving left
RotoZoom3 500 - move, 300 - cup2z, cup&, cup2z, cup2z, 0
IF move > 150 THEN cup2z = cup2z + .03 ELSE cup2z = cup2z - .03
'cup 1 enlarges, going over cup 2, moving right
RotoZoom3 200 + move, 300 * cup1z, cup&, cup1z, cup1z, 0
IF move > 150 THEN cup1z = cup1z - .03 ELSE cup1z = cup1z + .03
_DISPLAY
_LIMIT speed
NEXT
'swap ball placement
SELECT CASE cupball
CASE 1: cupball = 2
CASE 2: cupball = 1
END SELECT
RETURN
'=====
'===================================================================
move1to3: 'move cup 1 over to cup 3
'=======
cup1z = 1: cup2z = 1: cup3z = 1
FOR move = 1 TO 300 STEP 8
_PUTIMAGE (0, 0), back&
'cup 3 shrinks, moves left two places
RotoZoom3 800 - (move * 2), 300 - cup3z, cup&, cup3z, cup3z, 0
IF move > 150 THEN cup3z = cup3z + .02 ELSE cup3z = cup3z - .02
'cup 2 stays in place
RotoZoom3 500, 300, cup&, cup2z, cup2z, 0
'cup 1 enlarges, moving right two places
RotoZoom3 200 + (move * 2), 300 * cup1z, cup&, cup1z, cup1z, 0
IF move > 150 THEN cup1z = cup1z - .02 ELSE cup1z = cup1z + .02
_DISPLAY
_LIMIT speed * 1.7
NEXT
SELECT CASE cupball
CASE 1: cupball = 3
CASE 3: cupball = 1
END SELECT
RETURN
'=====
'===================================================================
move2to1: 'move cup 2 over to cup 1
'=======
cup1z = 1: cup2z = 1: cup3z = 1
FOR move = 1 TO 300 STEP 15
_PUTIMAGE (0, 0), back&
'3rd cup stays in place
RotoZoom3 800, 300, cup&, cup3z, cup3z, 0
'cup 1 shrinks, moving right
RotoZoom3 200 + move, 300 - cup1z, cup&, cup1z, cup1z, 0
IF move > 150 THEN cup1z = cup1z + .03 ELSE cup1z = cup1z - .03
'cup 2 enlarges, moving left
RotoZoom3 500 - move, 300 * cup2z, cup&, cup2z, cup2z, 0
IF move > 150 THEN cup2z = cup2z - .03 ELSE cup2z = cup2z + .03
_DISPLAY
_LIMIT speed
NEXT
SELECT CASE cupball
CASE 1: cupball = 2
CASE 2: cupball = 1
END SELECT
RETURN
'=====
'===================================================================
move2to3: 'move cup 2 over to cup 3
'=======
cup1z = 1: cup2z = 1: cup3z = 1
FOR move = 1 TO 300 STEP 15
_PUTIMAGE (0, 0), back&
'cup 1 stays in place
RotoZoom3 200, 300, cup&, cup1z, cup1z, 0
'cup 3 shrinks under, moves left 1 cup,
RotoZoom3 800 - move, 300 - cup3z, cup&, cup3z, cup3z, 0
IF move > 150 THEN cup3z = cup3z + .03 ELSE cup3z = cup3z - .03
'cup 2 enlarges over, moves right 1 cup
RotoZoom3 500 + move, 300 * cup2z, cup&, cup2z, cup2z, 0
IF move > 150 THEN cup2z = cup2z - .03 ELSE cup2z = cup2z + .03
_DISPLAY
_LIMIT speed
NEXT
SELECT CASE cupball
CASE 2: cupball = 3
CASE 3: cupball = 2
END SELECT
RETURN
'===================================================================
move3to1: 'move cup 3 over to cup 1
'=======
cup1z = 1: cup2z = 1: cup3z = 1
FOR move = 1 TO 300 STEP 8
_PUTIMAGE (0, 0), back&
'cup 1 shrinks under, moving right two cup places,
RotoZoom3 200 + (move * 2), 300 - cup1z, cup&, cup1z, cup1z, 0
IF move > 150 THEN cup1z = cup1z + .02 ELSE cup1z = cup1z - .02
'cup2 stays in place
RotoZoom3 500, 300, cup&, cup2z, cup2z, 0
'cup 3 enlarges over, moving left two cup places,
RotoZoom3 800 - (move * 2), 300 * cup3z, cup&, cup3z, cup3z, 0
IF move > 150 THEN cup3z = cup3z - .02 ELSE cup3z = cup3z + .02
_DISPLAY
_LIMIT speed * 1.7
NEXT
SELECT CASE cupball
CASE 3: cupball = 1
CASE 1: cupball = 3
END SELECT
RETURN
'=====
'===================================================================
move3to2: 'move cup 3 over to cup2
'=======
cup1z = 1: cup2z = 1: cup3z = 1
FOR move = 1 TO 300 STEP 15
_PUTIMAGE (0, 0), back&
'cup1 stays in place
RotoZoom3 200, 300, cup&, cup1z, cup1z, 0
'cup 2 shrinks under, moves right 1 cup
RotoZoom3 500 + move, 300 - cup2z, cup&, cup2z, cup2z, 0
IF move > 150 THEN cup2z = cup2z + .03 ELSE cup2z = cup2z - .03
'cup 3 enlarges over, moves left 1 cup,
RotoZoom3 800 - move, 300 * cup3z, cup&, cup3z, cup3z, 0
IF move > 150 THEN cup3z = cup3z - .03 ELSE cup3z = cup3z + .03
_DISPLAY
_LIMIT speed
NEXT
SELECT CASE cupball
CASE 3: cupball = 2
CASE 2: cupball = 3
END SELECT
RETURN
SUB RotoZoom3 (X AS LONG, Y AS LONG, Image AS LONG, xScale AS SINGLE, yScale AS SINGLE, radianRotation AS SINGLE)
' This assumes you have set your drawing location with _DEST or default to screen.
' X, Y - is where you want to put the middle of the image
' Image - is the handle assigned with _LOADIMAGE
' xScale, yScale - are shrinkage < 1 or magnification > 1 on the given axis, 1 just uses image size.
' These are multipliers so .5 will create image .5 size on given axis and 2 for twice image size.
' radianRotation is the Angle in Radian units to rotate the image
' note: Radian units for rotation because it matches angle units of other Basic Trig functions
' and saves a little time converting from degree.
' Use the _D2R() function if you prefer to work in degree units for angles.
DIM px(3) AS SINGLE: DIM py(3) AS SINGLE ' simple arrays for x, y to hold the 4 corners of image
DIM W&, H&, sinr!, cosr!, i&, x2&, y2& ' variables for image manipulation
W& = _WIDTH(Image&): H& = _HEIGHT(Image&)
px(0) = -W& / 2: py(0) = -H& / 2 'left top corner
px(1) = -W& / 2: py(1) = H& / 2 ' left bottom corner
px(2) = W& / 2: py(2) = H& / 2 ' right bottom
px(3) = W& / 2: py(3) = -H& / 2 ' right top
sinr! = SIN(-radianRotation): cosr! = COS(-radianRotation) ' rotation helpers
FOR i& = 0 TO 3 ' calc new point locations with rotation and zoom
x2& = xScale * (px(i&) * cosr! + sinr! * py(i&)) + X: y2& = yScale * (py(i&) * cosr! - px(i&) * sinr!) + Y
px(i&) = x2&: py(i&) = y2&
NEXT
_MAPTRIANGLE _SEAMLESS(0, 0)-(0, H& - 1)-(W& - 1, H& - 1), Image TO(px(0), py(0))-(px(1), py(1))-(px(2), py(2))
_MAPTRIANGLE _SEAMLESS(0, 0)-(W& - 1, 0)-(W& - 1, H& - 1), Image TO(px(0), py(0))-(px(3), py(3))-(px(2), py(2))
END SUB
FUNCTION BASIMAGE1& 'cup.png
v& = _NEWIMAGE(235, 336, 32)
DIM m AS _MEM: m = _MEMIMAGE(v&)
A$ = ""
A$ = A$ + "haIkM^Z\ULK50=O66UZ<`h1KZ=gP;dLGYlg`DVIP13l0SQikHh14H0Q5BZ:h"
A$ = A$ + "4JZ9gn<GecFZgjEgB]N]0[JNN?W^E_GmFB]d^odWndOhC000L9nOoWomW<lO"
A$ = A$ + "oWoeRbojS?^d?_lH[e]C0DKTaknla=Wj<l?n;o9_lgocoX:nno7jk1G661RU"
A$ = A$ + "c;G?JgKNlR5o]?lMQignf3lago^RSegQhkOoHeagce_acQBRVOjjQ6OK;>f4"
A$ = A$ + "WokodgHa_nSOmdQllCee=N]`YCaUaI1G2iPblQblObLKbhBO^i_l3oaZA[Me"
A$ = A$ + "#^[?7f=?M>iXaUG;TnYd9=i4U^fV?lcOoGU5ed=kI?EbI>?dlLY[od[OeWaK"
A$ = A$ + "W7BY?[?cEZdWEILF^>:^jiLE]c9ON\9_\<?\_l^h`m;^i;gmagj[J\nUfcNi"
A$ = A$ + "8iYUfOmM>kVkeTgeh_Tg]?`=gYjllhhXYjU]boVE7]Fn^Vk:ck:ciRgf67Ej"
A$ = A$ + "VKNY_aI:mbFkHhVg;76W[`MaI[WKjjWVnfjVcLDcER[FFLKkTmCfeIaK;SSJ"
A$ = A$ + "=^CWlWb[;mlh:aIKW[jfnY=fFcmoaG_VSn\?^:i?G5o4W]\>[i_?DNfF7o?2"
A$ = A$ + "4J<XVfmEa7?S_R7W?BOe<oah[nAV7mYSnKOkd?6dBk\alHh8Vf:[i>6O=ZSj"
A$ = A$ + ">GAaLDLedLH8^[Zi[dOHM?eMlXmnJ#HdXe>aXPKoQgR=K]WdJliYKaES`j5J"
A$ = A$ + "DYe^#_Sel3oJL9c=lGV3Y[hYhZh[e`EUkoW]aU]b^jfinEjg;^:^J]`Moj]j"
A$ = A$ + "^jF>eWkm<ajdM;6Zgg?;c2]f7jEdfS][\[J6WjfhfUk1][hZcZcFjHALe`]9"
A$ = A$ + "J^jFLjZ>G`bWQJYMeIbKe^WOY8D<k8B9SILmEcL1_RiFMG_3VfT]hUBjZSZ_"
A$ = A$ + "6ZoIedE7EO]da<K]3ba\^b?WE;GED[R^bl;MG>K9n>JMOG;aaaMd>Mg>ZaCU"
A$ = A$ + "[72ijj7Ge^fIFCO=gHVJM?QBi7gmWAZ^J_L]h\NjQJZ:^ZU[^GC0cH=0G;W]"
A$ = A$ + "VnOYbcNGLgikJQSJ^68mDI=Z4Gm;^jQJG]ccai^^VECOLdLfJM>fj[MJG7?D"
A$ = A$ + "WeLZSjhZnMEI>fLZg3m\OfJg[7miFN]dT7eJLYNR3aE?f7HIMLFn^RXde1dJ"
A$ = A$ + "hY]dI>clmf;^lMO=DjXk[?OUH>j3LV^ZX]c]ff[Ekc^K7m>M_LMdcncg:_]f"
A$ = A$ + "^YEmAc=?ZBl6^JR^ZFKXkkU2AoS;]cfC>J[HDMFO>ZUOj9^bgkl;LeS?cVLl"
A$ = A$ + "E]L]YlNTY7mdFkUg]cNEOemJQkalQgG>nbQVPWR[VQ[V1aN?#icIKiHAK];f"
A$ = A$ + "bL\ij]QjG[d;;J\4^JELeH>K<^khDLEo]1IoNQ]Fa#hZEeE3RWgYgV[?YdOj"
A$ = A$ + "FjYSlgKXS1O_WFC]?[U6Le>fECHL;aN_QgjlOm4Nco5jmRn5^>Q[>Q^JTH2i"
A$ = A$ + "kWgHhK^Y?;nRece?>[CMfnPj[?YbfgCe^NS^9^j0hZ>>kIME[[abl7GdOSVO"
A$ = A$ + "bC^:OoOZnaRWWEnEKGaEk0G]2c;#?A:nC87B]m9cn1hmiM5Y_0Q>NkVkaFk["
A$ = A$ + "K\oEG6GmP_V2alQ2hZN_?BV7[]^]5G]^\G33kYn03P0]n0_Re`5=G]eGK69T"
A$ = A$ + "]IYVkSfi;d>S[niJ>:a#W:ni:djcQA1CkUimlh:kZTGmla?hZgGKm:WG=imI"
A$ = A$ + "34=>27]n]a[jL;9kokcfS0k9O0J9kc3lSGFbn1_o^ah3OGeFge0D2T?;[]ol"
A$ = A$ + ":UKeTCehYbebVFMY2PFR97R<nLEb]J6WZaC=ki2b[2i`MllXT[52inoI5b]:"
A$ = A$ + "7Wjfi]LO6CoPQD8Wi#[Tc[V\_O[`hFU?W6CNEcnnWa]2Y#9N>Ei6O]moG>F]"
A$ = A$ + "]o^EbEMOGHX]>eaIQFR\?`bm9hfofF^eI^O`K^jncYA<gBKnZjNkPWE8L38O"
A$ = A$ + "^<FoMRaZ:SA=[SYIfE=?[6IKAfk3;UmTE[_F3c3JcWdQWGa2iZZi9C`=mjdT"
A$ = A$ + "_5^0^aQAgKm;Z[j[m:emRMdJS0^;88DNRD[;=[R[VjnE=TgVMM51gMj9ii3>"
A$ = A$ + "ch9_a#_67_4^JRSe\h]g9Fc3JML7DVHR[F[Ylfg_gZC4C_[nhUTMeT_NUCOH"
A$ = A$ + "BLnZ`Sk#O<Sa7MF7E^fOmNLmfon:iZ1_VUH=\cgea;=obW`UKMlm8bIbAV[c"
A$ = A$ + "UZ;kN]=hal2jZU>6o\m;:WHScT;NUMjBUSl\>J>gc=icU9gEgGcBEdE;am]C"
A$ = A$ + "mnhU>_lXjj9MLGPLT9gnGafAGGMFGWQ]`E;I\eIMeRf?l6h`Ga5;QSVKKa]4"
A$ = A$ + "k\P^J[c9TE\i9m[RWG^2iZ;Y7FdkOeQm_H5Lemj[DWkZIk`96CGEG]RL;7gM"
A$ = A$ + "V?VS[>SSIMdMe;iaE:odMjXWfE[dH7aE_9GM0_6M;nL7ilUL^LJMKO=^>>[^"
A$ = A$ + "jFOjefS=]^MOdXY>lRhRYN=HkgKFC`cdHF?DSAG`[agAlC=YeWSm2^^j\=oB"
A$ = A$ + "hZ`\`\kZVaZR[2S>J^j<=VENOH0c4ka`Chk=3LEHVHfMEjo;<;X=G`]fa`EQ"
A$ = A$ + "NTF7o<k^jNoOW\e\4\NH57?Ie72LEHVHjMe7_H]6HJMk=0W5ij4Kk?S[2#Ob"
A$ = A$ + "<kZbggZhZ`XSaE=ej`]hkFkHhZ0L4LE063`E1H<HFMEcN\1G5V5dLeIH_fP["
A$ = A$ + "2c6hZ0<6<[^ZI?fHEWA`EQ16gHiIH_fHZcBF^:[MOH`aZ6G9LeA>g:^:<S\B"
A$ = A$ + "^J[K[1hZ<[^jfNl3G5V9Tacc#]7EFo2aEQI2GGMdW;HLEHFIfLEI]6Uj2=<C"
A$ = A$ + "8SWWQJ?:^:<[<[^Z\FSR[2c0FacC#]7M_n5R[2C6^^jXG?3eZeXhZ`<PKll<"
A$ = A$ + "jZ]^=6PBa\iZKm?`ml2PI0[Hj1_fSJEGPaEQ93ga\>l^ZkiD7d63#9`=^6G5"
A$ = A$ + "PnTIbEOn\EOl2k5>H:A^ghfncSL=BSm]:<cX]?FK]cE:G]e]]0DJ`E1H<H6L"
A$ = A$ + "EIm;Tn03c8Jm1N4gGLF^:N:<Y8S_aE1XOI6LE[JR6n:<Qh6K?Zk;>[JR6^:<"
A$ = A$ + "Qh6K?R[Oo3e_#lDHBAcE7Yn1C]K1F56mJiRV[fjfD0Z5hZ0<6<3^ZL_[fjfC"
A$ = A$ + "0Z5SL=B3G5F96MGe]n5fjfC0Z5SLm<dZVXajf7VLTkQeAcE=momii1^:<i8M"
A$ = A$ + "ECoPK]3VU[n`No2ejfC0Z5^aihZ0dW<j^jna?^:<ih6[S[2#Ob`kZ_NLoago"
A$ = A$ + ">LEHjahZVhmAcEg>^aEQE0Y[^1^:0m9SZ[JZM;hZ`ZPV[>2kQELEHeHDMEcj"
A$ = A$ + "f7G5F5dLeAHM6JF;`k^:N:\0\5WKRi7Qe4\EMFb<7fhZ`2PaEgRk7Qj^T[[B"
A$ = A$ + "oOQE1ijQ0G5Pn5LE0636=GMkh3G5FAdLeNNnU\ZOQhZ`2Q[[fk?g6LEHE1G5"
A$ = A$ + "PaPAeEUe_#LEH5`:NO0ZmXJeJDLEH5`eEkme^4^:\Z<\^ZkaN7dF2#=a=N_g"
A$ = A$ + "ME[j2<^:\#L8N_c[C`Jc[4^:\2L8VO4LE]Sk>X]4PJRF<oXiZ]^=4Pk2LE06"
A$ = A$ + "36=GUno2[:^anhZ0dW<:^ZYn5R[2[:J^J?^7FaEQEWAbEO^oJ`EQ55gHo=OX"
A$ = A$ + "7Memj11^:\XXiZmhj<DcEKMK70g=m^[JECd`EQ56=G]Wj7\?G5O5F9le7hNc"
A$ = A$ + "Eg[M;hY`2S[[fKc5\EMF2G5FHdLeNJ<[DWU0hcX]_hjFGm]JG8^:\R\kZ_j1"
A$ = A$ + "hZ0d_<2^jNMFRJ2<\h\kZ?j_j^TINUNNLR[2;>^^J?]OK`E1h;dk^jNm;4G5"
A$ = A$ + "FLT^J_ESd\NN=hZ`RSU7dA^ZI=;9?6KMK50]6I>[NI];I]7cOkmTE[KW0Xe8"
A$ = A$ + "O?9R[2#oB_jZF__EaE1`b7jUj3QdEohkO7^:0?Nab7jFGUi06PWN#_iZVeGh"
A$ = A$ + "fa5^:0O6S[^A_\>3aE1h8hZ0<6P[2`H#_iZFe4=acCZe]C0dJT[gPNX6YQ[2"
A$ = A$ + "P>hZ0<6dK^ZEm;4G5PMLMeFG;G>DWU`E1h9F[?n>X^;Q[2P>hZ0<6de^:e`K"
A$ = A$ + "0fYgZYghZ0XC?jZke_#LE0fae7JmJGbZFSR[2`>J^J[ZAJbgSSJ7K0\bhcEK"
A$ = A$ + "ajQH_n5JZ;`hZ0\c1Oh]a\fJGUgUi0Hc1WX7LE]S[>X]2PFRVCdK^J[KS0XG"
A$ = A$ + "XWLEVG90lSfl;eBGUno2P>^^1^:0m9mR[^_7caE1#5=G]5[M9=G]e]=0dKdE"
A$ = A$ + "^jKk3>LE0>b^[:ZU;]`EgggZhZ0XRdEgl5LE0jCJ][JZOQhZ046=Gm>W;H[e"
A$ = A$ + "2<^:0NaeE_ke^dQj\4^:0ZXiZgIoPgMe7_P[2#0\Le7_P[2#WB?jZ]^=1PNU"
A$ = A$ + "FjZFe^5LE02RdE_kj^4^:0YC[Le3e4=LE02RV[N7?g6LE0bSFkZke4=LE02R"
A$ = A$ + "UWLS[72LE0bSFiZ7N_HlF^M00o8cYMGk=>[mH^iMFG7dF0#?SlMN:^:0m;MQ"
A$ = A$ + "[bHE18:BOi>MEN?V3#NHe?dKJ?WS[2#nd<GmaWkom7Ook`E181flTWnbKc_c"
A$ = A$ + "MjZKO_hZ0T66GMS]olMkZd7H0B3COP_;GejM37SG5PTamILFke^4^:0W3LE0"
A$ = A$ + "63^KGm#]K1G5PT#cE[iHFaE1hLP[2`H`MjZVg;6hZ0T?nLeJ<VEEGUj2<09Q"
A$ = A$ + "_j4l]hZl>B6PTaeGZ][JECd`E18ILmUJFSdT^Zlk5G5Phhj<hZ0dWLW^ZI\Z"
A$ = A$ + "hZ0T?nLeJlLK\NW[R[2#FL`IZhkRe3eJDLE0B6=WYFeM9O^J[K30HD0G5PaP"
A$ = A$ + "kdEI\Z0LNd6cJEMEaJ;4G5PdabE[Hm<DFo2aE18O>hZ?ZCMGbZVXQ[2#f8mV"
A$ = A$ + "JFSd`E1hJLG^ZIoe8MeFO^3`XQ[[^iEebEIO[2`iAKO\FB?m#m;4G5PCQV[F"
A$ = A$ + "be_?^:0UQJkZDkF0X<h[F^DJGM_n>Q[2`Y#jZKoJ9MEIMF2G5P[Q?G]4m3fh"
A$ = A$ + "ZkkaLLE0>=^^ZImkG2Gm#mP0G5PCSV[FZn1S[2#i0G5PaPk`EggkZhZ0LJLM"
A$ = A$ + "eBFgU`E1XLDKGeZf]`kK:0^4^NDYZU;F^:_Kh0hb\kZ_]fU:][BoO1X<hkI\"
A$ = A$ + "F2GUaZ2#i#K<[U`E]N7>R[2`UiP[nX<kSE]gSihZ0LN\Le2^Wc=[IoWe^5LE"
A$ = A$ + "0^<BGeDCT:V[Jn<aE1hbL`EOmGaE1XoX6^ZYf]\miI0G5P[Q\F6JhZeb5LE0"
A$ = A$ + ":?hZ0<6DJGMkWceEIlZ0LML7_ZdE?S_:[cBhZ0D>liZW]F^HECdHNP1XHhKN"
A$ = A$ + "PaE1X_XF^jcmH3^:053=Gm:ec`]O>LE0:?QLec\OK\Z9JhZ0D<liZW]F^hjZ"
A$ = A$ + "\?K0X<h^?K`E1X?YF^jcJ21^:053=Gm:ec#LE0Z3e`EOFo2U^Zik0G5PCSdS"
A$ = A$ + "T^jI[AJnZeXhY0LMdZS;WaE=[Iom?CbY2#Ai#^EA=B;ee3QjkKEbY2#ai`hF"
A$ = A$ + "o#N_?FgWCY77kk;^:0U3ea]nhUTVS9IOOef7LhZ0D>LMESc]m_5Z_`J[EOgJ"
A$ = A$ + "1Q;]nL5PA3O^TU_5I]l;ONZbO>LE0:7YhZ?c]6hi]j^>maE1XlTZ[JVW9gJA"
A$ = A$ + "ZILZbOVOoWn6LE0:<YjZn6gjf_OcQUNZQ#^:n:0YC8?BcE=SKEjZViD:V[Zm"
A$ = A$ + "mejcO065dLW#^j6bebTLnO?S[R_2#Lli=YTGe<O`J^ZdGaE1hjTS[jKM<9gC"
A$ = A$ + "iJ^j6QjW=^:0a9V3M`EOk_G^7dmmLEoeOl[ObCGeI];Q[2#N4dEMGkAbeO_h"
A$ = A$ + "i\6cEg#K]6R[2#jTZWJe7HWmP^?GM;OZdE3i[]^M0PNWchY^^jnjeGI]5^i["
A$ = A$ + "ob?l7SVK]e]30dk4J<ZbeMT_lZVWaZ_e\_9gjV_^?W`h[0T5abY6bEM[E4BG"
A$ = A$ + "ePlciWon_JgGINV08=bI<ZYjZbe3\V_Jb]^A\iI2W5FMbI>O3>NeGoo[]?Fg"
A$ = A$ + "[_X2OeML[YdGHlEHU9TSV[WJ6[JXJgRfWSGO=an4So2c6nRa?USjTcMkccgn"
A$ = A$ + "Ge]VXiji^c;\eNV;QWmZV[Rk2S4Ja_NMeLLDWn7_mkSESddZgBk[7HQ_:GCC"
A$ = A$ + "Yj[idoHb13]RLR??KNd#NZ<WJ\JIXEM<<#nE=OEkHh\]EhZ#;8Wh_LWgXDbW"
A$ = A$ + "^miVck:3gj>ZkgQkcNEeI_P_AOUQkTLRg:J^d?lMFoKKOnin>]A^oKf?nn]_"
A$ = A$ + "=Z_j[Oaid>4[]YeGGQiQHaFAS7MF?PihXFmIe9OJZeMOOef#gk18ocBW=VgN"
A$ = A$ + "Un6OU[7Gic0j;l=G8WmcjDOgW]o^>o\?on_`k8>Oc?lcSEWkUX=6FScVbL6G"
A$ = A$ + "j[MnV;;b;?n4L>M^`LINZ_OWeOP\f<h>>#OiRgn<ciMRAfm9fImBhn\Qdba:"
A$ = A$ + "?Gl^f7c\=Eno=e[QhZS=iLMfgemLSaliWJNJ`e9TWei#9mD]n47:7[_kg8ck"
A$ = A$ + "jj_WaK3Uo<deeF7_1egES5GTegCRnI\nljV;]4mi=UL\knZ97[km=lh[^^Jb"
A$ = A$ + "iLCHm<R[>oDR[oA9`l45:FegcRa:gcK_?TcimfHYba:ccjNN6;7[[kj;WKXl"
A$ = A$ + "^aLALeiRLj[KbnJ2i=SiX7b[hTSa]V9MG>Z_aa^g_h0]1Ydgh#NKXkSMf[_]"
A$ = A$ + ">nKeidiobhJIXlValbH>J\iNAjYgI^dH>[Vg6kl;FOT3i_U`IKM\jZC=MD[?"
A$ = A$ + "O5o<DOibaA]Nn;>nI_hXI=NfCT_eGNgHS[G;6#N][eaW#HG=eO^HGCeRgBI^"
A$ = A$ + ">C>7ZkaMS6?jEAVWmPkVhcA>dmibY?;7bknjaQYMERi_o996GEkn_e;nc]NN"
A$ = A$ + ";^>hmJTcaZKLS_WKH:aFYjYBg\eS7]TN[ilAmic6hinLEWFK\4^a4YjZ]8F^"
A$ = A$ + "dnM[?VCjHGaEEMd4F;>nF_j9?fC?cGTiiSN7?kUk6gadjV_ednWBkF>]iiBb"
A$ = A$ + "?SX;NlLfkAYMlM9O=bm<_jmAE?OSdV6jNbYL?j[>^cmSi?lUnQ9cO>2S5]6i"
A$ = A$ + "KeFO5Q^>7jJOXl7Qb5WT;UHldMAZ[KT#NIY>FZQWh>VBgLU^[kLOcMQil>Fk"
A$ = A$ + "XfOoFkG?llFj52U_eZo?:cEPJoJC8F]dNC^gO?7R=7UYj1elHl\WGQVSOge;"
A$ = A$ + "CB?oMUhP#^ZKNC3[Lnc[h`FmE>R_Jm[1j_EBmA<QnS5;><ghD=dbW4:7C^ol"
A$ = A$ + "iL\TjcD;Wc[DOFj1c;ZLm:DOgUgOgM^Q`9_V_VENg#g7=B>Hg?3OmG<eL6Ge"
A$ = A$ + "C;Q_F;G]4NZFoHU^ZI>L>#\lU:ckO\lVhYeeSEcmJ^FjLMdmjGBNMTafEbnn"
A$ = A$ + "MeHMghmDLfkfASegmHcmZln\n^nI6WYfcCa4cdjHgEVHiNCjIVNaWED[6GH?"
A$ = A$ + "<VjBN<kKl;aNn>abIfjHD8<VkSjKn[>hcAjKE?BdW5b=m\^:jiSWn_jN]Cfg"
A$ = A$ + "EbI>O4J<`n67\aQ?eJ=X#?ObTleCl<;;bm8llmWJkU<7Y_aEbH;1Y3k3I<R?"
A$ = A$ + "7?enM?BinbNnd3dODO>WF^AGJM\1<fTS3k^VFeh\^]jLX5ImTLFg;4ihT]nJ"
A$ = A$ + "70BB9o\?O_Gagi0i110P_`o7c`W^%%%0"
btemp$ = ""
FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
IF INSTR(1, B$, "%") THEN
FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
IF F$ <> "%" THEN C$ = C$ + F$
NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
IF MID$(B$, j, 1) = "#" THEN
MID$(B$, j) = "@": END IF: NEXT
FOR t% = LEN(B$) TO 1 STEP -1
B& = B& * 64 + ASC(MID$(B$, t%)) - 48
NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
NEXT: btemp$ = btemp$ + X$: NEXT
btemp$ = _INFLATE$(btemp$,m.SIZE)
_MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
BASIMAGE1& = _COPYIMAGE(v&): _FREEIMAGE v&
END FUNCTION
FUNCTION BASIMAGE2& 'ball.png
v& = _NEWIMAGE(100, 99, 32)
DIM m AS _MEM: m = _MEMIMAGE(v&)
A$ = ""
A$ = A$ + "haIkM^SSULL45EK5jB#j#j#K^1X?g3L=X=S\4Xf3bAN22#0bAK1jC718d2i8"
A$ = A$ + "L8>jP8cZNmlYkIdHTXNeWg_hVghNS8[ne?mdCo^Wn8Jl[ojonY7mj^kcicS7"
A$ = A$ + "37niOnGNjWnYoiCOkgnGNjkn^ojCOogogNj7oaoaK6[Sch7nQonK6L>6[Woj"
A$ = A$ + "eiGnUoeKfnILjnanePhmJ;ajenP7L\eiiJhjIo5^hWkjh[S]N=Fk3flBoMne"
A$ = A$ + "fPHBSIlHfB\MM^_iKncoF\gL2oLlSGl3S]`ghinILioR34?Fah6G1CFaNNlj"
A$ = A$ + "LLm[S_h:6o<Wal4b[ak1SbSFSoO0Khk8iS#3PHZWccSGKoj_n?mK7O]e77L0"
A$ = A$ + "\TLIFSYhDaTV?cL8`V?Ua77g0;J>V_j[nS_I0^\Rm>?5KiiKL4L[ijHdg;[3"
A$ = A$ + "EO0\oWJhajk3cWGOoH>oJ[c]\fWcicclOOLh5`7<N`ila<6DMWV_bL6kQkC1"
A$ = A$ + "LQio<?VHIe\]NPSUFOQ[5>bjJIh[Qg_6kW`2^^VcZibFjo<nH5GPC`lJ`Sef"
A$ = A$ + "_l;o3o?j1Mn]SINn^7P9h3^NcjnljHLfh>hajc4HE[YiS9=O[IcgEVo1>HMF"
A$ = A$ + "66Chk^a:N<n[hh53Lle_g4OMLfl8S?L=>nk]`AFWOEob;M<o:lXnR<W`NT#["
A$ = A$ + "`i_LlKYWcccaGWCSg7k9XNPkFc]Vh7UghSaaMN\efGjhn^QW;_RWV?\3?jS;"
A$ = A$ + "6Jl`ajeS9FiJ8Jm:E?gL1beE<QGGV3<EkB[KiU>fGN1cG17:oPib;M3Vkcn["
A$ = A$ + "]niQ^`jHe?\WWRnTc_\N^[hSeE\6d47Qc3NJl`nPkk??VJmO=XYPGFW_`iR\"
A$ = A$ + "gDcAje0NDM2b7I^1WOM>fjjnJn?S9^F3cOZ?\ZW=i?cjkXYlBS9N^b:V^V_c"
A$ = A$ + "LNc1ji:7aOGao5N`\7Gh46;L]KT7cNQiHegKk;cTWRbGVZ]deX\`UG:NQ[;f"
A$ = A$ + "iK86kloCnEij<naSA3bJ?>>^>VcQKM5S[CnMM]ifCUmT]c;\emme1N\^n?de"
A$ = A$ + "X#o`]_DV_kh[i5P;LN?0;9>ae3G`ccWVW2FD_34OmjVh1H2_^Xghn]H?FmmU"
A$ = A$ + "i2UO`[k72L0]k>oN:7ediikD?GcAINW[Qca:[oC>:RYXEhHF[C1<\LGN^]Nm"
A$ = A$ + "jMXc9<?1\im9?1]Kc5\F\e8^3nhLCLMPcNOdGLLScI\ShWkkEm2kLB`KlaL^"
A$ = A$ + ">[a<M=Ci]\NRGGbg7h1a]El1N]cg<EC1h5HXW[GM3O=P1]F2l137S_oT?[nJ"
A$ = A$ + "MmfnJ\nSk=Yi3Pa6;]oH[1IlP_OPg_?jIo2WGOf8>eikkh7nlClSRa^>Ub3J"
A$ = A$ + "ODLmUPG]WTMnKi34[K_RWZmXi]LLg7W??_?l1K=3g3SV7JbK[c[17bJ?niHn"
A$ = A$ + "6aIZ7T_O^ol`SJOiiL=7Ue6\VMmmB>8g3IS5>?f4oYH6Hek:O`P5NN\kAKi1"
A$ = A$ + "TOZJ3NOO<SaCh2ji6?LmO4C\gFc=L=l>GFkSYS]6?VZiPSgJJ#cXjj_;efa?"
A$ = A$ + "X[YXLRF_AgWL863m[UgjN]hGofWBfB\cm6YJbV;dLknh>>jNhkJB0G;_Y[[8"
A$ = A$ + "_7P_LM_]LS9O#]7DCa`6gGO7nR_hg?VcRSGOIF[`NKkajlI^^FOX_?Q0K[n="
A$ = A$ + "eb<M?MiNTdj5mLQbChinf`AH=<H>Xk_Ti8lmRhjTVM7[[cl2Z3O5;\O1oJCL"
A$ = A$ + "_lYV;bHVi7fSUaTCjd=fglFFKcNOkmdRgOMm?7oFN]<#K]iS:_ahAmJI^ROM"
A$ = A$ + "<WYL3cA\nQeI\7;?GaJg>7_WokJk9Nfm;_`7OjNO`jk5C`[ecAKO]fGFgce1"
A$ = A$ + "F=4??gjkFKOGmP>6Jn`dLL`4?_dcEF7gehhJ48nHN1JSlhNO<<iEfnfZGHSm"
A$ = A$ + "mn8RmG_O?7lXaT9OCEcM:WD[=_ihhj]_:Z3H:gUO\i0lIbHg^J4LOZJMe>ob"
A$ = A$ + "^Jm:gYNb<G\m\Q]?bm6^[]bi=8>K_>CiVFG3i^J^]jCKb_\a57WI>Q_oi`C;"
A$ = A$ + "iI\6m^jUGGSi0f[TciH_JWdBlj<feVWgCS7`G^;g0Mcj_MZWjWh6\MB7W7kn"
A$ = A$ + "oB]6`1H[mRaaMnYFWNS;fkZa1N>63J>^^FiMM2]6R[i_HYeUNTeh5Ml67WlK"
A$ = A$ + "JmK7k=NhAe>\7PbA8V?E3Ze<J=RnnmRH#7XohLCP;PAfCTSQMoNOcIO^VSJ<"
A$ = A$ + "5]mkLoY#<Qi]4;[o5VSklH>?e4F`cah8io[?FkOXn]#GQlZlLZfQmCanPONm"
A$ = A$ + ":ZoDjE7iijlJkcZiiVlkJN67WgS[dAXWQ5CfYKK?[>7d>^1c]]>Ni2nhTCZn"
A$ = A$ + "j#W_N;Z?Wfk9RAT_kT6Na:[QDoC>VkgO`=SU<FGcMbEe_S^nPFgPa6S3E3_i"
A$ = A$ + "NVRm]>4k3NZ70f?3jl]7F6;JM7=fajnfn4bfYJgM]7]o8<gHB3RS][f`ngRA"
A$ = A$ + "[=PhBcgH=3`Sj_]i\VdULlgLYRW^n2S9]OiN[cOG]SF;Q_?M9W5m6Xi\:7ae"
A$ = A$ + "WG=WjgV?CWZ5aeefJ;LLNZ^^CNZZ^OaVR3<O`H2iiVZGTL?NhN\he`]aD?_W"
A$ = A$ + "jWK?1I=aWdfieXN\=6<i9cO6fU[Zc3kjMdHoT>Bef[>dT_=O==7W?>n`;VdN"
A$ = A$ + "WS^=l0FCaYNP`lId:\647SccXiTLN#_F:EGYikhLCi[lkAScCNHW`Vb30?kc"
A$ = A$ + "amj]l3jYH7CmX1_7CHR[W0]UYid6;lJNgijklSI<^i7giAfhgJkT_GdkVR1C"
A$ = A$ + "ik;fd7?QUV3ihkjHF?X_gX7cSYnJ[kKn\WoiLF4cZ_FR=`9hhCmC\nFKO6M="
A$ = A$ + "oXUK\OjeI:WEe^mlmYhnD<_hada>U_ceH2?Uh??Vjm<F\nnhG3lcjih4[0O\"
A$ = A$ + "WFhF`=VbAI]4WgJWOFS7W`eMJ85;HnfD\KBo^HDm2<EoMeThjJOR[>6a?R7\"
A$ = A$ + "n9N=XjmHGkiT[ScaG7o[f#aRYHMa7kg]mGaioZ6bT?c9L`aZCeSGn#iCCJD^"
A$ = A$ + "nS^N8lHjY1KiiiiJPM^GF^>mMnT<NhJcMl]L3[7ILZeWLE=;UOdoNFMlgcCg"
A$ = A$ + "YY_;WfEiYVl=dN;F_g>g:GgTVZeh[gO[KPfIeVMl_lXZEG=jZ]DNAW3dOcEl"
A$ = A$ + "mHVSYf_IcYM:f_;of4^HMn9<Rgkf3;^6h4MMX<7QScl[YN;eloCcgW6f[PGO"
A$ = A$ + "4ZAehe4NDnab_5i8LOXJ^nMnYVdD^3_HGo`f]F_X5cn>7T[K`miemNWJc]fC"
A$ = A$ + "a3h0=7h9\`[cB[=deA^[g`^6Mn]cQGg9>`ELRChd^lJnjFOGVhR5GHNVcQiJ"
A$ = A$ + "dmn^_DN0NI?^FGfmKdj4f3l^NkF?0=Wf4V`SK]P`g[VaEH`^LEChDaEl]Bm7"
A$ = A$ + "CNl\f5O>]N_mNI\HZWRM=YVjUUkGKaP9]W9lYHbM`3[OPomYk7QMnJ?YQgmi"
A$ = A$ + "eag7Y6gJMSN=A0gJ^:gW=OOGH\`[52eNH>C[93mTfCFGkA[UKROdjj_:OeJD"
A$ = A$ + "lPiX>G`DLNW6nMh>ne`g;kU;jkW1`WN<c7LoBXgRnNN`J<CmZ]e8<]n9=6Fn"
A$ = A$ + "a^QcQ]cSejL>O5n][?ZMj0Mnm9OEk`Dc=\>2_oCanZognNRn7?o^N]L=FKWW"
A$ = A$ + "CWcGNcDl_i[V`7SmklF=Q7^?RCha>_BCLQMJ?^Fm9mofC`nnEo_nm0ojd;G`"
A$ = A$ + "5G?a>mNO]Fk`e\?5cgQ7Ga5JmU5?FSeW1jk`^ii=?oSZc_S;IlJmnG_FM\[g"
A$ = A$ + "l<_Wmm_S34Wih>?V[Aam4_m:L:VOWLFneZ[?b^nUh_GWl4M7oCGQ3khHMn#k"
A$ = A$ + "EBmeJo1>Vje]ZeT<U_ae`ihV_?_#gN2G>UCbeW<igjDoBVFkY9>a9Na9?0dO"
A$ = A$ + "BkgZigLlOGmifOUel]_:[=P_17o\FcTW7RaLM^O8]^V[l?=QIEKZ[=hdgARI"
A$ = A$ + "kd3jlmkTkj4?aiS:FP^=L2VojW7OnWhB>NRf^[=dSf?hYj:?YG\cWeT7]Yj1"
A$ = A$ + "MoMM>[YNafN:NEM9nLljjlCClRZIEoFnNJLJm[LmOU;`iLn0l1H]V9nd9=4c"
A$ = A$ + "=Z7gN]5oW^W6FO?X^#VGMU^jEiX>]n9CHLaTR=]O:^?m`MljWkLGV?hn2ihN"
A$ = A$ + "koD[5gcYkLoYadjmfJcYF`ZW_>Oio4;gMoB_C;ac]?Yi?eGGkWXNJgMOJQ70"
A$ = A$ + "VoklE<ggHBgWhWo]C[j0Ge?ZCiY>mJ]>o^koZ^NMG=_NG>[9<M]UeSMgLn[N"
A$ = A$ + "?mJP`nhWbJ7nJL]<^>NkkbeRSnn^eEdahCe6^kjVdkgMon<ekRYNR_SG\3;Z"
A$ = A$ + "7]9lSLj`KfmgaC_?7lehLAnnU`eNHM4h2>_2LZYNW_[FlMhb>OGNoCgCengS"
A$ = A$ + "5RGkF3ZYl?Wd#Vb?aa?E3:i_jW3goTnlMmQ\_[U`mC1>2j\DWQaQnk;`9oEC"
A$ = A$ + "[ga4NLRKDO_liMBGm4OH7WaL\nl\_YeW_MiYhcE[?RmKoNjejeRfmAdeoeN8"
A$ = A$ + "FOEWFSYR7WbAI_gW`SePL0ecc^hn4?IjlWZoHW^nJ;N<jJd>E3YcA]R1]OE`"
A$ = A$ + "CFa2>6cCkmjhD]l6;fUGJG=9Cn1X^SCo=7PgAgkd9]f[h9mJfYI?QgP1ncAi"
A$ = A$ + "I4KK=k>V^>6aNbOimmm7TeDjnUgdjgiLklF1nD<i>o=4b_emkddWl3]S[L2C"
A$ = A$ + "L_WVjKBe4:oXO^Xf9nnKMJd88ninIe[gecio^0[G;>NoMJhD=R]nS[`2cAfU"
A$ = A$ + "3OBGO27:>E?CgQWHmh9mJ[=`ekJ^K=SP5eg[a3d^]n^i4lJhJh;FDmTF32_f"
A$ = A$ + "g5?H^VeJWbK_37:FLjJ?i]ZL3dfL_XaW<WWcQnAm0gn>Jo`Nn^kaKc=A]SU?"
A$ = A$ + "hlBCJ<>OeSlkc0go?Cl46m_9]MNIgUoJJ>o9>9HQe\I;aLN<HR[WgeThk78S"
A$ = A$ + "?mN?iD?5_ZG96K:oHmJMG\PaZ7GCOo?UcJga>Ec^SKnlnmU7glGLL_^96Clm"
A$ = A$ + "5Q_ON1oLmFL<RO>GVebkJI=QGClQW;g`3gOK[WOE?>fi9k46iib=6?U_dKml"
A$ = A$ + "OgG:N<eMklE]fkMeNH_0Wh1WZo[jh?GlPkC_VoHZ__]?RGY_L:?5[ij4W`J_"
A$ = A$ + "]O]L>_68DgW_o]\f=HU[Ygj6kZ=\SYjEVFCZgVOCbhnjm^i\JoZNTad_mR4G"
A$ = A$ + "m[;mkc[OQiB^f?bk0FhNQhNX#\bhl4VLEoBVjWnSF?nMeAlJfEOFG]>7EgOJ"
A$ = A$ + "=7_Rc0g0^YkOUmo26dkEGgk:kgU[Uh=iVV`RMieVjQeD_ZNGmKJ9cMJ>[CLT"
A$ = A$ + "N\MheSR;=o5mS2^1l1[U0ND__eOeTnb9naDOfGSYkcdgUoNF^f>e_X7M<ekg"
A$ = A$ + "VcZgCYkd_M>=WoghBe5PkhNTHoA^W_CNMWh9]NLkAci[NGP55GJ=fWF;g7E_"
A$ = A$ + "h>LVMn[ZWFSKeSUe80?PchLFfck>LXm>am:fJj__nmY6o9kRICnP_;VE=YF;"
A$ = A$ + "Ji>E;caNfgL7gO4g;AWcbl8S=eOl^OKA=VlXm4ii<Fe]OEOh;NLG>a9nQa:l"
A$ = A$ + "6i1jKESWSeOW\ZFQSo5[fE3Xa2G;^kWnkSlDCSk\fjk`TCHDm\i[clUE\XeT"
A$ = A$ + "KlXl4cGL_D:g`iWfYG0nP_k9?_L]O8`26>VMelnCmRgHaTfT?6aoNoGiof7Q"
A$ = A$ + "7dj2WZS\[32aiMm\jT7;GCnjeh3mogRH]MW`RWSo[YJJ>MM=GUa<Zecjgf?E"
A$ = A$ + "eBLN9?__gOLk`3[K\^^Gbo7B=e[fkP;CmhjAmEQ6?i^lJKB\dh1LPZOKlZ[]"
A$ = A$ + "adm8Wi:eSk;mo?_N4mTkb=fQY^WVClUjUbkG]4ogSSoo2BSc5;Ln\ZOlJ0;H"
A$ = A$ + "<M_^m^HH_]^fRfgUZQkHOkCRmG1gXo__Ym:LGM7nnBhedH=g0lhdjH]S3<e?"
A$ = A$ + "aFSQeamlMOO?HmlbEjS]nQ[5Qh]m3_KlBmog^k>FOnfMOdMUf\i4ChSO=K_A"
A$ = A$ + "le<U_Zm#YeKHmMk[eeJknd^>n[moO2K^bEiN^SfOe>lPed`l3n]<YeKDNAm="
A$ = A$ + "a_g<U_d17o>ggD_67k^O3_S7<j5eD_AZnMa]YjnJ=PP=C[IKcGiJDnHQC<aA"
A$ = A$ + ">aEN>N`8oTi0ESOWg:hCCnJWjI5l4gG`?FaRMhcMmOeenKJ^_eb=6ioWC#<e"
A$ = A$ + "eUglBFGIJ]VN=jMjM5N`h^hBej]V^cI]fgiE<6eofKVZi^m]RJ?nHCOhiR;\"
A$ = A$ + "Uee[LSM[;UmmBlfJ==7Ui9FSgnJ13Ho?Ei3?:_I57Vh=E3_LUjSMbS[[kfL4"
A$ = A$ + "NmH=Sno1n`EHAOlJk:OadmgK__kWlIinG=]N8XWlJ[o6O<<\V3[=Ia9b]=eG"
A$ = A$ + "4^VeSGNSl[g;mg]?U7Cl\??nlh]MlOPD%%L2"
btemp$ = ""
FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
IF INSTR(1, B$, "%") THEN
FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
IF F$ <> "%" THEN C$ = C$ + F$
NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
IF MID$(B$, j, 1) = "#" THEN
MID$(B$, j) = "@": END IF: NEXT
FOR t% = LEN(B$) TO 1 STEP -1
B& = B& * 64 + ASC(MID$(B$, t%)) - 48
NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
NEXT: btemp$ = btemp$ + X$: NEXT
btemp$ = _INFLATE$(btemp$,m.SIZE)
_MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
BASIMAGE2& = _COPYIMAGE(v&): _FREEIMAGE v&
END FUNCTION
RE: Find the ball - classic shell game - bplus - 05-09-2022
Oh man are you going to make me ask this?!
There are 2 balls?
RE: Find the ball - classic shell game - Dav - 05-09-2022
There should be only 1 ball per turn, unless I screwed up the code somewhere (which I do VERY often) I have to leave for work now, will have to double check the code when I get back later.
-Dav
RE: Find the ball - classic shell game - Coolman - 05-09-2022
impressive. only the sound is missing.
RE: Find the ball - classic shell game - OldMoses - 05-09-2022
(05-09-2022, 01:38 PM)bplus Wrote: Oh man are you going to make me ask this?!
There are 2 balls?
I thought the same thing at first, but I think it was the prior turn reveal and then the next turn start that I was confused about. Pretty cool idea though.
RE: Find the ball - classic shell game - Dav - 05-09-2022
Yeah I think that’s it, Oldmoses. It is confusing. I will update this, make it less confusing, and maybe add sounds.
- Dav
RE: Find the ball - classic shell game - bplus - 05-09-2022
Ah, not 2 balls then, the end of one is too close to start of next. Makes sense now!
What helped me allot was a longer delay with the flash of red or green. I didn't even notice it until I read over the code and made it last 1 second.
RE: Find the ball - classic shell game - bplus - 05-10-2022
OK somebody's got to get the show on the road ;-))
A little b+ Mod and 5% please:
Code: (Select All) _Title "Shell Game $5" 'b+ mod 2022-05-09
'============
'FINDBALL.BAS
'============
'Classic Cups & Ball game (shell game)
'Coded by Dav, MAY/2022
'Cups will shuffle. Click the cup with the ball.
'If selected correctly, screen flashes green. If not,
'screen will flash red. This could be turned into a
'game easy, with score keeping and speed changes.
'For now it just loops over and over.
Randomize Timer
Screen _NewImage(1000, 600, 32)
_ScreenMove 200, 60
cup& = BASIMAGE1& 'decode cup image to use
ball& = BASIMAGE2& 'decode ball image to use
'=== draw background
Cls , _RGB(232, 232, 255)
Line (0, 350)-(_Width, _Height), _RGB(128, 255, 128), BF
'=== grab background image
back& = _CopyImage(_Display)
speed = 75 'speed for _LIMIT
moves = 15 'how many shuffle moves to do
Color &HFF000000
_PrintMode _KeepBackground
Dim winnings As Long
Do
_PutImage , back&, 0
Locate 2, 2: Print "Winnings: $"; winnings
Locate 10, 39: Input "Enter to Pay $5 to Play Shell Game, any other quits "; yes$
If Len(yes$) Then End
cupball = Int(Rnd * 3) + 1 'make random cupball number (1,2,or 3)
GoSub ShowBall 'show where ball is first
'shuffle the cups
For m = 1 To moves
Select Case Int(Rnd * 6) + 1 'random move
Case 1: GoSub move1to2
Case 2: GoSub move1to3
Case 3: GoSub move2to1
Case 4: GoSub move2to3
Case 5: GoSub move3to1
Case 6: GoSub move3to2
End Select
Next
GoSub PlaceCups 'make sure they are placed right
selected = 0 'not selected yet
Do
While _MouseInput: Wend
If _MouseButton(1) Then
mx = _MouseX: my = _MouseY
'clicked cup 1
If mx > 114 And mx < 316 And my > 146 And my < 439 Then
If cupball = 1 Then selected = 1
Exit Do
End If
'clicked cup 2
If mx > 378 And mx < 600 And my > 146 And my < 439 Then
If cupball = 2 Then selected = 1
Exit Do
End If
'clicked cup 3
If mx > 694 And mx < 911 And my > 146 And my < 439 Then
If cupball = 3 Then selected = 1
Exit Do
End If
End If
Loop
'make sure mouse button up to continue
Do Until _MouseButton(1) = 0: m = _MouseInput: Loop
'flash screen based on selection
If selected = 0 Then
'flash red - wrong one
Line (0, 0)-(_Width, _Height), _RGBA(255, 0, 0, 100), BF
winnings = winnings - 5
_Display
_Delay 1
Else
'flash green - selected right
Line (0, 0)-(_Width, _Height), _RGBA(0, 255, 0, 100), BF
winnings = winnings + 5
_Display
_Delay 1
End If
GoSub ShowBall 'show where ball is
If winnings > 50 Then speed = speed + 5
Loop
End
'===================================================================
PlaceCups: 'shows all cups in place
'=========
'Place all cups first
_PutImage (0, 0), back&
RotoZoom3 200, 300, cup&, 1, 1, 0
RotoZoom3 500, 300, cup&, 1, 1, 0
RotoZoom3 800, 300, cup&, 1, 1, 0
_Display
Return
'=====
'===================================================================
ShowBall: 'Raises cup to show ball
'=======
'make sure showing all cups first
GoSub PlaceCups
_Display: _Delay 1
'raise a cup based on cupball number
Select Case cupball
Case Is = 1 'raise cup 1
_PutImage (0, 0), back&
For y = 300 To 175 Step -7
_PutImage (0, 0), back&
RotoZoom3 500, 300, cup&, 1, 1, 0
RotoZoom3 800, 300, cup&, 1, 1, 0
RotoZoom3 210, 400, ball&, 1, 1, 0 'ball first
RotoZoom3 200, y, cup&, 1, 1, 0 'cup over
_Display
_Limit 50
Next
Case Is = 2 'raise cup 2
_PutImage (0, 0), back&
For y = 300 To 175 Step -7
_PutImage (0, 0), back&
RotoZoom3 200, 300, cup&, 1, 1, 0
RotoZoom3 800, 300, cup&, 1, 1, 0
RotoZoom3 510, 400, ball&, 1, 1, 0 'ball first
RotoZoom3 500, y, cup&, 1, 1, 0 'cup over
_Display
_Limit 50
Next
Case Is = 3 'raise cup 3
_PutImage (0, 0), back&
For y = 300 To 175 Step -7
_PutImage (0, 0), back&
RotoZoom3 200, 300, cup&, 1, 1, 0
RotoZoom3 500, 300, cup&, 1, 1, 0
RotoZoom3 810, 400, ball&, 1, 1, 0 'ball first
RotoZoom3 800, y, cup&, 1, 1, 0 'cup over
_Display
_Limit 50
Next
End Select
_Delay 1 'pause to see ball
'now lower the same a cup
Select Case cupball
Case Is = 1 'lower cup 1
_PutImage (0, 0), back&
For y = 175 To 300 Step 7
_PutImage (0, 0), back&
RotoZoom3 500, 300, cup&, 1, 1, 0
RotoZoom3 800, 300, cup&, 1, 1, 0
RotoZoom3 210, 400, ball&, 1, 1, 0 'ball first
RotoZoom3 200, y, cup&, 1, 1, 0 'cup over
_Display
_Limit 50
Next
Case Is = 2 'lower cup 2
_PutImage (0, 0), back&
For y = 175 To 300 Step 7
_PutImage (0, 0), back&
RotoZoom3 200, 300, cup&, 1, 1, 0
RotoZoom3 800, 300, cup&, 1, 1, 0
RotoZoom3 510, 400, ball&, 1, 1, 0 'ball first
RotoZoom3 500, y, cup&, 1, 1, 0 'cup over
_Display
_Limit 50
Next
Case Is = 3 'lower cup 3
_PutImage (0, 0), back&
For y = 175 To 300 Step 7
_PutImage (0, 0), back&
RotoZoom3 200, 300, cup&, 1, 1, 0
RotoZoom3 500, 300, cup&, 1, 1, 0
RotoZoom3 810, 400, ball&, 1, 1, 0 'ball first
RotoZoom3 800, y, cup&, 1, 1, 0 'cup over
_Display
_Limit 50
Next
End Select
Return
'=====
'===================================================================
move1to2: 'moves cup 1 over to cup 2
'=======
cup1z = 1: cup2z = 1: cup3z = 1
For move = 1 To 300 Step 15
_PutImage (0, 0), back& 'redraw background
'cup 3 stays in place
RotoZoom3 800, 300, cup&, cup3z, cup3z, 0
'cup 2 shrinks, going under cup 1, moving left
RotoZoom3 500 - move, 300 - cup2z, cup&, cup2z, cup2z, 0
If move > 150 Then cup2z = cup2z + .03 Else cup2z = cup2z - .03
'cup 1 enlarges, going over cup 2, moving right
RotoZoom3 200 + move, 300 * cup1z, cup&, cup1z, cup1z, 0
If move > 150 Then cup1z = cup1z - .03 Else cup1z = cup1z + .03
_Display
_Limit speed
Next
'swap ball placement
Select Case cupball
Case 1: cupball = 2
Case 2: cupball = 1
End Select
Return
'=====
'===================================================================
move1to3: 'move cup 1 over to cup 3
'=======
cup1z = 1: cup2z = 1: cup3z = 1
For move = 1 To 300 Step 8
_PutImage (0, 0), back&
'cup 3 shrinks, moves left two places
RotoZoom3 800 - (move * 2), 300 - cup3z, cup&, cup3z, cup3z, 0
If move > 150 Then cup3z = cup3z + .02 Else cup3z = cup3z - .02
'cup 2 stays in place
RotoZoom3 500, 300, cup&, cup2z, cup2z, 0
'cup 1 enlarges, moving right two places
RotoZoom3 200 + (move * 2), 300 * cup1z, cup&, cup1z, cup1z, 0
If move > 150 Then cup1z = cup1z - .02 Else cup1z = cup1z + .02
_Display
_Limit speed * 1.7
Next
Select Case cupball
Case 1: cupball = 3
Case 3: cupball = 1
End Select
Return
'=====
'===================================================================
move2to1: 'move cup 2 over to cup 1
'=======
cup1z = 1: cup2z = 1: cup3z = 1
For move = 1 To 300 Step 15
_PutImage (0, 0), back&
'3rd cup stays in place
RotoZoom3 800, 300, cup&, cup3z, cup3z, 0
'cup 1 shrinks, moving right
RotoZoom3 200 + move, 300 - cup1z, cup&, cup1z, cup1z, 0
If move > 150 Then cup1z = cup1z + .03 Else cup1z = cup1z - .03
'cup 2 enlarges, moving left
RotoZoom3 500 - move, 300 * cup2z, cup&, cup2z, cup2z, 0
If move > 150 Then cup2z = cup2z - .03 Else cup2z = cup2z + .03
_Display
_Limit speed
Next
Select Case cupball
Case 1: cupball = 2
Case 2: cupball = 1
End Select
Return
'=====
'===================================================================
move2to3: 'move cup 2 over to cup 3
'=======
cup1z = 1: cup2z = 1: cup3z = 1
For move = 1 To 300 Step 15
_PutImage (0, 0), back&
'cup 1 stays in place
RotoZoom3 200, 300, cup&, cup1z, cup1z, 0
'cup 3 shrinks under, moves left 1 cup,
RotoZoom3 800 - move, 300 - cup3z, cup&, cup3z, cup3z, 0
If move > 150 Then cup3z = cup3z + .03 Else cup3z = cup3z - .03
'cup 2 enlarges over, moves right 1 cup
RotoZoom3 500 + move, 300 * cup2z, cup&, cup2z, cup2z, 0
If move > 150 Then cup2z = cup2z - .03 Else cup2z = cup2z + .03
_Display
_Limit speed
Next
Select Case cupball
Case 2: cupball = 3
Case 3: cupball = 2
End Select
Return
'===================================================================
move3to1: 'move cup 3 over to cup 1
'=======
cup1z = 1: cup2z = 1: cup3z = 1
For move = 1 To 300 Step 8
_PutImage (0, 0), back&
'cup 1 shrinks under, moving right two cup places,
RotoZoom3 200 + (move * 2), 300 - cup1z, cup&, cup1z, cup1z, 0
If move > 150 Then cup1z = cup1z + .02 Else cup1z = cup1z - .02
'cup2 stays in place
RotoZoom3 500, 300, cup&, cup2z, cup2z, 0
'cup 3 enlarges over, moving left two cup places,
RotoZoom3 800 - (move * 2), 300 * cup3z, cup&, cup3z, cup3z, 0
If move > 150 Then cup3z = cup3z - .02 Else cup3z = cup3z + .02
_Display
_Limit speed * 1.7
Next
Select Case cupball
Case 3: cupball = 1
Case 1: cupball = 3
End Select
Return
'=====
'===================================================================
move3to2: 'move cup 3 over to cup2
'=======
cup1z = 1: cup2z = 1: cup3z = 1
For move = 1 To 300 Step 15
_PutImage (0, 0), back&
'cup1 stays in place
RotoZoom3 200, 300, cup&, cup1z, cup1z, 0
'cup 2 shrinks under, moves right 1 cup
RotoZoom3 500 + move, 300 - cup2z, cup&, cup2z, cup2z, 0
If move > 150 Then cup2z = cup2z + .03 Else cup2z = cup2z - .03
'cup 3 enlarges over, moves left 1 cup,
RotoZoom3 800 - move, 300 * cup3z, cup&, cup3z, cup3z, 0
If move > 150 Then cup3z = cup3z - .03 Else cup3z = cup3z + .03
_Display
_Limit speed
Next
Select Case cupball
Case 3: cupball = 2
Case 2: cupball = 3
End Select
Return
Sub RotoZoom3 (X As Long, Y As Long, Image As Long, xScale As Single, yScale As Single, radianRotation As Single)
' This assumes you have set your drawing location with _DEST or default to screen.
' X, Y - is where you want to put the middle of the image
' Image - is the handle assigned with _LOADIMAGE
' xScale, yScale - are shrinkage < 1 or magnification > 1 on the given axis, 1 just uses image size.
' These are multipliers so .5 will create image .5 size on given axis and 2 for twice image size.
' radianRotation is the Angle in Radian units to rotate the image
' note: Radian units for rotation because it matches angle units of other Basic Trig functions
' and saves a little time converting from degree.
' Use the _D2R() function if you prefer to work in degree units for angles.
Dim px(3) As Single: Dim py(3) As Single ' simple arrays for x, y to hold the 4 corners of image
Dim W&, H&, sinr!, cosr!, i&, x2&, y2& ' variables for image manipulation
W& = _Width(Image&): H& = _Height(Image&)
px(0) = -W& / 2: py(0) = -H& / 2 'left top corner
px(1) = -W& / 2: py(1) = H& / 2 ' left bottom corner
px(2) = W& / 2: py(2) = H& / 2 ' right bottom
px(3) = W& / 2: py(3) = -H& / 2 ' right top
sinr! = Sin(-radianRotation): cosr! = Cos(-radianRotation) ' rotation helpers
For i& = 0 To 3 ' calc new point locations with rotation and zoom
x2& = xScale * (px(i&) * cosr! + sinr! * py(i&)) + X: y2& = yScale * (py(i&) * cosr! - px(i&) * sinr!) + Y
px(i&) = x2&: py(i&) = y2&
Next
_MapTriangle _Seamless(0, 0)-(0, H& - 1)-(W& - 1, H& - 1), Image To(px(0), py(0))-(px(1), py(1))-(px(2), py(2))
_MapTriangle _Seamless(0, 0)-(W& - 1, 0)-(W& - 1, H& - 1), Image To(px(0), py(0))-(px(3), py(3))-(px(2), py(2))
End Sub
Function BASIMAGE1& 'cup.png
v& = _NewImage(235, 336, 32)
Dim m As _MEM: m = _MemImage(v&)
A$ = ""
A$ = A$ + "haIkM^Z\ULK50=O66UZ<`h1KZ=gP;dLGYlg`DVIP13l0SQikHh14H0Q5BZ:h"
A$ = A$ + "4JZ9gn<GecFZgjEgB]N]0[JNN?W^E_GmFB]d^odWndOhC000L9nOoWomW<lO"
A$ = A$ + "oWoeRbojS?^d?_lH[e]C0DKTaknla=Wj<l?n;o9_lgocoX:nno7jk1G661RU"
A$ = A$ + "c;G?JgKNlR5o]?lMQignf3lago^RSegQhkOoHeagce_acQBRVOjjQ6OK;>f4"
A$ = A$ + "WokodgHa_nSOmdQllCee=N]`YCaUaI1G2iPblQblObLKbhBO^i_l3oaZA[Me"
A$ = A$ + "#^[?7f=?M>iXaUG;TnYd9=i4U^fV?lcOoGU5ed=kI?EbI>?dlLY[od[OeWaK"
A$ = A$ + "W7BY?[?cEZdWEILF^>:^jiLE]c9ON\9_\<?\_l^h`m;^i;gmagj[J\nUfcNi"
A$ = A$ + "8iYUfOmM>kVkeTgeh_Tg]?`=gYjllhhXYjU]boVE7]Fn^Vk:ck:ciRgf67Ej"
A$ = A$ + "VKNY_aI:mbFkHhVg;76W[`MaI[WKjjWVnfjVcLDcER[FFLKkTmCfeIaK;SSJ"
A$ = A$ + "=^CWlWb[;mlh:aIKW[jfnY=fFcmoaG_VSn\?^:i?G5o4W]\>[i_?DNfF7o?2"
A$ = A$ + "4J<XVfmEa7?S_R7W?BOe<oah[nAV7mYSnKOkd?6dBk\alHh8Vf:[i>6O=ZSj"
A$ = A$ + ">GAaLDLedLH8^[Zi[dOHM?eMlXmnJ#HdXe>aXPKoQgR=K]WdJliYKaES`j5J"
A$ = A$ + "DYe^#_Sel3oJL9c=lGV3Y[hYhZh[e`EUkoW]aU]b^jfinEjg;^:^J]`Moj]j"
A$ = A$ + "^jF>eWkm<ajdM;6Zgg?;c2]f7jEdfS][\[J6WjfhfUk1][hZcZcFjHALe`]9"
A$ = A$ + "J^jFLjZ>G`bWQJYMeIbKe^WOY8D<k8B9SILmEcL1_RiFMG_3VfT]hUBjZSZ_"
A$ = A$ + "6ZoIedE7EO]da<K]3ba\^b?WE;GED[R^bl;MG>K9n>JMOG;aaaMd>Mg>ZaCU"
A$ = A$ + "[72ijj7Ge^fIFCO=gHVJM?QBi7gmWAZ^J_L]h\NjQJZ:^ZU[^GC0cH=0G;W]"
A$ = A$ + "VnOYbcNGLgikJQSJ^68mDI=Z4Gm;^jQJG]ccai^^VECOLdLfJM>fj[MJG7?D"
A$ = A$ + "WeLZSjhZnMEI>fLZg3m\OfJg[7miFN]dT7eJLYNR3aE?f7HIMLFn^RXde1dJ"
A$ = A$ + "hY]dI>clmf;^lMO=DjXk[?OUH>j3LV^ZX]c]ff[Ekc^K7m>M_LMdcncg:_]f"
A$ = A$ + "^YEmAc=?ZBl6^JR^ZFKXkkU2AoS;]cfC>J[HDMFO>ZUOj9^bgkl;LeS?cVLl"
A$ = A$ + "E]L]YlNTY7mdFkUg]cNEOemJQkalQgG>nbQVPWR[VQ[V1aN?#icIKiHAK];f"
A$ = A$ + "bL\ij]QjG[d;;J\4^JELeH>K<^khDLEo]1IoNQ]Fa#hZEeE3RWgYgV[?YdOj"
A$ = A$ + "FjYSlgKXS1O_WFC]?[U6Le>fECHL;aN_QgjlOm4Nco5jmRn5^>Q[>Q^JTH2i"
A$ = A$ + "kWgHhK^Y?;nRece?>[CMfnPj[?YbfgCe^NS^9^j0hZ>>kIME[[abl7GdOSVO"
A$ = A$ + "bC^:OoOZnaRWWEnEKGaEk0G]2c;#?A:nC87B]m9cn1hmiM5Y_0Q>NkVkaFk["
A$ = A$ + "K\oEG6GmP_V2alQ2hZN_?BV7[]^]5G]^\G33kYn03P0]n0_Re`5=G]eGK69T"
A$ = A$ + "]IYVkSfi;d>S[niJ>:a#W:ni:djcQA1CkUimlh:kZTGmla?hZgGKm:WG=imI"
A$ = A$ + "34=>27]n]a[jL;9kokcfS0k9O0J9kc3lSGFbn1_o^ah3OGeFge0D2T?;[]ol"
A$ = A$ + ":UKeTCehYbebVFMY2PFR97R<nLEb]J6WZaC=ki2b[2i`MllXT[52inoI5b]:"
A$ = A$ + "7Wjfi]LO6CoPQD8Wi#[Tc[V\_O[`hFU?W6CNEcnnWa]2Y#9N>Ei6O]moG>F]"
A$ = A$ + "]o^EbEMOGHX]>eaIQFR\?`bm9hfofF^eI^O`K^jncYA<gBKnZjNkPWE8L38O"
A$ = A$ + "^<FoMRaZ:SA=[SYIfE=?[6IKAfk3;UmTE[_F3c3JcWdQWGa2iZZi9C`=mjdT"
A$ = A$ + "_5^0^aQAgKm;Z[j[m:emRMdJS0^;88DNRD[;=[R[VjnE=TgVMM51gMj9ii3>"
A$ = A$ + "ch9_a#_67_4^JRSe\h]g9Fc3JML7DVHR[F[Ylfg_gZC4C_[nhUTMeT_NUCOH"
A$ = A$ + "BLnZ`Sk#O<Sa7MF7E^fOmNLmfon:iZ1_VUH=\cgea;=obW`UKMlm8bIbAV[c"
A$ = A$ + "UZ;kN]=hal2jZU>6o\m;:WHScT;NUMjBUSl\>J>gc=icU9gEgGcBEdE;am]C"
A$ = A$ + "mnhU>_lXjj9MLGPLT9gnGafAGGMFGWQ]`E;I\eIMeRf?l6h`Ga5;QSVKKa]4"
A$ = A$ + "k\P^J[c9TE\i9m[RWG^2iZ;Y7FdkOeQm_H5Lemj[DWkZIk`96CGEG]RL;7gM"
A$ = A$ + "V?VS[>SSIMdMe;iaE:odMjXWfE[dH7aE_9GM0_6M;nL7ilUL^LJMKO=^>>[^"
A$ = A$ + "jFOjefS=]^MOdXY>lRhRYN=HkgKFC`cdHF?DSAG`[agAlC=YeWSm2^^j\=oB"
A$ = A$ + "hZ`\`\kZVaZR[2S>J^j<=VENOH0c4ka`Chk=3LEHVHfMEjo;<;X=G`]fa`EQ"
A$ = A$ + "NTF7o<k^jNoOW\e\4\NH57?Ie72LEHVHjMe7_H]6HJMk=0W5ij4Kk?S[2#Ob"
A$ = A$ + "<kZbggZhZ`XSaE=ej`]hkFkHhZ0L4LE063`E1H<HFMEcN\1G5V5dLeIH_fP["
A$ = A$ + "2c6hZ0<6<[^ZI?fHEWA`EQ16gHiIH_fHZcBF^:[MOH`aZ6G9LeA>g:^:<S\B"
A$ = A$ + "^J[K[1hZ<[^jfNl3G5V9Tacc#]7EFo2aEQI2GGMdW;HLEHFIfLEI]6Uj2=<C"
A$ = A$ + "8SWWQJ?:^:<[<[^Z\FSR[2c0FacC#]7M_n5R[2C6^^jXG?3eZeXhZ`<PKll<"
A$ = A$ + "jZ]^=6PBa\iZKm?`ml2PI0[Hj1_fSJEGPaEQ93ga\>l^ZkiD7d63#9`=^6G5"
A$ = A$ + "PnTIbEOn\EOl2k5>H:A^ghfncSL=BSm]:<cX]?FK]cE:G]e]]0DJ`E1H<H6L"
A$ = A$ + "EIm;Tn03c8Jm1N4gGLF^:N:<Y8S_aE1XOI6LE[JR6n:<Qh6K?Zk;>[JR6^:<"
A$ = A$ + "Qh6K?R[Oo3e_#lDHBAcE7Yn1C]K1F56mJiRV[fjfD0Z5hZ0<6<3^ZL_[fjfC"
A$ = A$ + "0Z5SL=B3G5F96MGe]n5fjfC0Z5SLm<dZVXajf7VLTkQeAcE=momii1^:<i8M"
A$ = A$ + "ECoPK]3VU[n`No2ejfC0Z5^aihZ0dW<j^jna?^:<ih6[S[2#Ob`kZ_NLoago"
A$ = A$ + ">LEHjahZVhmAcEg>^aEQE0Y[^1^:0m9SZ[JZM;hZ`ZPV[>2kQELEHeHDMEcj"
A$ = A$ + "f7G5F5dLeAHM6JF;`k^:N:\0\5WKRi7Qe4\EMFb<7fhZ`2PaEgRk7Qj^T[[B"
A$ = A$ + "oOQE1ijQ0G5Pn5LE0636=GMkh3G5FAdLeNNnU\ZOQhZ`2Q[[fk?g6LEHE1G5"
A$ = A$ + "PaPAeEUe_#LEH5`:NO0ZmXJeJDLEH5`eEkme^4^:\Z<\^ZkaN7dF2#=a=N_g"
A$ = A$ + "ME[j2<^:\#L8N_c[C`Jc[4^:\2L8VO4LE]Sk>X]4PJRF<oXiZ]^=4Pk2LE06"
A$ = A$ + "36=GUno2[:^anhZ0dW<:^ZYn5R[2[:J^J?^7FaEQEWAbEO^oJ`EQ55gHo=OX"
A$ = A$ + "7Memj11^:\XXiZmhj<DcEKMK70g=m^[JECd`EQ56=G]Wj7\?G5O5F9le7hNc"
A$ = A$ + "Eg[M;hY`2S[[fKc5\EMF2G5FHdLeNJ<[DWU0hcX]_hjFGm]JG8^:\R\kZ_j1"
A$ = A$ + "hZ0d_<2^jNMFRJ2<\h\kZ?j_j^TINUNNLR[2;>^^J?]OK`E1h;dk^jNm;4G5"
A$ = A$ + "FLT^J_ESd\NN=hZ`RSU7dA^ZI=;9?6KMK50]6I>[NI];I]7cOkmTE[KW0Xe8"
A$ = A$ + "O?9R[2#oB_jZF__EaE1`b7jUj3QdEohkO7^:0?Nab7jFGUi06PWN#_iZVeGh"
A$ = A$ + "fa5^:0O6S[^A_\>3aE1h8hZ0<6P[2`H#_iZFe4=acCZe]C0dJT[gPNX6YQ[2"
A$ = A$ + "P>hZ0<6dK^ZEm;4G5PMLMeFG;G>DWU`E1h9F[?n>X^;Q[2P>hZ0<6de^:e`K"
A$ = A$ + "0fYgZYghZ0XC?jZke_#LE0fae7JmJGbZFSR[2`>J^J[ZAJbgSSJ7K0\bhcEK"
A$ = A$ + "ajQH_n5JZ;`hZ0\c1Oh]a\fJGUgUi0Hc1WX7LE]S[>X]2PFRVCdK^J[KS0XG"
A$ = A$ + "XWLEVG90lSfl;eBGUno2P>^^1^:0m9mR[^_7caE1#5=G]5[M9=G]e]=0dKdE"
A$ = A$ + "^jKk3>LE0>b^[:ZU;]`EgggZhZ0XRdEgl5LE0jCJ][JZOQhZ046=Gm>W;H[e"
A$ = A$ + "2<^:0NaeE_ke^dQj\4^:0ZXiZgIoPgMe7_P[2#0\Le7_P[2#WB?jZ]^=1PNU"
A$ = A$ + "FjZFe^5LE02RdE_kj^4^:0YC[Le3e4=LE02RV[N7?g6LE0bSFkZke4=LE02R"
A$ = A$ + "UWLS[72LE0bSFiZ7N_HlF^M00o8cYMGk=>[mH^iMFG7dF0#?SlMN:^:0m;MQ"
A$ = A$ + "[bHE18:BOi>MEN?V3#NHe?dKJ?WS[2#nd<GmaWkom7Ook`E181flTWnbKc_c"
A$ = A$ + "MjZKO_hZ0T66GMS]olMkZd7H0B3COP_;GejM37SG5PTamILFke^4^:0W3LE0"
A$ = A$ + "63^KGm#]K1G5PT#cE[iHFaE1hLP[2`H`MjZVg;6hZ0T?nLeJ<VEEGUj2<09Q"
A$ = A$ + "_j4l]hZl>B6PTaeGZ][JECd`E18ILmUJFSdT^Zlk5G5Phhj<hZ0dWLW^ZI\Z"
A$ = A$ + "hZ0T?nLeJlLK\NW[R[2#FL`IZhkRe3eJDLE0B6=WYFeM9O^J[K30HD0G5PaP"
A$ = A$ + "kdEI\Z0LNd6cJEMEaJ;4G5PdabE[Hm<DFo2aE18O>hZ?ZCMGbZVXQ[2#f8mV"
A$ = A$ + "JFSd`E1hJLG^ZIoe8MeFO^3`XQ[[^iEebEIO[2`iAKO\FB?m#m;4G5PCQV[F"
A$ = A$ + "be_?^:0UQJkZDkF0X<h[F^DJGM_n>Q[2`Y#jZKoJ9MEIMF2G5P[Q?G]4m3fh"
A$ = A$ + "ZkkaLLE0>=^^ZImkG2Gm#mP0G5PCSV[FZn1S[2#i0G5PaPk`EggkZhZ0LJLM"
A$ = A$ + "eBFgU`E1XLDKGeZf]`kK:0^4^NDYZU;F^:_Kh0hb\kZ_]fU:][BoO1X<hkI\"
A$ = A$ + "F2GUaZ2#i#K<[U`E]N7>R[2`UiP[nX<kSE]gSihZ0LN\Le2^Wc=[IoWe^5LE"
A$ = A$ + "0^<BGeDCT:V[Jn<aE1hbL`EOmGaE1XoX6^ZYf]\miI0G5P[Q\F6JhZeb5LE0"
A$ = A$ + ":?hZ0<6DJGMkWceEIlZ0LML7_ZdE?S_:[cBhZ0D>liZW]F^HECdHNP1XHhKN"
A$ = A$ + "PaE1X_XF^jcmH3^:053=Gm:ec`]O>LE0:?QLec\OK\Z9JhZ0D<liZW]F^hjZ"
A$ = A$ + "\?K0X<h^?K`E1X?YF^jcJ21^:053=Gm:ec#LE0Z3e`EOFo2U^Zik0G5PCSdS"
A$ = A$ + "T^jI[AJnZeXhY0LMdZS;WaE=[Iom?CbY2#Ai#^EA=B;ee3QjkKEbY2#ai`hF"
A$ = A$ + "o#N_?FgWCY77kk;^:0U3ea]nhUTVS9IOOef7LhZ0D>LMESc]m_5Z_`J[EOgJ"
A$ = A$ + "1Q;]nL5PA3O^TU_5I]l;ONZbO>LE0:7YhZ?c]6hi]j^>maE1XlTZ[JVW9gJA"
A$ = A$ + "ZILZbOVOoWn6LE0:<YjZn6gjf_OcQUNZQ#^:n:0YC8?BcE=SKEjZViD:V[Zm"
A$ = A$ + "mejcO065dLW#^j6bebTLnO?S[R_2#Lli=YTGe<O`J^ZdGaE1hjTS[jKM<9gC"
A$ = A$ + "iJ^j6QjW=^:0a9V3M`EOk_G^7dmmLEoeOl[ObCGeI];Q[2#N4dEMGkAbeO_h"
A$ = A$ + "i\6cEg#K]6R[2#jTZWJe7HWmP^?GM;OZdE3i[]^M0PNWchY^^jnjeGI]5^i["
A$ = A$ + "ob?l7SVK]e]30dk4J<ZbeMT_lZVWaZ_e\_9gjV_^?W`h[0T5abY6bEM[E4BG"
A$ = A$ + "ePlciWon_JgGINV08=bI<ZYjZbe3\V_Jb]^A\iI2W5FMbI>O3>NeGoo[]?Fg"
A$ = A$ + "[_X2OeML[YdGHlEHU9TSV[WJ6[JXJgRfWSGO=an4So2c6nRa?USjTcMkccgn"
A$ = A$ + "Ge]VXiji^c;\eNV;QWmZV[Rk2S4Ja_NMeLLDWn7_mkSESddZgBk[7HQ_:GCC"
A$ = A$ + "Yj[idoHb13]RLR??KNd#NZ<WJ\JIXEM<<#nE=OEkHh\]EhZ#;8Wh_LWgXDbW"
A$ = A$ + "^miVck:3gj>ZkgQkcNEeI_P_AOUQkTLRg:J^d?lMFoKKOnin>]A^oKf?nn]_"
A$ = A$ + "=Z_j[Oaid>4[]YeGGQiQHaFAS7MF?PihXFmIe9OJZeMOOef#gk18ocBW=VgN"
A$ = A$ + "Un6OU[7Gic0j;l=G8WmcjDOgW]o^>o\?on_`k8>Oc?lcSEWkUX=6FScVbL6G"
A$ = A$ + "j[MnV;;b;?n4L>M^`LINZ_OWeOP\f<h>>#OiRgn<ciMRAfm9fImBhn\Qdba:"
A$ = A$ + "?Gl^f7c\=Eno=e[QhZS=iLMfgemLSaliWJNJ`e9TWei#9mD]n47:7[_kg8ck"
A$ = A$ + "jj_WaK3Uo<deeF7_1egES5GTegCRnI\nljV;]4mi=UL\knZ97[km=lh[^^Jb"
A$ = A$ + "iLCHm<R[>oDR[oA9`l45:FegcRa:gcK_?TcimfHYba:ccjNN6;7[[kj;WKXl"
A$ = A$ + "^aLALeiRLj[KbnJ2i=SiX7b[hTSa]V9MG>Z_aa^g_h0]1Ydgh#NKXkSMf[_]"
A$ = A$ + ">nKeidiobhJIXlValbH>J\iNAjYgI^dH>[Vg6kl;FOT3i_U`IKM\jZC=MD[?"
A$ = A$ + "O5o<DOibaA]Nn;>nI_hXI=NfCT_eGNgHS[G;6#N][eaW#HG=eO^HGCeRgBI^"
A$ = A$ + ">C>7ZkaMS6?jEAVWmPkVhcA>dmibY?;7bknjaQYMERi_o996GEkn_e;nc]NN"
A$ = A$ + ";^>hmJTcaZKLS_WKH:aFYjYBg\eS7]TN[ilAmic6hinLEWFK\4^a4YjZ]8F^"
A$ = A$ + "dnM[?VCjHGaEEMd4F;>nF_j9?fC?cGTiiSN7?kUk6gadjV_ednWBkF>]iiBb"
A$ = A$ + "?SX;NlLfkAYMlM9O=bm<_jmAE?OSdV6jNbYL?j[>^cmSi?lUnQ9cO>2S5]6i"
A$ = A$ + "KeFO5Q^>7jJOXl7Qb5WT;UHldMAZ[KT#NIY>FZQWh>VBgLU^[kLOcMQil>Fk"
A$ = A$ + "XfOoFkG?llFj52U_eZo?:cEPJoJC8F]dNC^gO?7R=7UYj1elHl\WGQVSOge;"
A$ = A$ + "CB?oMUhP#^ZKNC3[Lnc[h`FmE>R_Jm[1j_EBmA<QnS5;><ghD=dbW4:7C^ol"
A$ = A$ + "iL\TjcD;Wc[DOFj1c;ZLm:DOgUgOgM^Q`9_V_VENg#g7=B>Hg?3OmG<eL6Ge"
A$ = A$ + "C;Q_F;G]4NZFoHU^ZI>L>#\lU:ckO\lVhYeeSEcmJ^FjLMdmjGBNMTafEbnn"
A$ = A$ + "MeHMghmDLfkfASegmHcmZln\n^nI6WYfcCa4cdjHgEVHiNCjIVNaWED[6GH?"
A$ = A$ + "<VjBN<kKl;aNn>abIfjHD8<VkSjKn[>hcAjKE?BdW5b=m\^:jiSWn_jN]Cfg"
A$ = A$ + "EbI>O4J<`n67\aQ?eJ=X#?ObTleCl<;;bm8llmWJkU<7Y_aEbH;1Y3k3I<R?"
A$ = A$ + "7?enM?BinbNnd3dODO>WF^AGJM\1<fTS3k^VFeh\^]jLX5ImTLFg;4ihT]nJ"
A$ = A$ + "70BB9o\?O_Gagi0i110P_`o7c`W^%%%0"
btemp$ = ""
For i& = 1 To Len(A$) Step 4: B$ = Mid$(A$, i&, 4)
If InStr(1, B$, "%") Then
For C% = 1 To Len(B$): F$ = Mid$(B$, C%, 1)
If F$ <> "%" Then C$ = C$ + F$
Next: B$ = C$: End If: For j = 1 To Len(B$)
If Mid$(B$, j, 1) = "#" Then
Mid$(B$, j) = "@": End If: Next
For t% = Len(B$) To 1 Step -1
B& = B& * 64 + Asc(Mid$(B$, t%)) - 48
Next: X$ = "": For t% = 1 To Len(B$) - 1
X$ = X$ + Chr$(B& And 255): B& = B& \ 256
Next: btemp$ = btemp$ + X$: Next
btemp$ = _Inflate$(btemp$)
_MemPut m, m.OFFSET, btemp$: _MemFree m
BASIMAGE1& = _CopyImage(v&): _FreeImage v&
End Function
Function BASIMAGE2& 'ball.png
v& = _NewImage(100, 99, 32)
Dim m As _MEM: m = _MemImage(v&)
A$ = ""
A$ = A$ + "haIkM^SSULL45EK5jB#j#j#K^1X?g3L=X=S\4Xf3bAN22#0bAK1jC718d2i8"
A$ = A$ + "L8>jP8cZNmlYkIdHTXNeWg_hVghNS8[ne?mdCo^Wn8Jl[ojonY7mj^kcicS7"
A$ = A$ + "37niOnGNjWnYoiCOkgnGNjkn^ojCOogogNj7oaoaK6[Sch7nQonK6L>6[Woj"
A$ = A$ + "eiGnUoeKfnILjnanePhmJ;ajenP7L\eiiJhjIo5^hWkjh[S]N=Fk3flBoMne"
A$ = A$ + "fPHBSIlHfB\MM^_iKncoF\gL2oLlSGl3S]`ghinILioR34?Fah6G1CFaNNlj"
A$ = A$ + "LLm[S_h:6o<Wal4b[ak1SbSFSoO0Khk8iS#3PHZWccSGKoj_n?mK7O]e77L0"
A$ = A$ + "\TLIFSYhDaTV?cL8`V?Ua77g0;J>V_j[nS_I0^\Rm>?5KiiKL4L[ijHdg;[3"
A$ = A$ + "EO0\oWJhajk3cWGOoH>oJ[c]\fWcicclOOLh5`7<N`ila<6DMWV_bL6kQkC1"
A$ = A$ + "LQio<?VHIe\]NPSUFOQ[5>bjJIh[Qg_6kW`2^^VcZibFjo<nH5GPC`lJ`Sef"
A$ = A$ + "_l;o3o?j1Mn]SINn^7P9h3^NcjnljHLfh>hajc4HE[YiS9=O[IcgEVo1>HMF"
A$ = A$ + "66Chk^a:N<n[hh53Lle_g4OMLfl8S?L=>nk]`AFWOEob;M<o:lXnR<W`NT#["
A$ = A$ + "`i_LlKYWcccaGWCSg7k9XNPkFc]Vh7UghSaaMN\efGjhn^QW;_RWV?\3?jS;"
A$ = A$ + "6Jl`ajeS9FiJ8Jm:E?gL1beE<QGGV3<EkB[KiU>fGN1cG17:oPib;M3Vkcn["
A$ = A$ + "]niQ^`jHe?\WWRnTc_\N^[hSeE\6d47Qc3NJl`nPkk??VJmO=XYPGFW_`iR\"
A$ = A$ + "gDcAje0NDM2b7I^1WOM>fjjnJn?S9^F3cOZ?\ZW=i?cjkXYlBS9N^b:V^V_c"
A$ = A$ + "LNc1ji:7aOGao5N`\7Gh46;L]KT7cNQiHegKk;cTWRbGVZ]deX\`UG:NQ[;f"
A$ = A$ + "iK86kloCnEij<naSA3bJ?>>^>VcQKM5S[CnMM]ifCUmT]c;\emme1N\^n?de"
A$ = A$ + "X#o`]_DV_kh[i5P;LN?0;9>ae3G`ccWVW2FD_34OmjVh1H2_^Xghn]H?FmmU"
A$ = A$ + "i2UO`[k72L0]k>oN:7ediikD?GcAINW[Qca:[oC>:RYXEhHF[C1<\LGN^]Nm"
A$ = A$ + "jMXc9<?1\im9?1]Kc5\F\e8^3nhLCLMPcNOdGLLScI\ShWkkEm2kLB`KlaL^"
A$ = A$ + ">[a<M=Ci]\NRGGbg7h1a]El1N]cg<EC1h5HXW[GM3O=P1]F2l137S_oT?[nJ"
A$ = A$ + "MmfnJ\nSk=Yi3Pa6;]oH[1IlP_OPg_?jIo2WGOf8>eikkh7nlClSRa^>Ub3J"
A$ = A$ + "ODLmUPG]WTMnKi34[K_RWZmXi]LLg7W??_?l1K=3g3SV7JbK[c[17bJ?niHn"
A$ = A$ + "6aIZ7T_O^ol`SJOiiL=7Ue6\VMmmB>8g3IS5>?f4oYH6Hek:O`P5NN\kAKi1"
A$ = A$ + "TOZJ3NOO<SaCh2ji6?LmO4C\gFc=L=l>GFkSYS]6?VZiPSgJJ#cXjj_;efa?"
A$ = A$ + "X[YXLRF_AgWL863m[UgjN]hGofWBfB\cm6YJbV;dLknh>>jNhkJB0G;_Y[[8"
A$ = A$ + "_7P_LM_]LS9O#]7DCa`6gGO7nR_hg?VcRSGOIF[`NKkajlI^^FOX_?Q0K[n="
A$ = A$ + "eb<M?MiNTdj5mLQbChinf`AH=<H>Xk_Ti8lmRhjTVM7[[cl2Z3O5;\O1oJCL"
A$ = A$ + "_lYV;bHVi7fSUaTCjd=fglFFKcNOkmdRgOMm?7oFN]<#K]iS:_ahAmJI^ROM"
A$ = A$ + "<WYL3cA\nQeI\7;?GaJg>7_WokJk9Nfm;_`7OjNO`jk5C`[ecAKO]fGFgce1"
A$ = A$ + "F=4??gjkFKOGmP>6Jn`dLL`4?_dcEF7gehhJ48nHN1JSlhNO<<iEfnfZGHSm"
A$ = A$ + "mn8RmG_O?7lXaT9OCEcM:WD[=_ihhj]_:Z3H:gUO\i0lIbHg^J4LOZJMe>ob"
A$ = A$ + "^Jm:gYNb<G\m\Q]?bm6^[]bi=8>K_>CiVFG3i^J^]jCKb_\a57WI>Q_oi`C;"
A$ = A$ + "iI\6m^jUGGSi0f[TciH_JWdBlj<feVWgCS7`G^;g0Mcj_MZWjWh6\MB7W7kn"
A$ = A$ + "oB]6`1H[mRaaMnYFWNS;fkZa1N>63J>^^FiMM2]6R[i_HYeUNTeh5Ml67WlK"
A$ = A$ + "JmK7k=NhAe>\7PbA8V?E3Ze<J=RnnmRH#7XohLCP;PAfCTSQMoNOcIO^VSJ<"
A$ = A$ + "5]mkLoY#<Qi]4;[o5VSklH>?e4F`cah8io[?FkOXn]#GQlZlLZfQmCanPONm"
A$ = A$ + ":ZoDjE7iijlJkcZiiVlkJN67WgS[dAXWQ5CfYKK?[>7d>^1c]]>Ni2nhTCZn"
A$ = A$ + "j#W_N;Z?Wfk9RAT_kT6Na:[QDoC>VkgO`=SU<FGcMbEe_S^nPFgPa6S3E3_i"
A$ = A$ + "NVRm]>4k3NZ70f?3jl]7F6;JM7=fajnfn4bfYJgM]7]o8<gHB3RS][f`ngRA"
A$ = A$ + "[=PhBcgH=3`Sj_]i\VdULlgLYRW^n2S9]OiN[cOG]SF;Q_?M9W5m6Xi\:7ae"
A$ = A$ + "WG=WjgV?CWZ5aeefJ;LLNZ^^CNZZ^OaVR3<O`H2iiVZGTL?NhN\he`]aD?_W"
A$ = A$ + "jWK?1I=aWdfieXN\=6<i9cO6fU[Zc3kjMdHoT>Bef[>dT_=O==7W?>n`;VdN"
A$ = A$ + "WS^=l0FCaYNP`lId:\647SccXiTLN#_F:EGYikhLCi[lkAScCNHW`Vb30?kc"
A$ = A$ + "amj]l3jYH7CmX1_7CHR[W0]UYid6;lJNgijklSI<^i7giAfhgJkT_GdkVR1C"
A$ = A$ + "ik;fd7?QUV3ihkjHF?X_gX7cSYnJ[kKn\WoiLF4cZ_FR=`9hhCmC\nFKO6M="
A$ = A$ + "oXUK\OjeI:WEe^mlmYhnD<_hada>U_ceH2?Uh??Vjm<F\nnhG3lcjih4[0O\"
A$ = A$ + "WFhF`=VbAI]4WgJWOFS7W`eMJ85;HnfD\KBo^HDm2<EoMeThjJOR[>6a?R7\"
A$ = A$ + "n9N=XjmHGkiT[ScaG7o[f#aRYHMa7kg]mGaioZ6bT?c9L`aZCeSGn#iCCJD^"
A$ = A$ + "nS^N8lHjY1KiiiiJPM^GF^>mMnT<NhJcMl]L3[7ILZeWLE=;UOdoNFMlgcCg"
A$ = A$ + "YY_;WfEiYVl=dN;F_g>g:GgTVZeh[gO[KPfIeVMl_lXZEG=jZ]DNAW3dOcEl"
A$ = A$ + "mHVSYf_IcYM:f_;of4^HMn9<Rgkf3;^6h4MMX<7QScl[YN;eloCcgW6f[PGO"
A$ = A$ + "4ZAehe4NDnab_5i8LOXJ^nMnYVdD^3_HGo`f]F_X5cn>7T[K`miemNWJc]fC"
A$ = A$ + "a3h0=7h9\`[cB[=deA^[g`^6Mn]cQGg9>`ELRChd^lJnjFOGVhR5GHNVcQiJ"
A$ = A$ + "dmn^_DN0NI?^FGfmKdj4f3l^NkF?0=Wf4V`SK]P`g[VaEH`^LEChDaEl]Bm7"
A$ = A$ + "CNl\f5O>]N_mNI\HZWRM=YVjUUkGKaP9]W9lYHbM`3[OPomYk7QMnJ?YQgmi"
A$ = A$ + "eag7Y6gJMSN=A0gJ^:gW=OOGH\`[52eNH>C[93mTfCFGkA[UKROdjj_:OeJD"
A$ = A$ + "lPiX>G`DLNW6nMh>ne`g;kU;jkW1`WN<c7LoBXgRnNN`J<CmZ]e8<]n9=6Fn"
A$ = A$ + "a^QcQ]cSejL>O5n][?ZMj0Mnm9OEk`Dc=\>2_oCanZognNRn7?o^N]L=FKWW"
A$ = A$ + "CWcGNcDl_i[V`7SmklF=Q7^?RCha>_BCLQMJ?^Fm9mofC`nnEo_nm0ojd;G`"
A$ = A$ + "5G?a>mNO]Fk`e\?5cgQ7Ga5JmU5?FSeW1jk`^ii=?oSZc_S;IlJmnG_FM\[g"
A$ = A$ + "l<_Wmm_S34Wih>?V[Aam4_m:L:VOWLFneZ[?b^nUh_GWl4M7oCGQ3khHMn#k"
A$ = A$ + "EBmeJo1>Vje]ZeT<U_ae`ihV_?_#gN2G>UCbeW<igjDoBVFkY9>a9Na9?0dO"
A$ = A$ + "BkgZigLlOGmifOUel]_:[=P_17o\FcTW7RaLM^O8]^V[l?=QIEKZ[=hdgARI"
A$ = A$ + "kd3jlmkTkj4?aiS:FP^=L2VojW7OnWhB>NRf^[=dSf?hYj:?YG\cWeT7]Yj1"
A$ = A$ + "MoMM>[YNafN:NEM9nLljjlCClRZIEoFnNJLJm[LmOU;`iLn0l1H]V9nd9=4c"
A$ = A$ + "=Z7gN]5oW^W6FO?X^#VGMU^jEiX>]n9CHLaTR=]O:^?m`MljWkLGV?hn2ihN"
A$ = A$ + "koD[5gcYkLoYadjmfJcYF`ZW_>Oio4;gMoB_C;ac]?Yi?eGGkWXNJgMOJQ70"
A$ = A$ + "VoklE<ggHBgWhWo]C[j0Ge?ZCiY>mJ]>o^koZ^NMG=_NG>[9<M]UeSMgLn[N"
A$ = A$ + "?mJP`nhWbJ7nJL]<^>NkkbeRSnn^eEdahCe6^kjVdkgMon<ekRYNR_SG\3;Z"
A$ = A$ + "7]9lSLj`KfmgaC_?7lehLAnnU`eNHM4h2>_2LZYNW_[FlMhb>OGNoCgCengS"
A$ = A$ + "5RGkF3ZYl?Wd#Vb?aa?E3:i_jW3goTnlMmQ\_[U`mC1>2j\DWQaQnk;`9oEC"
A$ = A$ + "[ga4NLRKDO_liMBGm4OH7WaL\nl\_YeW_MiYhcE[?RmKoNjejeRfmAdeoeN8"
A$ = A$ + "FOEWFSYR7WbAI_gW`SePL0ecc^hn4?IjlWZoHW^nJ;N<jJd>E3YcA]R1]OE`"
A$ = A$ + "CFa2>6cCkmjhD]l6;fUGJG=9Cn1X^SCo=7PgAgkd9]f[h9mJfYI?QgP1ncAi"
A$ = A$ + "I4KK=k>V^>6aNbOimmm7TeDjnUgdjgiLklF1nD<i>o=4b_emkddWl3]S[L2C"
A$ = A$ + "L_WVjKBe4:oXO^Xf9nnKMJd88ninIe[gecio^0[G;>NoMJhD=R]nS[`2cAfU"
A$ = A$ + "3OBGO27:>E?CgQWHmh9mJ[=`ekJ^K=SP5eg[a3d^]n^i4lJhJh;FDmTF32_f"
A$ = A$ + "g5?H^VeJWbK_37:FLjJ?i]ZL3dfL_XaW<WWcQnAm0gn>Jo`Nn^kaKc=A]SU?"
A$ = A$ + "hlBCJ<>OeSlkc0go?Cl46m_9]MNIgUoJJ>o9>9HQe\I;aLN<HR[WgeThk78S"
A$ = A$ + "?mN?iD?5_ZG96K:oHmJMG\PaZ7GCOo?UcJga>Ec^SKnlnmU7glGLL_^96Clm"
A$ = A$ + "5Q_ON1oLmFL<RO>GVebkJI=QGClQW;g`3gOK[WOE?>fi9k46iib=6?U_dKml"
A$ = A$ + "OgG:N<eMklE]fkMeNH_0Wh1WZo[jh?GlPkC_VoHZ__]?RGY_L:?5[ij4W`J_"
A$ = A$ + "]O]L>_68DgW_o]\f=HU[Ygj6kZ=\SYjEVFCZgVOCbhnjm^i\JoZNTad_mR4G"
A$ = A$ + "m[;mkc[OQiB^f?bk0FhNQhNX#\bhl4VLEoBVjWnSF?nMeAlJfEOFG]>7EgOJ"
A$ = A$ + "=7_Rc0g0^YkOUmo26dkEGgk:kgU[Uh=iVV`RMieVjQeD_ZNGmKJ9cMJ>[CLT"
A$ = A$ + "N\MheSR;=o5mS2^1l1[U0ND__eOeTnb9naDOfGSYkcdgUoNF^f>e_X7M<ekg"
A$ = A$ + "VcZgCYkd_M>=WoghBe5PkhNTHoA^W_CNMWh9]NLkAci[NGP55GJ=fWF;g7E_"
A$ = A$ + "h>LVMn[ZWFSKeSUe80?PchLFfck>LXm>am:fJj__nmY6o9kRICnP_;VE=YF;"
A$ = A$ + "Ji>E;caNfgL7gO4g;AWcbl8S=eOl^OKA=VlXm4ii<Fe]OEOh;NLG>a9nQa:l"
A$ = A$ + "6i1jKESWSeOW\ZFQSo5[fE3Xa2G;^kWnkSlDCSk\fjk`TCHDm\i[clUE\XeT"
A$ = A$ + "KlXl4cGL_D:g`iWfYG0nP_k9?_L]O8`26>VMelnCmRgHaTfT?6aoNoGiof7Q"
A$ = A$ + "7dj2WZS\[32aiMm\jT7;GCnjeh3mogRH]MW`RWSo[YJJ>MM=GUa<Zecjgf?E"
A$ = A$ + "eBLN9?__gOLk`3[K\^^Gbo7B=e[fkP;CmhjAmEQ6?i^lJKB\dh1LPZOKlZ[]"
A$ = A$ + "adm8Wi:eSk;mo?_N4mTkb=fQY^WVClUjUbkG]4ogSSoo2BSc5;Ln\ZOlJ0;H"
A$ = A$ + "<M_^m^HH_]^fRfgUZQkHOkCRmG1gXo__Ym:LGM7nnBhedH=g0lhdjH]S3<e?"
A$ = A$ + "aFSQeamlMOO?HmlbEjS]nQ[5Qh]m3_KlBmog^k>FOnfMOdMUf\i4ChSO=K_A"
A$ = A$ + "le<U_Zm#YeKHmMk[eeJknd^>n[moO2K^bEiN^SfOe>lPed`l3n]<YeKDNAm="
A$ = A$ + "a_g<U_d17o>ggD_67k^O3_S7<j5eD_AZnMa]YjnJ=PP=C[IKcGiJDnHQC<aA"
A$ = A$ + ">aEN>N`8oTi0ESOWg:hCCnJWjI5l4gG`?FaRMhcMmOeenKJ^_eb=6ioWC#<e"
A$ = A$ + "eUglBFGIJ]VN=jMjM5N`h^hBej]V^cI]fgiE<6eofKVZi^m]RJ?nHCOhiR;\"
A$ = A$ + "Uee[LSM[;UmmBlfJ==7Ui9FSgnJ13Ho?Ei3?:_I57Vh=E3_LUjSMbS[[kfL4"
A$ = A$ + "NmH=Sno1n`EHAOlJk:OadmgK__kWlIinG=]N8XWlJ[o6O<<\V3[=Ia9b]=eG"
A$ = A$ + "4^VeSGNSl[g;mg]?U7Cl\??nlh]MlOPD%%L2"
btemp$ = ""
For i& = 1 To Len(A$) Step 4: B$ = Mid$(A$, i&, 4)
If InStr(1, B$, "%") Then
For C% = 1 To Len(B$): F$ = Mid$(B$, C%, 1)
If F$ <> "%" Then C$ = C$ + F$
Next: B$ = C$: End If: For j = 1 To Len(B$)
If Mid$(B$, j, 1) = "#" Then
Mid$(B$, j) = "@": End If: Next
For t% = Len(B$) To 1 Step -1
B& = B& * 64 + Asc(Mid$(B$, t%)) - 48
Next: X$ = "": For t% = 1 To Len(B$) - 1
X$ = X$ + Chr$(B& And 255): B& = B& \ 256
Next: btemp$ = btemp$ + X$: Next
btemp$ = _Inflate$(btemp$)
_MemPut m, m.OFFSET, btemp$: _MemFree m
BASIMAGE2& = _CopyImage(v&): _FreeImage v&
End Function
Something in-between games to separate the showing of a ball and the hiding of the next:
A little edit since I've begun to take an interest in this game.
RE: Find the ball - classic shell game - johnno56 - 05-10-2022
Question. What if I wanted to change the type of cups or ball? eg: Walnut shells and a pea.
Does this mean (ok. Two questions) that only the author has the ability to make changes?
RE: Find the ball - classic shell game - Dav - 05-10-2022
Well that makes it more fun, @bplus, more like a game now. I always appreciate your modifications. Hmm...that's an elegant method of asking user ENTER or quit (IF LEN(yes$) THEN END). I think i will adopt that. Sorry I didn't get to work on this today. Maybe tomorrow....
@johnno56, you can switch it to shells and peas instead, just swap out the cup & ball image to load new pics. You will have to adjust the x/y stuff in the code. Maybe it would be good to use to same image size as the cup and ball - perhaps doing that the current x/y stuff can just stay the same and still work. The cup image is 235x336 and the ball image size is 100x99. You and anyone else here has my permission to change this code however you want. Have fun.
- Dav
|