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

Username:   Password: 
 RegisterRegister   
 Comparing and counting cards
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
gilbamy




PostPosted: Tue Jun 20, 2006 7:23 am   Post subject: Comparing and counting cards

what i need to do is have my cards compare then see who wins and those cards go in to the deck and i need to have the count for how many cards each player has .
code:
%Amy Gilbank
%June 1 2006
%war1.t
%a game of war
var winMain : int := Window.Open ("graphics:800;600")
var font1, font2, font3, font4, font5 : int
var Randomcard, x1, x2, y1, y2, y3, y4, x3, x4, button : int
var h,P1,P2  :string
var p1value, p2value, deck, deckvalue, decktest, cards, cardvalue, p1, checkdeck, p2 : array 1 .. 52 of int
%The mus procedure is my music for my logo.
process mus
    Music.Play ("2acfega4c4c4cfgeaeg2d4adfe2fg")
end mus
%This is my logo where the lines and squeres appear and music plays .
procedure logo
    drawfillbox (0, 600, 800, 0, 7)
    font3 := Font.New ("Allegro BT:25:")
    Font.Draw ("Sabriel", 320, 260, font3, 0)
    fork mus
    delay (500)
    drawbox (300, 480, 360, 420, 0)
    delay (500)
    drawline (300, 480, 360, 340, 0)
    delay (500)
    drawline (300, 420, 360, 280, 0)
    delay (500)
    drawline (360, 420, 420, 280, 0)
    delay (500)
    drawline (360, 480, 420, 340, 0)
    delay (500)
    drawbox (360, 340, 420, 280, 0)
    delay (500)
    drawline (420, 240, 340, 140, 0)
    delay (500)
    drawline (420, 240, 540, 240, 0)
    delay (500)
    drawline (540, 240, 500, 140, 0)
    delay (500)
    drawline (340, 140, 500, 140, 0)
    delay (500)
    drawline (420, 240, 340, 140, 0)
    delay (500)
    drawline (500, 140, 420, 280, 0)
    delay (500)
    drawline (420, 240, 420, 280, 0)
    delay (500)
    drawline (340, 140, 420, 280, 0)
    delay (500)
    drawline (540, 240, 420, 280, 0)
    delay (500)
end logo
procedure intro
    font4 := Font.New ("Allegro BT:50:")
    font5 := Font.New ("Allegro BT:25:")
    x3 := 360
    y3 := 455
    x4 := 475
    y4 := 500
    drawfillbox (0, 600, 800, 0, 19)
    drawfillbox (360, 455, 475, 500, 105)
    drawfillbox (520, 420, 320, 375, 105)
    drawfillbox (350, 330, 480, 295, 105)
    drawfillbox (365, 225, 455, 260, 105)
    Font.Draw ("War!", 340, 530, font4, 56)
    Font.Draw ("Play", 385, 460, font5, 56)
    Font.Draw ("Instructions", 335, 380, font5, 56)
    Font.Draw ("Options", 365, 300, font5, 56)
    Font.Draw ("Quit", 380, 230, font5, 56)
    %This  is where if i  click on the play button it will bring me to my spot to decide who goes first.
    loop
        Mouse.Where (x3, y3, button)
        if (x3 > x4 and x3 < x4) and (y3 > y4 and y3 < y4) then
            button := 1
        end if
        if button = 1 then
            locatexy (maxx div 4, maxy div 2)
            delay (500)
            cls
        end if
    end loop

end intro
%This code goes between the number 1 and 2 which means 1 is p1 and 2 is p2 the last number that is chossen is who goes first its random .
procedure wgf
    var Randnum : int
    for i : 1 .. 7
        Randnum := Rand.Int (1, 2)
        put Randnum
    end for
    if Randnum = 2 then
        put "Player two goes first"
    elsif Randnum = 1 then
        put "Player one goes first"
    end if
end wgf
procedure war
    %my war layout like my background boxs and my fonts
    drawfillbox (0, 600, 800, 0, 199)
    %Battle area
    drawfillbox (20, 100, 95, 200, 78)
    drawfillbox (120, 100, 195, 200, 78)
    drawfillbox (220, 100, 295, 200, 78)
    drawfillbox (320, 100, 395, 200, 78)
    drawfillbox (420, 100, 495, 200, 78)
    drawfillbox (520, 100, 595, 200, 78)
    drawfillbox (620, 100, 695, 200, 78)
    drawfillbox (720, 100, 795, 200, 78)
    %Deck and cards spot
    drawfillbox (200, 400, 275, 500, 79)
    drawfillbox (500, 400, 575, 500, 80)
    drawfillbox (300, 400, 375, 500, 0)
    drawfillbox (400, 400, 475, 500, 0)
    %Scoreboard and card number spots
    drawfillbox (320, 360, 360, 380, 0)
    drawfillbox (420, 360, 460, 380, 0)
    %Fonts
    font1 := Font.New ("Vineta BT:45: bold,underline")
    Font.Draw ("WAR!", 260, 550, font1, red)
    font2 := Font.New ("New Times Roman :11:")
    Font.Draw ("Player 1", 300, 310, font2, 27)
    Font.Draw ("Player 2", 410, 310, font2, 27)
    Font.Draw ("Deck", 220, 510, font2, 27)
    Font.Draw ("Deck", 520, 510, font2, 27)
    %Cards
    %Inserting my cards into my program
    cards (1) := Pic.FileNew ("10C.jpg")
    cards (2) := Pic.FileNew ("10D.jpg")
    cards (3) := Pic.FileNew ("10H.jpg")
    cards (4) := Pic.FileNew ("10S.jpg")
    cards (5) := Pic.FileNew ("2C.jpg")
    cards (6) := Pic.FileNew ("2D.jpg")
    cards (7) := Pic.FileNew ("2H.jpg")
    cards (8) := Pic.FileNew ("2S.jpg")
    cards (9) := Pic.FileNew ("3C.jpg")
    cards (10) := Pic.FileNew ("3D.jpg")
    cards (11) := Pic.FileNew ("3H.jpg")
    cards (12) := Pic.FileNew ("3S.jpg")
    cards (13) := Pic.FileNew ("4C.jpg")
    cards (14) := Pic.FileNew ("4D.jpg")
    cards (15) := Pic.FileNew ("4H.jpg")
    cards (16) := Pic.FileNew ("4S.jpg")
    cards (17) := Pic.FileNew ("5C.jpg")
    cards (18) := Pic.FileNew ("5D.jpg")
    cards (19) := Pic.FileNew ("5H.jpg")
    cards (20) := Pic.FileNew ("5S.jpg")
    cards (21) := Pic.FileNew ("6C.jpg")
    cards (22) := Pic.FileNew ("6D.jpg")
    cards (23) := Pic.FileNew ("6H.jpg")
    cards (24) := Pic.FileNew ("6S.jpg")
    cards (25) := Pic.FileNew ("7C.jpg")
    cards (26) := Pic.FileNew ("7D.jpg")
    cards (27) := Pic.FileNew ("7H.jpg")
    cards (28) := Pic.FileNew ("7S.jpg")
    cards (29) := Pic.FileNew ("8C.jpg")
    cards (30) := Pic.FileNew ("8D.jpg")
    cards (31) := Pic.FileNew ("8H.jpg")
    cards (32) := Pic.FileNew ("8S.jpg")
    cards (33) := Pic.FileNew ("9C.jpg")
    cards (34) := Pic.FileNew ("9D.jpg")
    cards (35) := Pic.FileNew ("9H.jpg")
    cards (36) := Pic.FileNew ("9S.jpg")
    cards (37) := Pic.FileNew ("QC.jpg")
    cards (38) := Pic.FileNew ("QD.jpg")
    cards (39) := Pic.FileNew ("QH.jpg")
    cards (40) := Pic.FileNew ("QS.jpg")
    cards (41) := Pic.FileNew ("AC.jpg")
    cards (42) := Pic.FileNew ("AD.jpg")
    cards (43) := Pic.FileNew ("AH.jpg")
    cards (44) := Pic.FileNew ("AS.jpg")
    cards (45) := Pic.FileNew ("JC.jpg")
    cards (46) := Pic.FileNew ("JD.jpg")
    cards (47) := Pic.FileNew ("JH.jpg")
    cards (48) := Pic.FileNew ("JS.jpg")
    cards (49) := Pic.FileNew ("KC.jpg")
    cards (50) := Pic.FileNew ("KD.jpg")
    cards (51) := Pic.FileNew ("KH.jpg")
    cards (52) := Pic.FileNew ("KS.jpg")
    %card values
    cardvalue (1) := 10
    cardvalue (2) := 10
    cardvalue (3) := 10
    cardvalue (4) := 10
    cardvalue (5) := 2
    cardvalue (6) := 2
    cardvalue (7) := 2
    cardvalue (8) := 2
    cardvalue (9) := 3
    cardvalue (10) := 3
    cardvalue (11) := 3
    cardvalue (12) := 3
    cardvalue (13) := 4
    cardvalue (14) := 4
    cardvalue (15) := 4
    cardvalue (16) := 4
    cardvalue (17) := 5
    cardvalue (18) := 5
    cardvalue (19) := 5
    cardvalue (20) := 5
    cardvalue (21) := 6
    cardvalue (22) := 6
    cardvalue (23) := 6
    cardvalue (24) := 6
    cardvalue (25) := 7
    cardvalue (26) := 7
    cardvalue (27) := 7
    cardvalue (28) := 7
    cardvalue (29) := 8
    cardvalue (30) := 8
    cardvalue (31) := 8
    cardvalue (32) := 8
    cardvalue (33) := 9
    cardvalue (34) := 9
    cardvalue (35) := 9
    cardvalue (36) := 9
    cardvalue (37) := 12
    cardvalue (38) := 12
    cardvalue (39) := 12
    cardvalue (40) := 12
    cardvalue (41) := 14
    cardvalue (42) := 14
    cardvalue (43) := 14
    cardvalue (44) := 14
    cardvalue (45) := 11
    cardvalue (46) := 11
    cardvalue (47) := 11
    cardvalue (48) := 11
    cardvalue (49) := 13
    cardvalue (50) := 13
    cardvalue (51) := 13
    cardvalue (52) := 13
    %Dealing the cards to P1 and P2
    x1 := 300
    y1 := 400
    x2 := 400
    y2 := 400

    for i : 1 .. 52
        checkdeck (i) := 1
    end for

    for i : 1 .. 26
        loop
            Randomcard := Rand.Int (1, 52)
            exit when checkdeck (Randomcard) = 1
        end loop
        checkdeck (Randomcard) := 0
        p1 (i) := cards (Randomcard)
    end for

    for i : 1 .. 26
        loop
            Randomcard := Rand.Int (1, 52)
            exit when checkdeck (Randomcard) = 1
        end loop
        checkdeck (Randomcard) := 1
        p2 (i) := cards (Randomcard)
    end for
    for i : 1 .. 26
        Pic.Draw (p1 (i), x1, y1, 0)
        Pic.Draw (p2 (i), x2, y2, 0)
    end for
 loop
    put "Please enter h  if wanting to see players hands:" get h
            var winMain : int := Window.Open ("graphics:800;600")
            put "Please enter P1 or P2 to view hands :.."get P1,P2
            cls
          end loop
 
end war

war
Sponsor
Sponsor
Sponsor
sponsor
Clayton




PostPosted: Tue Jun 20, 2006 8:54 am   Post subject: (No subject)

y not just use your values for the cards? just have a simple if that checks the values? if the card is greater than the other, you win, if its smaller u lose, if its a tie initiate a war Very Happy
Guest




PostPosted: Tue Jun 20, 2006 9:05 am   Post subject: (No subject)

Yes. An if statment works as follows:
code:

var guess, num : int
put "Guess my number bewteen 1 and 10: " .. %the .. continues next statment on same line
get guess %stores the guess

num := Rand.Int (1, 10) %num is now a random interger from 1-10
if guess > num then %checks if your guess is greater than the random int
    put "Guess is too high! " ..
elsif guess < num then %checks if guess is lower than rand int
    put "Guess is too low! " ..
else %anything else that happens will excecute (such as your guess matching the Rand.Int)
    put "Answer must be correct! " ..
end if

put "Answer is ", num
gilbamy




PostPosted: Tue Jun 20, 2006 1:08 pm   Post subject: (No subject)

okay well what i need to do is have the number of the card that its worth then it compare it and who has the highest gets those cards so i am kinda lost with this hole thing
Delos




PostPosted: Tue Jun 20, 2006 3:34 pm   Post subject: (No subject)

vahnx's code essentially does that, though in a convoluted manner. He has provided you with the tools with which you'll be able to solve this problem. Have a look at what he's coded, run it a few times, play around with it, pretend that the values you're inputting are values of cards and see where that line of thinking takes you.
Once you get an idea of how you should be approaching your own code, take a look at his and notice the way he's set it up - what sort of comparisons he's made, how he determines which numbers are high and low, etc etc.
gilbamy




PostPosted: Wed Jun 21, 2006 7:12 pm   Post subject: (No subject)

this is what i have so far but i am not quite sure on how do the one where bothe cards are tied cause then it goes into a war thing wioth the cards .
code:
%War code
var winMain : int := Window.Open ("graphics:800;600")
var font1, font2, font3, font4, font5 : int
var h, P1, P2 : string
var Randomcard, x1, x2, y1, y2, button, p1next, p2next : int
var deck, deckvalue, decktest, cards, cardvalue, p1, checkdeck, p2 : array 1 .. 52 of int
var p1value, p2value : array 1 .. 52 of int
var key : string (1)
procedure start
    %my war layout like my background boxs and my fonts
    drawfillbox (0, 600, 800, 0, 199)
    %Battle area
    drawfillbox (20, 100, 95, 200, 78)
    drawfillbox (120, 100, 195, 200, 78)
    drawfillbox (220, 100, 295, 200, 78)
    drawfillbox (320, 100, 395, 200, 78)
    drawfillbox (420, 100, 495, 200, 78)
    drawfillbox (520, 100, 595, 200, 78)
    drawfillbox (620, 100, 695, 200, 78)
    drawfillbox (720, 100, 795, 200, 78)
    %Deck and cards spot
    drawfillbox (200, 400, 275, 500, 79)
    drawfillbox (500, 400, 575, 500, 80)
    drawfillbox (300, 400, 375, 500, 0)
    drawfillbox (400, 400, 475, 500, 0)
    %Scoreboard and card number spots
    drawfillbox (320, 360, 360, 380, 0)
    drawfillbox (420, 360, 460, 380, 0)
    %Fonts
    font1 := Font.New ("Vineta BT:45: bold,underline")
    font2 := Font.New ("New Times Roman :11:")
    Font.Draw ("WAR!", 260, 550, font1, red)
    Font.Draw ("Player 1", 300, 310, font2, 27)
    Font.Draw ("Player 2", 410, 310, font2, 27)
    Font.Draw ("Deck", 220, 510, font2, 27)
    Font.Draw ("Deck", 520, 510, font2, 27)
    %Cards
    %Inserting my cards into my program
    cards (1) := Pic.FileNew ("10C.jpg")
    cards (2) := Pic.FileNew ("10D.jpg")
    cards (3) := Pic.FileNew ("10H.jpg")
    cards (4) := Pic.FileNew ("10S.jpg")
    cards (5) := Pic.FileNew ("2C.jpg")
    cards (6) := Pic.FileNew ("2D.jpg")
    cards (7) := Pic.FileNew ("2H.jpg")
    cards (8) := Pic.FileNew ("2S.jpg")
    cards (9) := Pic.FileNew ("3C.jpg")
    cards (10) := Pic.FileNew ("3D.jpg")
    cards (11) := Pic.FileNew ("3H.jpg")
    cards (12) := Pic.FileNew ("3S.jpg")
    cards (13) := Pic.FileNew ("4C.jpg")
    cards (14) := Pic.FileNew ("4D.jpg")
    cards (15) := Pic.FileNew ("4H.jpg")
    cards (16) := Pic.FileNew ("4S.jpg")
    cards (17) := Pic.FileNew ("5C.jpg")
    cards (18) := Pic.FileNew ("5D.jpg")
    cards (19) := Pic.FileNew ("5H.jpg")
    cards (20) := Pic.FileNew ("5S.jpg")
    cards (21) := Pic.FileNew ("6C.jpg")
    cards (22) := Pic.FileNew ("6D.jpg")
    cards (23) := Pic.FileNew ("6H.jpg")
    cards (24) := Pic.FileNew ("6S.jpg")
    cards (25) := Pic.FileNew ("7C.jpg")
    cards (26) := Pic.FileNew ("7D.jpg")
    cards (27) := Pic.FileNew ("7H.jpg")
    cards (28) := Pic.FileNew ("7S.jpg")
    cards (29) := Pic.FileNew ("8C.jpg")
    cards (30) := Pic.FileNew ("8D.jpg")
    cards (31) := Pic.FileNew ("8H.jpg")
    cards (32) := Pic.FileNew ("8S.jpg")
    cards (33) := Pic.FileNew ("9C.jpg")
    cards (34) := Pic.FileNew ("9D.jpg")
    cards (35) := Pic.FileNew ("9H.jpg")
    cards (36) := Pic.FileNew ("9S.jpg")
    cards (37) := Pic.FileNew ("QC.jpg")
    cards (38) := Pic.FileNew ("QD.jpg")
    cards (39) := Pic.FileNew ("QH.jpg")
    cards (40) := Pic.FileNew ("QS.jpg")
    cards (41) := Pic.FileNew ("AC.jpg")
    cards (42) := Pic.FileNew ("AD.jpg")
    cards (43) := Pic.FileNew ("AH.jpg")
    cards (44) := Pic.FileNew ("AS.jpg")
    cards (45) := Pic.FileNew ("JC.jpg")
    cards (46) := Pic.FileNew ("JD.jpg")
    cards (47) := Pic.FileNew ("JH.jpg")
    cards (48) := Pic.FileNew ("JS.jpg")
    cards (49) := Pic.FileNew ("KC.jpg")
    cards (50) := Pic.FileNew ("KD.jpg")
    cards (51) := Pic.FileNew ("KH.jpg")
    cards (52) := Pic.FileNew ("KS.jpg")
    %card values
    cardvalue (1) := 10
    cardvalue (2) := 10
    cardvalue (3) := 10
    cardvalue (4) := 10
    cardvalue (5) := 2
    cardvalue (6) := 2
    cardvalue (7) := 2
    cardvalue (8) := 2
    cardvalue (9) := 3
    cardvalue (10) := 3
    cardvalue (11) := 3
    cardvalue (12) := 3
    cardvalue (13) := 4
    cardvalue (14) := 4
    cardvalue (15) := 4
    cardvalue (16) := 4
    cardvalue (17) := 5
    cardvalue (18) := 5
    cardvalue (19) := 5
    cardvalue (20) := 5
    cardvalue (21) := 6
    cardvalue (22) := 6
    cardvalue (23) := 6
    cardvalue (24) := 6
    cardvalue (25) := 7
    cardvalue (26) := 7
    cardvalue (27) := 7
    cardvalue (28) := 7
    cardvalue (29) := 8
    cardvalue (30) := 8
    cardvalue (31) := 8
    cardvalue (32) := 8
    cardvalue (33) := 9
    cardvalue (34) := 9
    cardvalue (35) := 9
    cardvalue (36) := 9
    cardvalue (37) := 12
    cardvalue (38) := 12
    cardvalue (39) := 12
    cardvalue (40) := 12
    cardvalue (41) := 14
    cardvalue (42) := 14
    cardvalue (43) := 14
    cardvalue (44) := 14
    cardvalue (45) := 11
    cardvalue (46) := 11
    cardvalue (47) := 11
    cardvalue (48) := 11
    cardvalue (49) := 13
    cardvalue (50) := 13
    cardvalue (51) := 13
    cardvalue (52) := 13
end start
procedure deal
    x1 := 300
    y1 := 400
    x2 := 400
    y2 := 400

    for i : 1 .. 52
        checkdeck (i) := 1
    end for

    for i : 1 .. 26
        loop
            Randomcard := Rand.Int (1, 52)
            exit when checkdeck (Randomcard) = 1
        end loop
        checkdeck (Randomcard) := 0
        p1 (i) := cards (Randomcard)
        p1value (i) := cardvalue (Randomcard)
        loop
            Randomcard := Rand.Int (1, 52)
            exit when checkdeck (Randomcard) = 1
        end loop
        checkdeck (Randomcard) := 0
        p2 (i) := cards (Randomcard)
        p2value (i) := cardvalue (Randomcard)
    end for

end deal
procedure compare
    loop
        for i : 1 .. 52
            Pic.Draw (p1 (i), x1, y1, 0)
            delay (100)
            Pic.Draw (p2 (i), x2, y2, 0)
            getch (key)
            exit when key = "W"
            p1next := 28
            p2next := 28
            if p1value (1) < p2value (1) then
                p1 (p1next) := p2 (1)
                p1value (p1next) := p2 (1)
                p1next := p1next + 1
                p1 (1) := p1 (1) + 1
                p2 (1) := p2 (p2next) - 1
                p2value (p2 (1)) := p2value (p2next) - 1
                p2next := p2next - 1
            elsif p1value (1) > p2value (1) then
                p2 (p2next) := p1 (p1next)
                p2value (p2next) := p1 (1)
                p2next := p2next + 1
                p2 (1) := p2 (1) + 1
                p1 (1) := p1 (p1next - 1)
                p1value (p1 (1)) := +p1value (p1next - 1)
                p1next := p1next - 1
                p1value (1) := p2value (1)
            elsif p1value (1) = p2value (1) then
            end if
            end for
        end loop
    end compare
    start
    deal
    compare
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  [ 6 Posts ]
Jump to:   


Style:  
Search: