TGC Codebase Backup



Memory Game by Brux

3rd Oct 2012 16:09
Summary

Memory Game in which you must guess the pair of identical images But with a variation...



Description

GAME IN WHICH YOU MUST GUESS THE PAIR OF IDENTICAL IMAGES
BUT WITH A VARIATION...
IN FACT YOU CAN EASILY CHANGE THE LEVELS
HOW MANY BOXES YOU WANT TO DISPLAY FROM 4 (VERY VERY EASY) TO 48 MAX.

YOU HAVE AN AVAILABLE TIME BASED ON THE NUMBER OF BOXES ON THE SCREEN, MULTIPLIED BY 5
YOU HAVE AVAILABLE TO LEVEL 10 COMPLETED WHICH IT STARTS FROM THE BEGINNING
IF TIME EXPIRES AT YOUR DISPOSAL REPEAT THE SAME LEVEL

ONLY RULE WHEN EDITING A LEVEL ,REMEMBER THAT THE BOXES MUST ALWAYS BE A MULTIPLE OF 2




Code
                                    ` This code was downloaded from The Game Creators
                                    ` It is reproduced here with full permission
                                    ` http://www.thegamecreators.com
                                    
                                    Rem *Memory by Ermanno -<ITALY>- E-MAIL:me52@libero.it

SYNC ON : SYNC RATE 60
DIM face(59)
DIM pox(48)
DIM poy(48)
DIM zona(48)
DIM flag(59)
DIM image(59)
DIM pic(48)

LOAD SOUND "ding.wav",1
LOAD SOUND "errore.wav",2
LOAD SOUND "win.wav",3

azzurro=RGB(0,192,255)
white=RGB(255,255,255)
blu=RGB(0,64,255)
giallo=RGB(255,255,0)
grigio=RGB(123,123,123)
verde=RGB(0,195,0)
red=RGB(255,0,0)

FOR t=1 TO 59
  LOAD IMAGE "default\image"+RIGHT$(STR$(t+100),2)+".bmp",t
NEXT t
ini=1

main:
INK blu,blu
BOX 1,1,639,479

Make_Button(grigio,190,10,460,40,white,black,1)
Make_Button(verde,230,15,420,35,white,black,2):Testo(230,15,420,5,"STOP",white)

Make_Button(grigio,190,400,460,430,white,black,1):Testo(190,400,460,400,"MEMORY 2012",black)

SELECT ini
CASE 1
RESTORE L1:ENDCASE
CASE 2
RESTORE L2:ENDCASE
CASE 3
RESTORE L3:ENDCASE
CASE 4
RESTORE L4:ENDCASE
CASE 5
RESTORE L5:ENDCASE
CASE 6
RESTORE L6:ENDCASE
CASE 7
RESTORE L7:ENDCASE
CASE 8
RESTORE L8:ENDCASE
CASE 9
RESTORE L9:ENDCASE
CASE 10
RESTORE L10:ENDCASE
CASE Default :ENDCASE
ENDSELECT

Rem make blu buttons

n=1:no=0:ju=0:px=0:py=0:akan=0:pa=0
ultime=0:mosse=0:yo=0:ti=0:game_over=0
FOR a=1 TO 6
 FOR b=1 TO 8
  pox(n)=130+px :poy(n)=50+py
  READ opt
  zona(n)=opt
  IF opt=1
   Make_Button(azzurro,pox(n),poy(n),pox(n)+50,poy(n)+55,white,black,1)
   INC no
  ENDIF
   INC px,50:INC n
 NEXT b
 px=0
 INC py,55
NEXT a
GOSUB mischia

n=1
FOR a=1 TO 48
 IF zona(a)=1 THEN pic(a)=image(n):INC n
NEXT a
SLEEP 250
mainloop:
im=0
REPEAT
GOSUB scritte
IF game_over=1 THEN EXIT
IF MOUSECLICK()=1
   mx=MOUSEX()
   my=MOUSEY()

   IF mx>230 AND mx<420 AND my>15 AND my<35
     Anim_Button(230,15,420,35)
     Make_Button(verde,230,15,420,35,white,black,2)
     im=99:EXIT
   ENDIF

   IF mx>190 AND mx<460 AND my>400 AND my<430
    Anim_Button(190,400,460,430)
    Make_Button(grigio,190,400,460,430,white,black,1)
    IF memory=0
     Testo(190,400,460,400,"BY ERMANNO -ITALY-",black)
     memory=1
    ELSE
     Testo(190,400,460,400,"MEMORY 2012",black)
     memory=0
    ENDIF
   ENDIF

IF mx>130 AND mx<180 AND my>50 AND my<105 AND zona(1)=1
Anim_Button(130,50,180,105)
im=1
PASTE IMAGE Pic(1), pox(1),poy(1)
ENDIF
IF mx>180 AND mx<230 AND my>50 AND my<105 AND zona(2)=1
Anim_Button(180,50,230,105)
im=2
PASTE IMAGE Pic(2), pox(2),poy(2)
ENDIF
IF mx>230 AND mx<280 AND my>50 AND my<105 AND zona(3)=1
Anim_Button(230,50,280,105)
im=3
PASTE IMAGE Pic(3), pox(3),poy(3)
ENDIF
IF mx>280 AND mx<330 AND my>50 AND my<105 AND zona(4)=1
Anim_Button(280,50,330,105)
im=4
PASTE IMAGE Pic(4), pox(4),poy(4)
ENDIF
IF mx>330 AND mx<380 AND my>50 AND my<105 AND zona(5)=1
Anim_Button(330,50,380,105)
im=5
PASTE IMAGE Pic(5), pox(5),poy(5)
ENDIF
IF mx>380 AND mx<430 AND my>50 AND my<105 AND zona(6)=1
Anim_Button(380,50,430,105)
im=6
PASTE IMAGE Pic(6), pox(6),poy(6)
ENDIF
IF mx>430 AND mx<480 AND my>50 AND my<105 AND zona(7)=1
Anim_Button(430,50,480,105)
im=7
PASTE IMAGE Pic(7), pox(7),poy(7)
ENDIF
IF mx>480 AND mx<530 AND my>50 AND my<105 AND zona(8)=1
Anim_Button(480,50,530,105)
im=8
PASTE IMAGE Pic(8), pox(8),poy(8)
ENDIF
IF mx>130 AND mx<180 AND my>105 AND my<160 AND zona(9)=1
Anim_Button(130,105,180,160)
im=9
PASTE IMAGE Pic(9), pox(9),poy(9)
ENDIF
IF mx>180 AND mx<230 AND my>105 AND my<160 AND zona(10)=1
Anim_Button(180,105,230,160)
im=10
PASTE IMAGE Pic(10), pox(10),poy(10)
ENDIF
IF mx>230 AND mx<280 AND my>105 AND my<160 AND zona(11)=1
Anim_Button(230,105,280,160)
im=11
PASTE IMAGE Pic(11), pox(11),poy(11)
ENDIF
IF mx>280 AND mx<330 AND my>105 AND my<160 AND zona(12)=1
Anim_Button(280,105,330,160)
im=12
PASTE IMAGE Pic(12), pox(12),poy(12)
ENDIF
IF mx>330 AND mx<380 AND my>105 AND my<160 AND zona(13)=1
Anim_Button(330,105,380,160)
im=13
PASTE IMAGE Pic(13), pox(13),poy(13)
ENDIF
IF mx>380 AND mx<430 AND my>105 AND my<160 AND zona(14)=1
Anim_Button(380,105,430,160)
im=14
PASTE IMAGE Pic(14), pox(14),poy(14)
ENDIF
IF mx>430 AND mx<480 AND my>105 AND my<160 AND zona(15)=1
Anim_Button(430,105,480,160)
im=15
PASTE IMAGE Pic(15), pox(15),poy(15)
ENDIF
IF mx>480 AND mx<530 AND my>105 AND my<160 AND zona(16)=1
Anim_Button(480,105,530,160)
im=16
PASTE IMAGE Pic(16), pox(16),poy(16)
ENDIF
IF mx>130 AND mx<180 AND my>160 AND my<215 AND zona(17)=1
Anim_Button(130,160,180,215)
im=17
PASTE IMAGE Pic(17), pox(17),poy(17)
ENDIF
IF mx>180 AND mx<230 AND my>160 AND my<215 AND zona(18)=1
Anim_Button(180,160,230,215)
im=18
PASTE IMAGE Pic(18), pox(18),poy(18)
ENDIF
IF mx>230 AND mx<280 AND my>160 AND my<215 AND zona(19)=1
Anim_Button(230,160,280,215)
im=19
PASTE IMAGE Pic(19), pox(19),poy(19)
ENDIF
IF mx>280 AND mx<330 AND my>160 AND my<215 AND zona(20)=1
Anim_Button(280,160,330,215)
im=20
PASTE IMAGE Pic(20), pox(20),poy(20)
ENDIF
IF mx>330 AND mx<380 AND my>160 AND my<215 AND zona(21)=1
Anim_Button(330,160,380,215)
im=21
PASTE IMAGE Pic(21), pox(21),poy(21)
ENDIF
IF mx>380 AND mx<430 AND my>160 AND my<215 AND zona(22)=1
Anim_Button(380,160,430,215)
im=22
PASTE IMAGE Pic(22), pox(22),poy(22)
ENDIF
IF mx>430 AND mx<480 AND my>160 AND my<215 AND zona(23)=1
Anim_Button(430,160,480,215)
im=23
PASTE IMAGE Pic(23), pox(23),poy(23)
ENDIF
IF mx>480 AND mx<530 AND my>160 AND my<215 AND zona(24)=1
Anim_Button(480,160,530,215)
im=24
PASTE IMAGE Pic(24), pox(24),poy(24)
ENDIF
IF mx>130 AND mx<180 AND my>215 AND my<270 AND zona(25)=1
Anim_Button(130,215,180,270)
im=25
PASTE IMAGE Pic(25), pox(25),poy(25)
ENDIF
IF mx>180 AND mx<230 AND my>215 AND my<270 AND zona(26)=1
Anim_Button(180,215,230,270)
im=26
PASTE IMAGE Pic(26), pox(26),poy(26)
ENDIF
IF mx>230 AND mx<280 AND my>215 AND my<270 AND zona(27)=1
Anim_Button(230,215,280,270)
im=27
PASTE IMAGE Pic(27), pox(27),poy(27)
ENDIF
IF mx>280 AND mx<330 AND my>215 AND my<270 AND zona(28)=1
Anim_Button(280,215,330,270)
im=28
PASTE IMAGE Pic(28), pox(28),poy(28)
ENDIF
IF mx>330 AND mx<380 AND my>215 AND my<270 AND zona(29)=1
Anim_Button(330,215,380,270)
im=29
PASTE IMAGE Pic(29), pox(29),poy(29)
ENDIF
IF mx>380 AND mx<430 AND my>215 AND my<270 AND zona(30)=1
Anim_Button(380,215,430,270)
im=30
PASTE IMAGE Pic(30), pox(30),poy(30)
ENDIF
IF mx>430 AND mx<480 AND my>215 AND my<270 AND zona(31)=1
Anim_Button(430,215,480,270)
im=31
PASTE IMAGE Pic(31), pox(31),poy(31)
ENDIF
IF mx>480 AND mx<530 AND my>215 AND my<270 AND zona(32)=1
Anim_Button(480,215,530,270)
im=32
PASTE IMAGE Pic(32), pox(32),poy(32)
ENDIF
IF mx>130 AND mx<180 AND my>270 AND my<325 AND zona(33)=1
Anim_Button(130,270,180,325)
im=33
PASTE IMAGE Pic(33), pox(33),poy(33)
ENDIF
IF mx>180 AND mx<230 AND my>270 AND my<325 AND zona(34)=1
Anim_Button(180,270,230,325)
im=34
PASTE IMAGE Pic(34), pox(34),poy(34)
ENDIF
IF mx>230 AND mx<280 AND my>270 AND my<325 AND zona(35)=1
Anim_Button(230,270,280,325)
im=35
PASTE IMAGE Pic(35), pox(35),poy(35)
ENDIF
IF mx>280 AND mx<330 AND my>270 AND my<325 AND zona(36)=1
Anim_Button(280,270,330,325)
im=36
PASTE IMAGE Pic(36), pox(36),poy(36)
ENDIF
IF mx>330 AND mx<380 AND my>270 AND my<325 AND zona(37)=1
Anim_Button(330,270,380,325)
im=37
PASTE IMAGE Pic(37), pox(37),poy(37)
ENDIF
IF mx>380 AND mx<430 AND my>270 AND my<325 AND zona(38)=1
Anim_Button(380,270,430,325)
im=38
PASTE IMAGE Pic(38), pox(38),poy(38)
ENDIF
IF mx>430 AND mx<480 AND my>270 AND my<325 AND zona(39)=1
Anim_Button(430,270,480,325)
im=39
PASTE IMAGE Pic(39), pox(39),poy(39)
ENDIF
IF mx>480 AND mx<530 AND my>270 AND my<325 AND zona(40)=1
Anim_Button(480,270,530,325)
im=40
PASTE IMAGE Pic(40), pox(40),poy(40)
ENDIF
IF mx>130 AND mx<180 AND my>325 AND my<380 AND zona(41)=1
Anim_Button(130,325,180,380)
im=41
PASTE IMAGE Pic(41), pox(41),poy(41)
ENDIF
IF mx>180 AND mx<230 AND my>325 AND my<380 AND zona(42)=1
Anim_Button(180,325,230,380)
im=42
PASTE IMAGE Pic(42), pox(42),poy(42)
ENDIF
IF mx>230 AND mx<280 AND my>325 AND my<380 AND zona(43)=1
Anim_Button(230,325,280,380)
im=43
PASTE IMAGE Pic(43), pox(43),poy(43)
ENDIF
IF mx>280 AND mx<330 AND my>325 AND my<380 AND zona(44)=1
Anim_Button(280,325,330,380)
im=44
PASTE IMAGE Pic(44), pox(44),poy(44)
ENDIF
IF mx>330 AND mx<380 AND my>325 AND my<380 AND zona(45)=1
Anim_Button(330,325,380,380)
im=45
PASTE IMAGE Pic(45), pox(45),poy(45)
ENDIF
IF mx>380 AND mx<430 AND my>325 AND my<380 AND zona(46)=1
Anim_Button(380,325,430,380)
im=46
PASTE IMAGE Pic(46), pox(46),poy(46)
ENDIF
IF mx>430 AND mx<480 AND my>325 AND my<380 AND zona(47)=1
Anim_Button(430,325,480,380)
im=47
PASTE IMAGE Pic(47), pox(47),poy(47)
ENDIF
IF mx>480 AND mx<530 AND my>325 AND my<380 AND zona(48)=1
Anim_Button(480,325,530,380)
im=48
PASTE IMAGE Pic(48), pox(48),poy(48)
ENDIF
ENDIF
SYNC
UNTIL im>0
inc mosse
FOR i=0 to 1500:NEXT i
IF game_over=1
 stringa$="CLICK TO REPEATING"
 GOSUB click
 GOTO main
ENDIF
Rem Have pushed STOP button ?

IF im=99
 n=1
 FOR i=1 TO 48
 IF zona(n)=1
  PASTE IMAGE Pic(n),pox(n),poy(n)
 ENDIF
 INC n
 SYNC
 NEXT i
 Make_Button(grigio,190,400,460,430,white,black,1)
 Testo(190,400,460,400,"BY ERMANNO -ITALY-",black)
 stringa$="CLICK TO END"
 GOSUB click
 CLS 0
 END
ENDIF

zona(im)=0
GOSUB check
IF akan=0 THEN GOTO mainloop
ultime=1 : PLAY SOUND 3
GOSUB controllo
GOSUB scritte
stringa$="CLICK TO START" :GOSUB click
INC ini
IF ini>10 THEN ini=1
GOTO main

click:
Make_Button(grigio,190,10,460,40,white,black,1)
Make_Button(verde,230,15,420,35,white,black,2):Testo(230,15,420,5,stringa$,white)
w=0
WHILE w=0
mx=MOUSEX():my=MOUSEY()
IF MOUSECLICK()=1
 IF mx>230 AND mx<420 AND my>15 AND my<35
    Anim_Button(230,15,420,35)
    w=1
 ENDIF
ENDIF
SYNC
ENDWHILE
RETURN

Rem writes something
scritte:
Make_Button(black,5,5,80,300,red,red,0)
Make_Button(red,7,6,78-ti,48,red,white,2):Testo(7,6,78,8,"TIME",giallo)
i$=RIGHT$(STR$(100+pa),2)
Testo(7,6,78,38,i$,white)
INK white,0
TEXT 15,70,"MEMORY"
TEXT 15,100,"LEVEL"
TEXT 15,120,RIGHT$(STR$(ini+100),2)
TEXT 15,150,"BLOCKS"
TEXT 15,170,RIGHT$(STR$(no+100),2)
TEXT 15,200,"MOVES"
TEXT 15,220,RIGHT$(STR$(mosse+1000),3)
yo=yo+1
IF yo>no*3 THEN yo=0: INC ti : INC pa
IF ti>72 AND no>0
 Make_Button(grigio,100,100,540,250,red,red,2):Testo(100,100,540,220,"TIME EXPIRED!",white)
 SYNC : PLAY SOUND 2 : SLEEP 50
 game_over=1
ENDIF
RETURN

check:
INC ju
IF ju=3 THEN GOSUB wrong
IF ju=1
 ax=im
 immagine_a=pic(im)
 RETURN
ENDIF

IF ju=2
 bx=im
 immagine_b=pic(im)
 GOTO controllo
ENDIF

controllo:
SLEEP 500
IF immagine_a=immagine_b
 Make_Button(blu,pox(ax),poy(ax),pox(ax)+52,poy(ax)+57,blu,blu,0)
 Make_Button(blu,pox(bx),poy(bx),pox(bx)+52,poy(bx)+57,blu,blu,0)
 ju=0
 IF ultime=0
  no=no-2 : PLAY SOUND 1 : SLEEP 50
 ENDIF
 IF no=0 THEN akan=1:RETURN
ENDIF
RETURN

wrong:
Make_Button(azzurro,pox(ax),poy(ax),pox(ax)+50,poy(ax)+55,white,black,1)
Make_Button(azzurro,pox(bx),poy(bx),pox(bx)+50,poy(bx)+55,white,black,1)
ju=1
zona(ax)=1:zona(bx)=1
RETURN

Mischia:
RANDOMIZE RND(500)
FOR i=1 TO no/2
a4:
x=RND(58)+1
IF flag(x)=1 THEN GOTO a4
flag(x)=1
face(i)=x
NEXT i
GOSUB azzera
FOR t=1 TO no
 a3:
 x=RND(no/2)
 IF x=0 THEN GOTO a3
 IF flag(x)=2 THEN GOTO a3
 flag(x)=flag(x)+1
 image(t)=face(x)
NEXT t
RETURN

azzera:
FOR i=1 TO 59
flag(i)=0
NEXT i
RETURN

Rem You can vary each L,but be always multiple of 2
L1:
rem 10
DATA 0,0,0,0,0,0,0,0
DATA 1,0,0,0,0,0,0,0
DATA 1,1,1,1,1,1,1,1
DATA 0,0,0,0,0,0,0,1
DATA 0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0
L2:
Rem 18
DATA 1,0,0,1,0,0,0,0
DATA 0,0,0,1,0,0,1,1
DATA 1,1,1,0,1,1,1,1
DATA 1,1,0,1,0,0,0,0
DATA 0,0,0,1,0,0,0,0
DATA 0,0,0,1,0,0,0,1
L3:
rem 30
DATA 1,0,1,0,1,0,1,0
DATA 0,1,0,1,0,1,0,1
DATA 1,0,1,0,1,0,1,0
DATA 0,1,0,1,0,1,0,1
DATA 1,0,1,0,1,0,1,0
DATA 0,1,0,1,0,1,0,1
L4:
rem 18
DATA 0,0,1,1,1,1,0,0
DATA 0,0,1,0,0,1,0,0
DATA 0,0,1,0,0,1,0,0
DATA 0,1,1,1,1,1,1,0
DATA 0,1,0,0,0,0,1,0
DATA 0,1,0,0,0,0,1,0
L5:
rem 22
DATA 0,0,1,1,1,1,0,0
DATA 0,1,0,0,0,0,1,0
DATA 1,0,0,1,1,0,0,1
DATA 1,0,1,1,1,1,0,1
DATA 0,1,0,0,0,0,1,0
DATA 0,0,1,1,1,1,0,0
L6:
rem 36
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,0
DATA 1,1,1,1,1,1,0,0
DATA 1,1,1,1,1,0,0,0
DATA 1,1,1,1,0,0,0,0
DATA 1,1,0,0,0,0,0,0
L7:
rem 40
DATA 0,0,1,1,1,1,0,0
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1
DATA 0,0,1,1,1,1,0,0
DATA 1,1,1,1,1,1,1,1
L8:
Rem 42
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,0,1,1,1,1
DATA 1,1,1,1,0,1,1,1
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1
L9:
Rem 44
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,0,0,1,1,1
DATA 1,1,1,0,0,1,1,1
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1
L10:
Rem 48
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1


FUNCTION Make_Button(co1,Left,Top,Right,Bottom,co2,co3,shadow)
 INK 0,0
 IF shadow=1 THEN BOX left,top,right,bottom
 IF shadow=2 THEN BOX left-2,top-2,right+2,bottom+2
 INK co1,co1
 BOX left+1,top+1,right-1,bottom-1
 INK co2,co2
 LINE Left,Bottom,Left,Top : LINE Left,Top,Right,Top
 INK co3,co3
 LINE Right,Top,Right,Bottom : LINE Right,Bottom,Left,Bottom
ENDFUNCTION


FUNCTION Testo(x,y,x1,y1,txt$,ct)
 INK ct,ct
 c=((x1-x)/2)-((8*LEN(txt$))/2)
 TEXT x+c,y1-((y1-y)/2)+8,txt$
ENDFUNCTION

FUNCTION Anim_Button(Ax,Ay,Bx,By)
    COPY BITMAP 0,Ax-1,Ay-1,Bx,By,0,Ax,Ay,Bx+1,By+1
    WHILE MOUSECLICK()=1 : SYNC :  ENDWHILE
    COPY BITMAP 0,Ax,Ay,Bx+1,By+1,0,Ax-1,Ay-1,Bx,By
ENDFUNCTION