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

Username:   Password: 
 RegisterRegister   
 Crazy 8 help!!!
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
Dumbest_Hacker_Ever




PostPosted: Tue Jan 24, 2006 9:42 am   Post subject: Crazy 8 help!!!

code:
import GUI in "%oot/lib/GUI"
class Card

    export setCard, getCard, Selected, getSelected, Suit, Rank, setSuit,
        printCard

    var card : string
    var selected : boolean := false

    %Procedure : setCard
    %Input : none
    %Output: card
    %Purpose : give card a value
    %Parameters : the name of the card

    procedure setCard (c : string)
        card := c
    end setCard

    %Function : getCard
    %Input : none
    %Output: card
    %Purpose : get the value of card

    function getCard : string
        result card
    end getCard

    procedure Selected
        selected := true
    end Selected

    function getSelected : boolean
        result selected
    end getSelected

    %Function : Suit
    %Input : none
    %Output: suit of the card
    %Purpose : to find the suit of card

    function Suit : int
        var suit : int
        if index (card, "d") = 2 then
            suit := 1
        elsif index (card, "c") = 2 then
            suit := 2
        elsif index (card, "h") = 2 then
            suit := 3
        elsif index (card, "s") = 2 then
            suit := 4
        end if
        result suit
    end Suit

    %Function : Rank
    %Input : none
    %Output: Rank of the card
    %Purpose : to find the rank of card
    %Paramenter : card

    function Rank : int
        var rank : int
        if index (card, "a") = 1 then
            rank := 1
        elsif index (card, "2") = 1 then
            rank := 2
        elsif index (card, "3") = 1 then
            rank := 3
        elsif index (card, "4") = 1 then
            rank := 4
        elsif index (card, "5") = 1 then
            rank := 5
        elsif index (card, "6") = 1 then
            rank := 6
        elsif index (card, "7") = 1 then
            rank := 7
        elsif index (card, "8") = 1 then
            rank := 8
        elsif index (card, "9") = 1 then
            rank := 9
        elsif index (card, "t") = 1 then
            rank := 10
        elsif index (card, "j") = 1 then
            rank := 11
        elsif index (card, "q") = 1 then
            rank := 12
        elsif index (card, "k") = 1 then
            rank := 13
        end if
        result rank
    end Rank

    %Function : setSuit
    %Input : suit choosen
    %Output: suit
    %Purpose : to change the suit of card

    function setSuit : int
        var newSuit : string (1) := 'x'
        var rank : string
        var suit : int := 0

        put "Choose a suit (d=diamonds c=clubs h=hearts s=spades): " ..
        loop
            if hasch then
                getch (newSuit)
                case newSuit of
                    label 'd' :
                        card := card (1) + "d"
                        suit := Suit
                    label 'c' :
                        card := card (1) + "c"
                        suit := Suit
                    label 'h' :
                        card := card (1) + "h"
                        suit := Suit
                    label 's' :
                        card := card (1) + "s"
                        suit := Suit
                    label :
                        put ""
                        put "Invalid suit"
                        suit := 0
                end case
            end if

            exit when suit not= 0
        end loop

        result suit
    end setSuit

    procedure printCard (x, y : int, front : boolean)
        var cardPic : int


        if front then
            case card of
                label 'ad' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\ad.bmp")
                label 'ac' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\ac.bmp")
                label 'ah' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\ah.bmp")
                label 'as' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\as.bmp")
                label '2d' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\2d.bmp")
                label '2c' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\2c.bmp")
                label '2h' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\2h.bmp")
                label '2s' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\2s.bmp")
                label '3d' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\3d.bmp")
                label '3c' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\3c.bmp")
                label '3h' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\3h.bmp")
                label '3s' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\3s.bmp")
                label '4d' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\4d.bmp")
                label '4c' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\4c.bmp")
                label '4h' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\4h.bmp")
                label '4s' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\4s.bmp")
                label '5d' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\5d.bmp")
                label '5c' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\5c.bmp")
                label '5h' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\5h.bmp")
                label '5s' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\5s.bmp")
                label '6d' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\6d.bmp")
                label '6c' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\6c.bmp")
                label '6h' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\6h.bmp")
                label '6s' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\6s.bmp")
                label '7d' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\7d.bmp")
                label '7c' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\7c.bmp")
                label '7h' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\7h.bmp")
                label '7s' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\7s.bmp")
                label '8d' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\8d.bmp")
                label '8c' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\8c.bmp")
                label '8h' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\8h.bmp")
                label '8s' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\8s.bmp")
                label '9d' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\9d.bmp")
                label '9c' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\9c.bmp")
                label '9h' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\9h.bmp")
                label '9s' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\9s.bmp")
                label 'td' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\td.bmp")
                label 'tc' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\tc.bmp")
                label 'th' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\th.bmp")
                label 'ts' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\ts.bmp")
                label 'jd' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\jd.bmp")
                label 'jc' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\jc.bmp")
                label 'jh' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\jh.bmp")
                label 'js' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\js.bmp")
                label 'qd' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\qd.bmp")
                label 'qc' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\qc.bmp")
                label 'qh' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\qh.bmp")
                label 'qs' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\qs.bmp")
                label 'kd' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\kd.bmp")
                label 'kc' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\kc.bmp")
                label 'kh' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\kh.bmp")
                label 'ks' :
                    cardPic := Pic.FileNew (".\\CardsBMP\\ks.bmp")
            end case
        else
            cardPic := Pic.FileNew (".\\CardsBMP\\b.bmp")
        end if

        Pic.Draw (cardPic, x, y, picCopy)
        Pic.Free (cardPic)
    end printCard


end Card

class Deck

    import Card

    export emptyDeck, shuffleDeck, TopCard

    var cards : array 1 .. 52 of ^Card
    var size : int
    var topC : string
    var p : int := 1

    for i : 1 .. 52
        new cards (i)
    end for

    %Procedure : initialize
    %Input : none
    %Output: none
    %Purpose : initializes the deck of cards and sets a logical size

    procedure initialize
        cards (1) -> setCard ('ad')
        cards (2) -> setCard ('ac')
        cards (3) -> setCard ('ah')
        cards (4) -> setCard ('as')
        cards (5) -> setCard ('2d')
        cards (6) -> setCard ('2c')
        cards (7) -> setCard ('2h')
        cards (8) -> setCard ('2s')
        cards (9) -> setCard ('3d')
        cards (10) -> setCard ('3c')
        cards (11) -> setCard ('3h')
        cards (12) -> setCard ('3s')
        cards (13) -> setCard ('4d')
        cards (14) -> setCard ('4c')
        cards (15) -> setCard ('4h')
        cards (16) -> setCard ('4s')
        cards (17) -> setCard ('5d')
        cards (18) -> setCard ('5c')
        cards (19) -> setCard ('5h')
        cards (20) -> setCard ('5s')
        cards (21) -> setCard ('6d')
        cards (22) -> setCard ('6c')
        cards (23) -> setCard ('6h')
        cards (24) -> setCard ('6s')
        cards (25) -> setCard ('7d')
        cards (26) -> setCard ('7c')
        cards (27) -> setCard ('7h')
        cards (28) -> setCard ('7s')
        cards (29) -> setCard ('8d')
        cards (30) -> setCard ('8c')
        cards (31) -> setCard ('8h')
        cards (32) -> setCard ('8s')
        cards (33) -> setCard ('9d')
        cards (34) -> setCard ('9c')
        cards (35) -> setCard ('9h')
        cards (36) -> setCard ('9s')
        cards (37) -> setCard ('td')
        cards (38) -> setCard ('tc')
        cards (39) -> setCard ('th')
        cards (40) -> setCard ('ts')
        cards (41) -> setCard ('jd')
        cards (42) -> setCard ('jc')
        cards (43) -> setCard ('jh')
        cards (44) -> setCard ('js')
        cards (45) -> setCard ('qd')
        cards (46) -> setCard ('qc')
        cards (47) -> setCard ('qh')
        cards (48) -> setCard ('qs')
        cards (49) -> setCard ('kd')
        cards (50) -> setCard ('kc')
        cards (51) -> setCard ('kh')
        cards (52) -> setCard ('ks')
        size := 52
    end initialize

    function emptyDeck : boolean
        var numOfSelected : int := 0
        var eD : boolean := false
        for i : 1 .. 52
            if cards (i) -> getSelected = true then
                numOfSelected := numOfSelected + 1
            end if
        end for

        if numOfSelected = 52 then
            eD := true
        end if
        result eD
    end emptyDeck

    %Procedure : shuffleDeck
    %Input : none
    %Output: none
    %Purpose : to shuffle the deck

    procedure shuffleDeck
        var a, b : int
        var temp : ^Card
        initialize
        new temp
        for i : 1 .. 52
            randint (a, 1, 52)
            randint (b, 1, 52)
            temp -> setCard (cards (a) -> getCard)
            cards (a) -> setCard (cards (b) -> getCard)
            cards (b) -> setCard (temp -> getCard)
        end for

        %for i : 1..52
        %put cards (i) -> getCard
        %  end for
    end shuffleDeck

    %Function : TopCard
    %Input : none
    %Output: the value of the top card on the deck
    %Purpose : to find the value of the top card on the deck

    function TopCard : ^Card
        p := p + 1
        if cards (p) -> getSelected = false then
            cards (p) -> Selected

        end if
        result cards (p)
    end TopCard
end Deck

class Hand

    import Card, Mouse, Deck

    export sort, print, setY, setHuman, add, useMouse, whatToPlay, remove,
        emptyHand

    var hand : array 1 .. 20 of ^Card
    var size : int := 8
    var x : int
    var y : int := 20
                                                                                                        var human : boolean := false;



    for i : 1 .. 20
        new hand (i)
    end for



    procedure sort
        var t : ^Card

        for n : 1 .. size - 1
            for a : 1 .. size
                for b : 1 .. size
                    if hand (a) -> Rank > hand (b) -> Rank then
                        t -> setCard (hand (a) -> getCard)
                        hand (a) -> setCard (hand (b) -> getCard)
                        hand (b) -> setCard (t -> getCard)
                    end if
                end for
            end for
        end for
    end sort

    procedure add (newCard : ^Card)
        var l : int
        var n : string := newCard -> getCard

        size := size + 1

        for decreasing i : size .. 1
            hand (i) -> setCard (n)
        end for

        hand (size) -> setCard (n)
        sort
    end add

    procedure remove (card : ^Card)

        for i : 1 .. size
            if hand (i) -> getCard = card -> getCard then
                hand (i) := hand (i + 1)
            end if
        end for

        size := size - 1
    end remove

    function emptyHand():boolean
        if size = 0 then
            result true
        else
            result false
        end if
    end emptyHand

    function whatToPlay (pileCard : ^Card) : ^Card
        var topC : ^Card
        var tCd : ^Deck
        var count : int := 1
        var done : boolean := false

        loop
            if pileCard -> Suit = hand (count) -> Suit then
                done := true
                result (hand (count))
            elsif pileCard -> Rank = hand (count) -> Rank then
                done := true
                result (hand (count))
            elsif count > size then
                done := true
                result pileCard
            end if
            count := count + 1
            exit when done = true
        end loop

    end whatToPlay

    function okayToPlay (pile : ^Card, card : ^Card) : boolean
        if card -> Rank = pile -> Rank or card -> Suit = pile -> Suit
                then
            result true
        else
            result false
        end if
    end okayToPlay

    function useMouse (pile : ^Card) : ^Card
        var buttonnumber, buttonupdown, i : int
        var temp : ^Card
        var tc : string

        loop
            if whatToPlay (pile) = pile then
                result pile
            else
                Mouse.ButtonWait ("down", x, y, buttonnumber,
                    buttonupdown)
                if y > 100 and x < 20 then
                    i := 1
                elsif y > 100 and 20 <= x and x < 40 then
                    i := 2
                end if
                if (okayToPlay (pile, hand (i))) then
                    temp -> setCard (hand (i) -> getCard)
                    remove (hand (i))
                    result temp
                else
                    result pile
                end if
            end if
        end loop

    end useMouse
   
    procedure setY (num : int)
        y := num
    end setY

    procedure print
        x:= 0
       
        hand (1) -> printCard (x, y, human)
        for i : 2 .. size
            x := x + 20
            hand (i) -> printCard (x, y, human)
        end for
    end print

    procedure setHuman (h : boolean)
        human := h
    end setHuman


end Hand

class Game
    import Deck, Card, Hand
    export play1
   
    var player : array 1 .. 4 of ^Hand
    var playerName : array 1 .. 4 of string
    var deck : ^Deck
    var pile : ^Card

    new deck

    for i : 1 .. 4
        new player (i)
    end for

    player (1) -> setY (20)
    player (2) -> setY (100)
    player (3) -> setY (180)
    player (4) -> setY (260)
    player (1) -> setHuman (true)



    new pile

    procedure setUp ()
        var temp : int
        temp := Window.Open ("graphics: 200;100, nocursor, noecho")
       
        put "Please input name: "..
        get playerName (1)
       
        if playerName (1) = " " then
            playerName (1) := "player 1"
        end if
        locate (3, 5)
        put playerName (1)
        playerName (2) := "Bob"
        playerName (3) := "Sam"
        playerName (4) := "Jen"
        Window.Close (temp)
        temp := Window.Open ("position:center, graphics:600;600")

    end setUp

    procedure reDraw ()
        cls
        for i : 1 .. 4
            if i = 1 then
                player (i) -> print
            else

            end if
        end for
        pile -> printCard (150, 20, true)

    end reDraw

    procedure deal ()

        for i : 1 .. 4
            for j : 1 .. 8
                player (i) -> add (deck -> TopCard)
                player (i) -> print
            end for
        end for
       
       
        deck -> shuffleDeck

    end deal

    procedure play1 ()
        var playr : int := 1
        var card : ^Card
        new card
        setUp
        deal
        loop
            if playr = 1 then
                card := player (playr) -> useMouse (pile)
            else
                card := player (playr) -> whatToPlay (pile)
            end if
            if card = pile then
                player (playr) -> add (deck -> TopCard)
            else
                player (playr) -> remove (card)
                pile := card
            end if
            exit when player (playr) -> emptyHand ()
            playr := playr mod 4 + 1
        end loop

    end play1





end Game




%test main

var w : int
var eD : boolean
var C : ^Card
var D : ^Deck
var H : ^Hand
var G : ^Game
new C
new D
new H
new G

w := Window.Open ("position:center, graphics:600;600")
G -> play1


for sum reason i can't enter a name can ya help out?
FYI my i use the old version of turing (3.1.1A)
Sponsor
Sponsor
Sponsor
sponsor
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  [ 1 Posts ]
Jump to:   


Style:  
Search: