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

Username:   Password: 
 RegisterRegister   
 Matching card game problems.
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
lollipopgirl




PostPosted: Tue Jan 17, 2006 6:09 pm   Post subject: Matching card game problems.

k...i am done half part of my match card but I dun know how to add score to the matched card and made those wrong matched card disappear..Itz due tmr and i stilll haf no idea how to fix it..plz help and this is my program so far..


Martin says: Fixed the title. Carry on.



matchcard.txt
 Description:

Download
 Filename:  matchcard.txt
 Filesize:  5.91 KB
 Downloaded:  121 Time(s)

Sponsor
Sponsor
Sponsor
sponsor
lollipopgirl




PostPosted: Tue Jan 17, 2006 6:25 pm   Post subject: I posted it here

i posted it here

code:
var player1, player2, first : string
var mark : array 1 .. 3, 1 .. 4 of int
var winid, midx, midy, counter, z, px, py : int := 0

var p1mark := 0
setscreen ("graphics:800;500")

var x := 300
var y := 300
var colo := 38
var vx, vy := 100

proc choice
    counter += 1


end choice

for a : 1 .. 3
    for b : 1 .. 4
        mark (a, b) := 0
    end for
end for


%Play Board

for a : 1 .. 3
    for b : 1 .. 4
        drawfillbox (x, y, x + 100, y + 100, colo)
        x += vx
        colo += 2
    end for
    x := 300
    drawfillbox (x, y, x + 100, y + 100, colo)
    y -= vy
end for

drawfilloval (350, 350, 40, 40, 1)
drawfilloval (450, 350, 40, 40, 6)
drawfilloval (550, 350, 40, 40, 9)
drawfilloval (650, 350, 40, 40, 36)

drawfilloval (350, 250, 40, 40, 9)
drawfilloval (450, 250, 40, 40, 11)
drawfilloval (550, 250, 40, 40, 36)
drawfilloval (650, 250, 40, 40, 6)

drawfilloval (350, 150, 40, 40, 5)
drawfilloval (450, 150, 40, 40, 1)
drawfilloval (550, 150, 40, 40, 11)
drawfilloval (650, 150, 40, 40, 5)

delay (2000)
cls
x := 300
y := 300
colo := 38
for a : 1 .. 3
    for b : 1 .. 4
        drawfillbox (x, y, x + 100, y + 100, colo)
        x += vx
        colo += 2
    end for
    x := 300
    drawfillbox (x, y, x + 100, y + 100, colo)
    y -= vy
end for

loop
    loop

        Mouse.Where (x, y, z)
        if x >= 300 and y >= 300 and x <= 400 and y <= 400 and z = 1 and
                mark (1, 1) = 0 then
            midx := 330
            midy := 330
            choice
            drawfilloval (350, 350, 40, 40, 1)

            if counter mod 2 = 0 then
                mark (1, 1) := 2

            end if

        elsif x >= 400 and y >= 300 and x <= 500 and y <= 400 and z = 1
                and
                mark (1, 2) = 0 then
            midx := 390
            midy := 330
            choice
            drawfilloval (450, 350, 40, 40, 6)
            if mark (1, 1) = mark (3, 2) and mark (3, 2) not= 0 then
                p1mark := p1mark + 1
            end if
            if counter mod 2 = 0 then
                mark (1, 2) := 2

            end if
        elsif x >= 500 and y >= 300 and x <= 600 and y <= 400 and z = 1
                and
                mark (1, 3) = 0 then
            midx := 450
            midy := 330
            drawfilloval (550, 350, 40, 40, 9)
            choice
            if counter mod 2 = 0 then
                mark (1, 3) := 2

            end if
        elsif x >= 600 and y >= 300 and x <= 700 and y <= 400 and z = 1
                and
                mark (1, 4) = 0 then
            midx := 330
            midy := 270
            drawfilloval (650, 350, 40, 40, 36)
            choice
            if counter mod 2 = 0 then
                mark (1, 4) := 2

            end if
        elsif x >= 300 and y >= 200 and x <= 400 and y <= 300 and z = 1
                and
                mark (2, 1) = 0 then
            midx := 390
            midy := 270
            drawfilloval (350, 250, 40, 40, 9)
            choice
            if counter mod 2 = 0 then
                mark (2, 1) := 2

            end if
        elsif x >= 400 and y >= 200 and x <= 500 and y <= 300 and z = 1
                and
                mark (2, 2) = 0 then
            drawfilloval (450, 250, 40, 40, 11)
            midx := 450
            midy := 270
            choice
            if counter mod 2 = 0 then
                mark (2, 2) := 2

            end if
        elsif x >= 500 and y >= 200 and x <= 600 and y <= 300 and z = 1
                and
                mark (2, 3) = 0 then
            drawfilloval (550, 250, 40, 40, 36)
            midx := 330
            midy := 210
            choice
            if counter mod 2 = 0 then
                mark (2, 3) := 2

            end if
        elsif x >= 600 and y >= 200 and x <= 700 and y <= 300 and z = 1
                and
                mark (2, 4) = 0 then
            drawfilloval (650, 250, 40, 40, 6)
            midx := 390
            midy := 210
            choice
            if counter mod 2 = 0 then
                mark (2, 4) := 2

            end if
        elsif x >= 300 and y >= 100 and x <= 400 and y <= 200 and z = 1
                and
                mark (3, 1) = 0 then
            drawfilloval (350, 150, 40, 40, 5)
            midx := 450
            midy := 210
            choice
            if counter mod 2 = 0 then
                mark (3, 1) := 2

            end if
        elsif x >= 400 and y >= 100 and x <= 500 and y <= 200 and z = 1 and
                mark (3, 2) = 0 then
            drawfilloval (450, 150, 40, 40, 1)
            midx := 450
            midy := 210
            choice
            if counter mod 2 = 0 then
                mark (3, 2) := 2

            end if

        elsif x >= 500 and y >= 100 and x <= 600 and y <= 200 and z = 1
                and
                mark (3, 3) = 0 then
            drawfilloval (550, 150, 40, 40, 11)
            midx := 450
            midy := 210
            choice
            if counter mod 2 = 0 then
                mark (3, 3) := 2

            end if
        elsif x >= 600 and y >= 100 and x <= 700 and y <= 200 and z = 1
                and
                mark (3, 4) = 0 then
            drawfilloval (650, 150, 40, 40, 5)
            midx := 450
            midy := 210
            if counter mod 2 = 0 then
                mark (3, 4) := 2
            end if
        end if
        if mark (1, 1) = mark (3, 2) and mark (3, 2) not= 0 then

            p1mark := p1mark + 1
            locate (1, 1)
            put p1mark

        elsif
                mark (1, 1) not= mark (3, 2) and mark (1, 1) not= 0 and z
                not= 0 and mark (3, 2) = 0
                then
            drawfillbox (300, 300, 400, 400, blue)

        end if
    end loop




end loop
Delos




PostPosted: Tue Jan 17, 2006 7:14 pm   Post subject: (No subject)

OMG DON'T MAKE YOUR TITLES IN ALL CAPS. Seriously, it's a little annoying.

Anyway, what you're looking at here is a case of matching variables. I see you're using the array 'mark' to hold the values of the cards. What you'll do is randomly assign numbers to mark. For instance:

code:

mark (1) := Rand.Int (1, 4)

% or, to use the more commonly taught yet less useful procedure:

randint (mark(1), 1, 4)


Once you've done that you'll draw all your circles using the value of each element of mark to determine what colour will be used.

The main challenge will come once all the circles have been covered up. Here, you'll have to take sets of two mouse clicks. Each will open up one of the boxes. You will need to know which boxes have been opened (for your intents, this means having a second array that will hold values indicating 'open' or 'closed' - i.e. boolean). If you don't understand booleans, or don't want to, just use numbers (something like '0 means closed', '1 means open' type thing).
Once both are open, compare the values in 'mark'. If both numbers are the same, you're good.

So, to graphically summarize:

code:

% Create numbers in mark:
1  4  2  3
2  6  5  4
1  3  6  5

% Circles will be drawn accordingly, and then covered up.
% Now, the 'openOrClose' array will look like:
0  0  0  0
0  0  0  0
0  0  0  0

% Now, click on a box:
0  1  0  0
0  0  0  0
0  0  0  0
% and a second box
0  1  0  0
0  0  1  0
0  0  0  0

% This translates to:
% mark (1,2) and mark (2,3)
% which is:
% 4 and 5
% They are not equal, hence you close up the boxes again and try again.



And there you go. Try working around those ideas, and good luck.
lollipopgirl




PostPosted: Tue Jan 17, 2006 7:36 pm   Post subject: (No subject)

ok..i giave each pair a num, and i use a var named open to control the box is open or close, i am still confused about how do u do it.
Rasta Fella




PostPosted: Tue Jan 17, 2006 7:45 pm   Post subject: (No subject)

Delos wrote:
OMG DON'T MAKE YOUR TITLES IN ALL CAPS. Seriously, it's a little annoying.

Quite, hypocritical if you ask me. But Delos is right, lollipopgirl you should check and read over the Rules of this forum, that way more users will respect you.

I wonder how many people actually read the rules?..O well...
lollipopgirl




PostPosted: Tue Jan 17, 2006 8:05 pm   Post subject: (No subject)

the mousewhere did not work sumhow
it work well b4


code:
var player1, player2, first : string
var mark : array 1 .. 3, 1 .. 4 of int
var winid, midx, midy, counter, win, z, px, py : int := 0
var OPEN : int
OPEN := 0
var p1mark := 0
setscreen ("graphics:800;500")

var x := 300
var y := 300
var colo := 38
var vx, vy := 100

proc choice
    counter += 1


end choice

for a : 1 .. 3
    for b : 1 .. 4
        mark (a, b) := 0
    end for
end for


%Play Board


mark (1, 1) := 1
mark (3, 2) := 1
mark (1, 2) := 2
mark (2, 4) := 2
mark (1, 3) := 3
mark (2, 1) := 3
mark (1, 4) := 4
mark (2, 3) := 4
mark (2, 2) := 5
mark (3, 3) := 5
mark (3, 1) := 6
mark (3, 4) := 6
for a : 1 .. 3
    for b : 1 .. 4
        drawfillbox (x, y, x + 100, y + 100, colo)
        x += vx
        colo += 2
    end for
    x := 300
    drawfillbox (x, y, x + 100, y + 100, colo)
    y -= vy
end for

drawfilloval (350, 350, 40, 40, 1)
drawfilloval (450, 350, 40, 40, 6)
drawfilloval (550, 350, 40, 40, 9)
drawfilloval (650, 350, 40, 40, 36)

drawfilloval (350, 250, 40, 40, 9)
drawfilloval (450, 250, 40, 40, 11)
drawfilloval (550, 250, 40, 40, 36)
drawfilloval (650, 250, 40, 40, 6)

drawfilloval (350, 150, 40, 40, 5)
drawfilloval (450, 150, 40, 40, 1)
drawfilloval (550, 150, 40, 40, 11)
drawfilloval (650, 150, 40, 40, 5)

delay (2000)
cls
x := 300
y := 300
colo := 38
for a : 1 .. 3
    for b : 1 .. 4
        drawfillbox (x, y, x + 100, y + 100, colo)
        x += vx
        colo += 2
    end for
    x := 300
    drawfillbox (x, y, x + 100, y + 100, colo)
    y -= vy
end for



loop
    loop

        Mouse.Where (x, y, z)
        if x >= 300 and y >= 300 and x <= 400 and y <= 400 and z = 1 and
                mark (1, 1) = 0 then
            midx := 330
            midy := 330
            choice
            drawfilloval (350, 350, 40, 40, 1)
            OPEN := 1



        elsif x >= 400 and y >= 300 and x <= 500 and y <= 400 and z = 1
                and
                mark (1, 2) = 0 then
            midx := 390
            midy := 330
            choice
            drawfilloval (450, 350, 40, 40, 6)
            OPEN := 1

        elsif x >= 500 and y >= 300 and x <= 600 and y <= 400 and z = 1
                and
                mark (1, 3) = 0 then
            midx := 450
            midy := 330
            drawfilloval (550, 350, 40, 40, 9)
            choice
            OPEN := 1

        elsif x >= 600 and y >= 300 and x <= 700 and y <= 400 and z = 1
                and
                mark (1, 4) = 0 then
            midx := 330
            midy := 270
            drawfilloval (650, 350, 40, 40, 36)
            choice
            OPEN := 1

        elsif x >= 300 and y >= 200 and x <= 400 and y <= 300 and z = 1
                and
                mark (2, 1) = 0 then
            midx := 390
            midy := 270
            drawfilloval (350, 250, 40, 40, 9)
            choice
            OPEN := 1

        elsif x >= 400 and y >= 200 and x <= 500 and y <= 300 and z = 1
                and
                mark (2, 2) = 0 then
            drawfilloval (450, 250, 40, 40, 11)
            midx := 450
            midy := 270
            choice
            OPEN := 1

        elsif x >= 500 and y >= 200 and x <= 600 and y <= 300 and z = 1
                and
                mark (2, 3) = 0 then
            drawfilloval (550, 250, 40, 40, 36)
            midx := 330
            midy := 210
            choice
            OPEN := 1

        elsif x >= 600 and y >= 200 and x <= 700 and y <= 300 and z = 1
                and
                mark (2, 4) = 0 then
            drawfilloval (650, 250, 40, 40, 6)
            midx := 390
            midy := 210
            choice
            OPEN := 1

        elsif x >= 300 and y >= 100 and x <= 400 and y <= 200 and z = 1
                and
                mark (3, 1) = 0 then
            drawfilloval (350, 150, 40, 40, 5)
            midx := 450
            midy := 210
            choice
            OPEN := 1

        elsif x >= 400 and y >= 100 and x <= 500 and y <= 200 and z = 1

and
                mark (3, 2) = 0 then
            drawfilloval (450, 150, 40, 40, 1)
            midx := 450
            midy := 210
            choice
            OPEN := 1


        elsif x >= 500 and y >= 100 and x <= 600 and y <= 200 and z = 1
                and
                mark (3, 3) = 0 then
            drawfilloval (550, 150, 40, 40, 11)
            midx := 450
            midy := 210
            choice
            OPEN := 1

        elsif x >= 600 and y >= 100 and x <= 700 and y <= 200 and z = 1
                and
                mark (3, 4) = 0 then
            drawfilloval (650, 150, 40, 40, 5)
            midx := 450
            midy := 210
            OPEN := 1

        end if

    end loop




end loop


Martin says: Added code tags Smile
lollipopgirl




PostPosted: Tue Jan 17, 2006 8:06 pm   Post subject: (No subject)

the mousewhere did not work,
i m sure i work well b4

code:
var player1, player2, first : string
var mark : array 1 .. 3, 1 .. 4 of int
var winid, midx, midy, counter, win, z, px, py : int := 0
var OPEN : int
OPEN := 0
var p1mark := 0
setscreen ("graphics:800;500")

var x := 300
var y := 300
var colo := 38
var vx, vy := 100

proc choice
    counter += 1


end choice

for a : 1 .. 3
    for b : 1 .. 4
        mark (a, b) := 0
    end for
end for


%Play Board


mark (1, 1) := 1
mark (3, 2) := 1
mark (1, 2) := 2
mark (2, 4) := 2
mark (1, 3) := 3
mark (2, 1) := 3
mark (1, 4) := 4
mark (2, 3) := 4
mark (2, 2) := 5
mark (3, 3) := 5
mark (3, 1) := 6
mark (3, 4) := 6
for a : 1 .. 3
    for b : 1 .. 4
        drawfillbox (x, y, x + 100, y + 100, colo)
        x += vx
        colo += 2
    end for
    x := 300
    drawfillbox (x, y, x + 100, y + 100, colo)
    y -= vy
end for

drawfilloval (350, 350, 40, 40, 1)
drawfilloval (450, 350, 40, 40, 6)
drawfilloval (550, 350, 40, 40, 9)
drawfilloval (650, 350, 40, 40, 36)

drawfilloval (350, 250, 40, 40, 9)
drawfilloval (450, 250, 40, 40, 11)
drawfilloval (550, 250, 40, 40, 36)
drawfilloval (650, 250, 40, 40, 6)

drawfilloval (350, 150, 40, 40, 5)
drawfilloval (450, 150, 40, 40, 1)
drawfilloval (550, 150, 40, 40, 11)
drawfilloval (650, 150, 40, 40, 5)

delay (2000)
cls
x := 300
y := 300
colo := 38
for a : 1 .. 3
    for b : 1 .. 4
        drawfillbox (x, y, x + 100, y + 100, colo)
        x += vx
        colo += 2
    end for
    x := 300
    drawfillbox (x, y, x + 100, y + 100, colo)
    y -= vy
end for



loop
    loop

        Mouse.Where (x, y, z)
        if x >= 300 and y >= 300 and x <= 400 and y <= 400 and z = 1 and
                mark (1, 1) = 0 then
            midx := 330
            midy := 330
            choice
            drawfilloval (350, 350, 40, 40, 1)
            OPEN := 1



        elsif x >= 400 and y >= 300 and x <= 500 and y <= 400 and z = 1
                and
                mark (1, 2) = 0 then
            midx := 390
            midy := 330
            choice
            drawfilloval (450, 350, 40, 40, 6)
            OPEN := 1

        elsif x >= 500 and y >= 300 and x <= 600 and y <= 400 and z = 1
                and
                mark (1, 3) = 0 then
            midx := 450
            midy := 330
            drawfilloval (550, 350, 40, 40, 9)
            choice
            OPEN := 1

        elsif x >= 600 and y >= 300 and x <= 700 and y <= 400 and z = 1
                and
                mark (1, 4) = 0 then
            midx := 330
            midy := 270
            drawfilloval (650, 350, 40, 40, 36)
            choice
            OPEN := 1

        elsif x >= 300 and y >= 200 and x <= 400 and y <= 300 and z = 1
                and
                mark (2, 1) = 0 then
            midx := 390
            midy := 270
            drawfilloval (350, 250, 40, 40, 9)
            choice
            OPEN := 1

        elsif x >= 400 and y >= 200 and x <= 500 and y <= 300 and z = 1
                and
                mark (2, 2) = 0 then
            drawfilloval (450, 250, 40, 40, 11)
            midx := 450
            midy := 270
            choice
            OPEN := 1

        elsif x >= 500 and y >= 200 and x <= 600 and y <= 300 and z = 1
                and
                mark (2, 3) = 0 then
            drawfilloval (550, 250, 40, 40, 36)
            midx := 330
            midy := 210
            choice
            OPEN := 1

        elsif x >= 600 and y >= 200 and x <= 700 and y <= 300 and z = 1
                and
                mark (2, 4) = 0 then
            drawfilloval (650, 250, 40, 40, 6)
            midx := 390
            midy := 210
            choice
            OPEN := 1

        elsif x >= 300 and y >= 100 and x <= 400 and y <= 200 and z = 1
                and
                mark (3, 1) = 0 then
            drawfilloval (350, 150, 40, 40, 5)
            midx := 450
            midy := 210
            choice
            OPEN := 1

        elsif x >= 400 and y >= 100 and x <= 500 and y <= 200 and z = 1

and
                mark (3, 2) = 0 then
            drawfilloval (450, 150, 40, 40, 1)
            midx := 450
            midy := 210
            choice
            OPEN := 1


        elsif x >= 500 and y >= 100 and x <= 600 and y <= 200 and z = 1
                and
                mark (3, 3) = 0 then
            drawfilloval (550, 150, 40, 40, 11)
            midx := 450
            midy := 210
            choice
            OPEN := 1

        elsif x >= 600 and y >= 100 and x <= 700 and y <= 200 and z = 1
                and
                mark (3, 4) = 0 then
            drawfilloval (650, 150, 40, 40, 5)
            midx := 450
            midy := 210
            OPEN := 1

        end if

    end loop




end loop


Delos




PostPosted: Tue Jan 17, 2006 8:31 pm   Post subject: (No subject)

I guess you didn't quite understand what I was trying to say. You don't want a single variable for 'OPEN'. You want an array thereof. This array is to match the array you already have for the circles, hence it will be able to tell you what state each box is in (open or closed, 1 or 0).
Now you can use those values to determine which boxes have been opened, and hence compare the correct set of numbers. If they match, you could (for example) set their values in 'OPEN' to '2', or '-1', or '32' or some value to indicate that they are no longer in play. If they do not match, simply close them (set their 'OPEN' value to 0 and redraw the box over them), and start the click-check again.
Sponsor
Sponsor
Sponsor
sponsor
lollipopgirl




PostPosted: Tue Jan 17, 2006 8:42 pm   Post subject: (No subject)

ok..i got it but what is the problem with my mousewhere...
code:
var player1, player2, first : string
var mark : array 1 .. 3, 1 .. 4 of int
var winid, midx, midy, counter, z, px, py : int := 0
var OPEN : array 1 .. 3, 1 .. 4 of int

var p1mark := 0
setscreen ("graphics:800;500")

var x := 300
var y := 300
var colo := 38
var vx, vy := 100

proc choice
    counter += 1


end choice

for a : 1 .. 3
    for b : 1 .. 4
        mark (a, b) := 0
    end for
end for


%Play Board
OPEN (1, 1) := 0
OPEN (1, 2) := 0
OPEN (1, 3) := 0
OPEN (1, 4) := 0
OPEN (2, 1) := 0
OPEN (2, 2) := 0
OPEN (2, 3) := 0
OPEN (2, 4) := 0
OPEN (3, 1) := 0
OPEN (3, 2) := 0
OPEN (3, 3) := 0
OPEN (3, 4) := 0
mark (1, 1) := 1
mark (3, 2) := 1
mark (1, 2) := 2
mark (2, 4) := 2
mark (1, 3) := 3
mark (2, 1) := 3
mark (1, 4) := 4
mark (2, 3) := 4
mark (2, 2) := 5
mark (3, 3) := 5
mark (3, 1) := 6
mark (3, 4) := 6
for a : 1 .. 3
    for b : 1 .. 4
        drawfillbox (x, y, x + 100, y + 100, colo)
        x += vx
        colo += 2
    end for
    x := 300
    drawfillbox (x, y, x + 100, y + 100, colo)
    y -= vy
end for

drawfilloval (350, 350, 40, 40, 1)
drawfilloval (450, 350, 40, 40, 6)
drawfilloval (550, 350, 40, 40, 9)
drawfilloval (650, 350, 40, 40, 36)

drawfilloval (350, 250, 40, 40, 9)
drawfilloval (450, 250, 40, 40, 11)
drawfilloval (550, 250, 40, 40, 36)
drawfilloval (650, 250, 40, 40, 6)

drawfilloval (350, 150, 40, 40, 5)
drawfilloval (450, 150, 40, 40, 1)
drawfilloval (550, 150, 40, 40, 11)
drawfilloval (650, 150, 40, 40, 5)
delay (2000)
cls
x := 300
y := 300
colo := 38
for a : 1 .. 3
    for b : 1 .. 4
        drawfillbox (x, y, x + 100, y + 100, colo)
        x += vx
        colo += 2
    end for
    x := 300
    drawfillbox (x, y, x + 100, y + 100, colo)
    y -= vy
end for



loop

    Mouse.Where (x, y, z)
    if x >= 300 and y >= 300 and x <= 400 and y <= 400 and z = 1 and
            mark (1, 1) = 0 then
        midx := 330
        midy := 330
        choice
        drawfilloval (350, 350, 40, 40, 1)
        OPEN (1, 1) := 1



    elsif x >= 400 and y >= 300 and x <= 500 and y <= 400 and z = 1
            and
            mark (1, 2) = 0 then
        midx := 390
        midy := 330
        choice
        drawfilloval (450, 350, 40, 40, 6)
        OPEN (1, 2) := 1

    elsif x >= 500 and y >= 300 and x <= 600 and y <= 400 and z = 1
            and
            mark (1, 3) = 0 then
        midx := 450
        midy := 330
        drawfilloval (550, 350, 40, 40, 9)
        choice
        OPEN (1, 3) := 1

    elsif x >= 600 and y >= 300 and x <= 700 and y <= 400 and z = 1
            and
            mark (1, 4) = 0 then
        midx := 330
        midy := 270
        drawfilloval (650, 350, 40, 40, 36)
        choice
        OPEN (1, 4) := 1

    elsif x >= 300 and y >= 200 and x <= 400 and y <= 300 and z = 1
            and
            mark (2, 1) = 0 then
        midx := 390
        midy := 270
        drawfilloval (350, 250, 40, 40, 9)
        choice
        OPEN (2, 1) := 1

    elsif x >= 400 and y >= 200 and x <= 500 and y <= 300 and z = 1
            and
            mark (2, 2) = 0 then
        drawfilloval (450, 250, 40, 40, 11)
        midx := 450
        midy := 270
        choice
        OPEN (2, 2) := 1

    elsif x >= 500 and y >= 200 and x <= 600 and y <= 300 and z = 1
            and
            mark (2, 3) = 0 then
        drawfilloval (550, 250, 40, 40, 36)
        midx := 330
        midy := 210
        choice
        OPEN (2, 3) := 1

    elsif x >= 600 and y >= 200 and x <= 700 and y <= 300 and z = 1
            and
            mark (2, 4) = 0 then
        drawfilloval (650, 250, 40, 40, 6)
        midx := 390
        midy := 210
        choice
        OPEN (2, 4) := 1

    elsif x >= 300 and y >= 100 and x <= 400 and y <= 200 and z = 1
            and
            mark (3, 1) = 0 then
        drawfilloval (350, 150, 40, 40, 5)
        midx := 450
        midy := 210
        choice
        OPEN (3, 1) := 1

    elsif x >= 400 and y >= 100 and x <= 500 and y <= 200 and z = 1 and
            mark (3, 2) = 0 then
        drawfilloval (450, 150, 40, 40, 1)
        midx := 450
        midy := 210
        choice
        OPEN (3, 2) := 1



    elsif x >= 500 and y >= 100 and x <= 600 and y <= 200 and z = 1
            and
            mark (3, 3) = 0 then
        drawfilloval (550, 150, 40, 40, 11)
        midx := 450
        midy := 210
        choice
        OPEN (3, 3) := 1


    elsif x >= 600 and y >= 100 and x <= 700 and y <= 200 and z = 1
            and
            mark (3, 4) = 0 then
        drawfilloval (650, 150, 40, 40, 5)
        midx := 450
        midy := 210
        OPEN (3, 4) := 1


    end if
    if mark (1, 1) = mark (3, 2) and
            OPEN (1, 1) not= 0 and OPEN (3, 2) not= 0 then
        p1mark := p1mark + 1
    elsif
            OPEN (1, 1) = 1 then
        drawfillbox (300, 300, 400, 400, blue)

    end if




end loop
lollipopgirl




PostPosted: Tue Jan 17, 2006 8:55 pm   Post subject: (No subject)

i fixed my mousewhere but my matched pair wont add up score is this command right?
if mark (1, 1) = mark (3, 2) and
OPEN (1, 1) not= 0 and OPEN (3, 2) not= 0 then
p1mark := p1mark + 1
put p1mark
elsif
OPEN (1, 1) = 1 then
drawfillbox (300, 300, 400, 400, blue)
end if
Delos




PostPosted: Tue Jan 17, 2006 9:16 pm   Post subject: (No subject)

You're getting the idea now.

- Remember that you'll want to be able to check the status of *all* boxes, not just (1,1) and (3,2). So basically, you'll be using the values of OPEN to determine which boxes are open, then compare the values in 'mark' of those specific values.
- Don't forget to reset all values of OPEN if the player does not find a match (do this with two for loops (a nested for loop) instead of manually).
- Also, not too sure what the procedure 'choice' is supposed to be doing
lollipopgirl




PostPosted: Wed Jan 18, 2006 10:19 am   Post subject: (No subject)

I got what ur r saying but i dun know how to do it in command.. Sad
lollipopgirl




PostPosted: Wed Jan 18, 2006 10:40 am   Post subject: (No subject)

i did this but it wont work..

code:
if OPEN (1, 1) := 1 or OPEN (1, 2) := 1 or OPEN (1, 3) := 1 or OPEN (1, 4) := 1 or OPEN (2, 1) := 1 or OPEN (2, 2) := 1 or
            OPEN (2, 3) := 1 or OPEN (2, 4) := 1 or OPEN (3, 1) := 1 or OPEN (3, 2) := 1 or OPEN (3, 3) := 1 or OPEN (3, 4) := 1 and
            OPEN (1, 1) := 1 or OPEN (1, 2) := 1 or OPEN (1, 3) := 1 or OPEN (1, 4) := 1 or OPEN (2, 1) := 1 or OPEN (2, 2) := 1 or
            OPEN (2, 3) := 1 or OPEN (2, 4) := 1 or OPEN (3, 1) := 1 or OPEN (3, 2) := 1 or OPEN (3, 3) := 1 or OPEN (3, 4) := 1 and
            mark (1, 1) := 1
        mark (3, 2) := 1
        mark (1, 2) := 2 or
            mark (2, 4) := 2
        mark (1, 3) := 3 or
            mark (2, 1) := 3
        mark (1, 4) := 4 or
            mark (2, 3) := 4
        mark (2, 2) := 5 or
            mark (3, 3) := 5
        mark (3, 1) := 6 or
            mark (3, 4) := 6 then

        p1mark := p1mark + 1

        put p1mark

    end if
lollipopgirl




PostPosted: Wed Jan 18, 2006 10:48 am   Post subject: (No subject)

code:
var player1, player2, first : string
var mark : array 1 .. 3, 1 .. 4 of int
var winid, midx, midy, counter, z, px, py : int := 0
var OPEN : array 1 .. 3, 1 .. 4 of int

var p1mark := 0
setscreen ("graphics:800;500")

var x := 300
var y := 300
var colo := 38
var vx, vy := 100



for a : 1 .. 3
    for b : 1 .. 4
        mark (a, b) := 0
    end for
end for


%Play Board
OPEN (1, 1) := 0
OPEN (1, 2) := 0
OPEN (1, 3) := 0
OPEN (1, 4) := 0
OPEN (2, 1) := 0
OPEN (2, 2) := 0
OPEN (2, 3) := 0
OPEN (2, 4) := 0
OPEN (3, 1) := 0
OPEN (3, 2) := 0
OPEN (3, 3) := 0
OPEN (3, 4) := 0
mark (1, 1) := 1
mark (3, 2) := 1
mark (1, 2) := 2
mark (2, 4) := 2
mark (1, 3) := 3
mark (2, 1) := 3
mark (1, 4) := 4
mark (2, 3) := 4
mark (2, 2) := 5
mark (3, 3) := 5
mark (3, 1) := 6
mark (3, 4) := 6
for a : 1 .. 3
    for b : 1 .. 4
        drawfillbox (x, y, x + 100, y + 100, colo)
        x += vx
        colo += 2
    end for
    x := 300
    drawfillbox (x, y, x + 100, y + 100, colo)
    y -= vy
end for

drawfilloval (350, 350, 40, 40, 1)
drawfilloval (450, 350, 40, 40, 6)
drawfilloval (550, 350, 40, 40, 9)
drawfilloval (650, 350, 40, 40, 36)

drawfilloval (350, 250, 40, 40, 9)
drawfilloval (450, 250, 40, 40, 11)
drawfilloval (550, 250, 40, 40, 36)
drawfilloval (650, 250, 40, 40, 6)

drawfilloval (350, 150, 40, 40, 5)
drawfilloval (450, 150, 40, 40, 1)
drawfilloval (550, 150, 40, 40, 11)
drawfilloval (650, 150, 40, 40, 5)
delay (2000)
cls
x := 300
y := 300
colo := 38
for a : 1 .. 3
    for b : 1 .. 4
        drawfillbox (x, y, x + 100, y + 100, colo)
        x += vx
        colo += 2
    end for
    x := 300
    drawfillbox (x, y, x + 100, y + 100, colo)
    y -= vy
end for



loop
    loop
        mousewhere (x, y, z)

        if x >= 300 and y >= 300 and x <= 400 and y <= 400 and z = 1 then
            midx := 330
            midy := 330

            drawfilloval (350, 350, 40, 40, 1)
            OPEN (1, 1) := 1



        elsif x >= 400 and y >= 300 and x <= 500 and y <= 400 and z = 1
                then
            midx := 390
            midy := 330

            drawfilloval (450, 350, 40, 40, 6)
            OPEN (1, 2) := 1

        elsif x >= 500 and y >= 300 and x <= 600 and y <= 400 and z = 1
                then
            midx := 450
            midy := 330
            drawfilloval (550, 350, 40, 40, 9)

            OPEN (1, 3) := 1

        elsif x >= 600 and y >= 300 and x <= 700 and y <= 400 and z = 1
                then
            midx := 330
            midy := 270
            drawfilloval (650, 350, 40, 40, 36)

            OPEN (1, 4) := 1

        elsif x >= 300 and y >= 200 and x <= 400 and y <= 300 and z = 1
                then
            midx := 390
            midy := 270
            drawfilloval (350, 250, 40, 40, 9)

            OPEN (2, 1) := 1

        elsif x >= 400 and y >= 200 and x <= 500 and y <= 300 and z = 1
                then
            drawfilloval (450, 250, 40, 40, 11)
            midx := 450
            midy := 270

            OPEN (2, 2) := 1

        elsif x >= 500 and y >= 200 and x <= 600 and y <= 300 and z = 1
                then
            drawfilloval (550, 250, 40, 40, 36)
            midx := 330
            midy := 210

            OPEN (2, 3) := 1

        elsif x >= 600 and y >= 200 and x <= 700 and y <= 300 and z = 1
                then
            drawfilloval (650, 250, 40, 40, 6)
            midx := 390
            midy := 210

            OPEN (2, 4) := 1

        elsif x >= 300 and y >= 100 and x <= 400 and y <= 200 and z = 1
                then
            drawfilloval (350, 150, 40, 40, 5)
            midx := 450
            midy := 210

            OPEN (3, 1) := 1

        elsif x >= 400 and y >= 100 and x <= 500 and y <= 200 and z = 1 then
            drawfilloval (450, 150, 40, 40, 1)
            midx := 450
            midy := 210

            OPEN (3, 2) := 1



        elsif x >= 500 and y >= 100 and x <= 600 and y <= 200 and z = 1
                then
            drawfilloval (550, 150, 40, 40, 11)
            midx := 450
            midy := 210

            OPEN (3, 3) := 1


        elsif x >= 600 and y >= 100 and x <= 700 and y <= 200 and z = 1
                then
            drawfilloval (650, 150, 40, 40, 5)
            midx := 450
            midy := 210
            OPEN (3, 4) := 1


        end if
    end loop
    if mark (1, 1) = mark (3, 2) and
            OPEN (1, 1) not= 0 and OPEN (3, 2) not= 0 then
        p1mark := p1mark + 1
        put p1mark
    elsif
            OPEN (1, 1) = 1 then
        drawfillbox (300, 300, 400, 400, blue)
    end if


        if OPEN (1, 1) not= 0 or OPEN (1, 2) not= 0 or OPEN (1, 3) not= 0 or OPEN (1, 4) not= 0 or OPEN (2, 1) not= 0 or OPEN (2, 2) not= 0 or
                OPEN (2, 3) not= 0 or OPEN (2, 4) not= 0 or OPEN (3, 1) not= 0 or OPEN (3, 2) not= 0 or OPEN (3, 3) not= 0 or OPEN (3, 4) not= 0 and
                mark (1, 1) = mark (3, 2) or
                mark (1, 2) = mark (2, 4) or
                mark (1, 3) = mark (2, 1) or
                mark (1, 4) = mark (2, 3) or
                mark (2, 2) = mark (3, 3) or
                mark (3, 1) = mark (3, 4) then


            p1mark := p1mark + 1
            put p1mark

        end if
 
end loop



newest code! Shocked
Albrecd




PostPosted: Wed Jan 18, 2006 5:30 pm   Post subject: (No subject)

What you could do to make them disapear again is have a counter that one is added to every time a card is turned over, and if it = two then the program checks to see if the two circles are the same, and if they are not the same, it draws their respective boxes back on top of them.
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  [ 15 Posts ]
Jump to:   


Style:  
Search: