Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 memory card game help
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
noname96




PostPosted: Sun Jan 20, 2013 1:03 pm   Post subject: memory card game help

hi, i'm new to the forums:) i'm making a concentration matching card game.The game will show 16 cards(4 by 4), and 8 different pictures. the user will click on two cards,and if they match they stay flipped over. if they don't, they return to their face down position. how do i make the pictures appear in different positions each time i run the program? also, how do i make it so you can only flip two cards at a time? Ive added 5 of the pictures as attachments, however it wont allow me to add all 8. the ones i didnt include were PEAR.jpg, APPLE.jpg, and BANANA.jpg. Help MUCH appreciated. Thank you



setscreen ("graphics:1201;601;cursor;nobuttonbar")
View.Set ("offscreenonly")
var picID : int

Draw.FillBox (0, 1, 1203, 600, 7)

var temp : int := Rand.Int (1, 16)
var stream : int
var word : string
var select : array 1 .. 4, 1 .. 4 of boolean
var pic : array 1 .. 16 of int
var X : int
var Y : int
var X2 : int
var Y2 : int
for r : 1 .. 4
for c : 1 .. 4

select (r, c) := true
end for
end for




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%randomizing picture array%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

pic (1) := Pic.FileNew ("ORANGE.jpg")
pic (2) := Pic.FileNew ("WATERMELON.jpg")
pic (3) := Pic.FileNew ("STRAWBERRIES.jpg")
pic (4) := Pic.FileNew ("PUMPKIN.jpg")
pic (5) := Pic.FileNew ("BANANA.jpg")
pic (6) := Pic.FileNew ("APPLE.jpg")
pic (7) := Pic.FileNew ("PEAR.jpg")
pic (8) := Pic.FileNew ("MANGO.jpg")
pic (9) := Pic.FileNew ("ORANGE.jpg")
pic (10) := Pic.FileNew ("WATERMELON.jpg")
pic (11) := Pic.FileNew ("STRAWBERRIES.jpg")
pic (12) := Pic.FileNew ("PUMPKIN.jpg")
pic (13) := Pic.FileNew ("BANANA.jpg")
pic (14) := Pic.FileNew ("APPLE.jpg")
pic (15) := Pic.FileNew ("PEAR.jpg")
pic (16) := Pic.FileNew ("MANGO.jpg")






for i : 1 .. 16

end for


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%FACE DOWN CARD%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
var counter : int := 0
var x, y, button : int
var click : boolean := true


procedure fill
var x2, x3, y2, y3 : int
y2 := 543
y3 := 420
for i : 1 .. 4
x2 := 30
x3 := 150
for j : 1 .. 4
if select (i, j) = true then
Draw.FillBox (x2, y2, x3, y3, red)
end if
if select (i, j) = false then

Draw.FillBox (x2, y2, x3, y3, white)
Pic.Draw (pic (temp), x2 + 1, y3 + 1, picCopy)


Draw.Box (x2, y2, x3, y3, 3)

end if



x2 += 130
x3 += 130
end for
y2 -= 130
y3 -= 130
end for
end fill

procedure find
var x2, y2 : int := 0
Mouse.Where (x, y, button)
for r : 1 .. 4
x2 := 0
for c : 1 .. 4
if x > 30 + x2 and x < 150 + x2 and y < 542 + y2 and y > 420 + y2 and button not= 0 then
select (r, c) := false
end if
x2 += 130
end for
y2 -= 130
end for
end find








%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%mouse locate help%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


loop
Mouse.Where (x, y, button)
Text.Locate (1, 1)
if button = 0 then
put x : 4, " ", y : 4, " button up"
else
put x : 4, " ", y : 4, " button down"
end if

find


fill





View.Update

end loop



MANGO.jpg
 Description:
 Filesize:  4.63 KB
 Viewed:  3501 Time(s)

MANGO.jpg



ORANGE.jpg
 Description:
 Filesize:  3.78 KB
 Viewed:  3502 Time(s)

ORANGE.jpg



PUMPKIN.jpg
 Description:
 Filesize:  2.74 KB
 Viewed:  3502 Time(s)

PUMPKIN.jpg



STRAWBERRIES.jpg
 Description:
 Filesize:  8.79 KB
 Viewed:  3502 Time(s)

STRAWBERRIES.jpg



WATERMELON.jpg
 Description:
 Filesize:  3.09 KB
 Viewed:  3502 Time(s)

WATERMELON.jpg


Sponsor
Sponsor
Sponsor
sponsor
noname96




PostPosted: Sun Jan 20, 2013 6:44 pm   Post subject: Re: memory card game help

Oh, and to add, right now i get one random picture throughout all the cards when i run it each time. However, what i want is a DIFFERENT picture in each card randomly arranged.

EDIT: i guess ill add the remaining pictures here.



APPLE.jpg
 Description:
 Filesize:  4.87 KB
 Viewed:  3484 Time(s)

APPLE.jpg



Pear.jpg
 Description:
 Filesize:  1.13 KB
 Viewed:  3484 Time(s)

Pear.jpg



BANANA.jpg
 Description:
 Filesize:  3.6 KB
 Viewed:  3484 Time(s)

BANANA.jpg


Tony




PostPosted: Sun Jan 20, 2013 7:48 pm   Post subject: Re: memory card game help

noname96 @ Sun Jan 20, 2013 1:03 pm wrote:

var temp : int := Rand.Int (1, 16)

you seem to already know how to get random numbers.
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
noname96




PostPosted: Sun Jan 20, 2013 9:08 pm   Post subject: Re: memory card game help

Yes, but i dont know how to translate these random numbers into pictures. i put:

temp:=Rand.Int(1,16)

%%%and then in my fill procedure%%%%

Pic.FileNew(pic(temp) x2,y3,PicCopy)

but all this does is put 1 random picture in all 16 cards. i want a random picture in each card.
DemonWasp




PostPosted: Sun Jan 20, 2013 9:15 pm   Post subject: Re: memory card game help

noname96 @ Sun Jan 20, 2013 9:08 pm wrote:
temp:=Rand.Int(1,16)


That will make temp hold a particular, single, random value. If you want different random values, you'll have to write code that uses Rand.Int repeatedly.

For example, this produces the same value 5 times:
Turing:

var temp : int := Rand.Int ( 1, 100 )
for i : 1..5
    put temp
end for


Whereas this produces 5 separately-random values (possibly the same, probably different):
Turing:

for i : 1..5
    put Rand.Int ( 1, 100 )
end for
noname96




PostPosted: Sun Jan 20, 2013 9:25 pm   Post subject: Re: memory card game help

thanks, that last one makes sense! Very Happy But how do i incorporate that into my code. i need to somehow put that into my 'fill' procedure by changing something in ---

Pic.Draw(pic(temp)x2,y3,PicCopy)

but what?

i would also need to make sure that the picture doesnt repeat itself, but one step at a time i guess Smile
Tony




PostPosted: Mon Jan 21, 2013 1:15 am   Post subject: RE:memory card game help

Lets say that you've already decided which picture is what (using Rand.Int). For example, you have:

slot #1: picture 3
slot #2: picture 5
slot #3: picture 1
... etc.

What kind of a data structure can you use to easily look up what kind of picture you would need to draw in a specific slot?

The answer to that should lead towards the design of all the other parts (such as picking out the values).
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
noname96




PostPosted: Mon Jan 21, 2013 12:29 pm   Post subject: Re: memory card game help

Alright, I got it to work thanks! But now I'm struggling to make it so that I can Only click two at a time. I tried putting a counter, and makin it add one evrytime you click, but that doesn't work for some reason...
Sponsor
Sponsor
Sponsor
sponsor
Tony




PostPosted: Mon Jan 21, 2013 1:04 pm   Post subject: RE:memory card game help

okay... in which way dose it not work?
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
noname96




PostPosted: Mon Jan 21, 2013 5:13 pm   Post subject: Re: memory card game help

the problem is that when i run it, the cards don't flip over. not even two.

this is how i coded it:

select(i,j):=false
clicktwo:=clicktwo+1


if clicktwo=2 then select(i,j):=true

if you read my code that i put in my original post youll see what select(i,j) does. basically if it is true, then the cards will be covered by a fillbox. if is false then the picture will show.
Display posts from previous:   
   Index -> Programming, Turing -> Turing Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 10 Posts ]
Jump to:   


Style:  
Search: