Page 1 of 1

Scratch Ticket

Posted: Sat Aug 27, 2022 12:46 pm
by daxel123
So, I am sure there are "cleaner" ways of doing this, but this might help somebody. Of course, I am also willing to take feedback and make it better :)

Code: Select all

init python:

    class Card():
        def __init__(self, suit, cvalue, mvalue, xposi, yposi):
            self.suit = suit
            self.cvalue = cvalue
            self.mvalue = mvalue
            self.xposi = xposi
            self.yposi = yposi

    def compareCards(list1,list2):
        money = 0
        for i in list1:
            for x in list2:
                if i.suit == x.suit:
                    if i.cvalue == x.cvalue:
                        money += x.mvalue
        return money

    def CardPosition(card):
        if card == "Ace":
            return 0
        elif card == "Jack":
            return 10
        elif card == "Queen":
            return 11
        elif card == "King":
            return 12
        else:
            return int(card) -1
    
    def CardSuit(card):
        if card == "Clubs":
            return 2
        if card == "Diamonds":
            return 1
        if card == "Hearts":
            return 0
        if card == "Spades":
            return 3

image cardDeck =  "/images/gui/cards.png"
default wincards = []
default playcards = []
default card1 = False
default card2 = False
default card3 = False
default card4 = False
default card5 = False
default card6 = False
default card7 = False
default card8 = False

label lottery():
    $ wincards = []
    $ playcards = []
    $ card1 = False
    $ card2 = False
    $ card3 = False
    $ card4 = False
    $ card5 = False
    $ card6 = False
    $ card7 = False
    $ card8 = False
    $ count = 0

    while count < 2:
        $ suit = renpy.random.choice(["Hearts","Clubs","Spades","Diamonds"])
        $ pick = renpy.random.choice(["Ace","1","2","3","4","5","6","7","8","9","10","Jack","Queen","King"])
        $ cp = CardPosition(pick)
        $ wincards.append( Card(suit,pick,0,CardPosition(pick),CardSuit(suit)))
        $ count += 1
    $ count = 0
    while count < 7:
        $ suit = renpy.random.choice(["Hearts","Clubs","Spades","Diamonds"])
        $ pick = renpy.random.choice(["Ace","1","2","3","4","5","6","7","8","9","10","Jack","Queen","King"])
        $ mval = renpy.random.choice([1,2,5,10,100,1000])
        $playcards.append( Card(suit,pick,mval,CardPosition(pick),CardSuit(suit)))
        $ count += 1 
    call screen displaycards(wincards, playcards)

label winnings():
    $ money = compareCards(wincards,playcards)
    if money > 0:
        "You won $[money]"
    if money == 0:
        "You lost"
    hide screen displaycards
    jump "where ever you called this from"
    

screen displaycards(wincards, playcards):
    add "/images/gui/lotto.png" xpos 340 ypos 100
    imagebutton:
        selected_idle im.Crop("/images/gui/cards.png", (7+ (wincards[0].xposi * 98), 37 + (wincards[0].yposi*143), 90,135))
        selected_hover im.Crop("/images/gui/cards.png", (7+ (wincards[0].xposi * 98), 37 + (wincards[0].yposi*143), 90,135))
        idle "/images/gui/cardback.png"
        hover "/images/gui/cardback.png"
        focus_mask True
        action ToggleVariable("card1", True, True)
        selected (card1)
        xpos 530
        ypos 300
    imagebutton:
        selected_idle im.Crop("/images/gui/cards.png", (7 + (wincards[1].xposi * 98), 37 + wincards[1].yposi*143, 90,135))
        selected_hover im.Crop("/images/gui/cards.png", (7 + (wincards[1].xposi * 98), 37 + wincards[1].yposi*143, 90,135))
        xpos 630
        ypos 300
        idle "/images/gui/cardback.png"
        hover "/images/gui/cardback.png"
        focus_mask True
        action ToggleVariable("card2", True, True)
        selected (card2)
        #add im.Crop("/images/gui/cards.png", (7+ (wincards[0].xposi * 98), 37 + (wincards[0].yposi*143), 90,135)) xpos 530 ypos 300
        #add im.Crop("/images/gui/cards.png", (7 + (wincards[1].xposi * 98), 37 + wincards[1].yposi*143, 90,135)) xpos 630 ypos 300
    imagebutton:
        selected_idle im.Crop("/images/gui/cards.png", (7+ (playcards[0].xposi * 98), 37 + playcards[0].yposi*143, 90,135))
        selected_hover im.Crop("/images/gui/cards.png", (7+ (playcards[0].xposi * 98), 37 + playcards[0].yposi*143, 90,135))
        xpos 480
        ypos 550
        idle "/images/gui/cardback.png"
        hover "/images/gui/cardback.png"
        focus_mask True
        action ToggleVariable("card3", True, True)
        selected (card3)
        #add im.Crop("/images/gui/cards.png", (7+ (playcards[0].xposi * 98), 37 + playcards[0].yposi*143, 90,135)) xpos 480 ypos 550
    imagebutton:
        selected_idle im.Crop("/images/gui/cards.png", (7 + (playcards[1].xposi * 98), 37 + playcards[1].yposi*143, 90,135))
        selected_hover im.Crop("/images/gui/cards.png", (7 + (playcards[1].xposi * 98), 37 + playcards[1].yposi*143, 90,135))
        xpos 580
        ypos 550
        idle "/images/gui/cardback.png"
        hover "/images/gui/cardback.png"
        focus_mask True
        action ToggleVariable("card4", True, True)
        selected (card4)
        #add im.Crop("/images/gui/cards.png", (7 + (playcards[1].xposi * 98), 37 + playcards[1].yposi*143, 90,135)) xpos 580 ypos 550
    imagebutton:
        selected_idle im.Crop("/images/gui/cards.png", (7+ (playcards[2].xposi * 98), 37 + playcards[2].yposi*143, 90,135))
        selected_hover im.Crop("/images/gui/cards.png", (7+ (playcards[2].xposi * 98), 37 + playcards[2].yposi*143, 90,135))
        xpos 680
        ypos 550
        idle "/images/gui/cardback.png"
        hover "/images/gui/cardback.png"
        focus_mask True
        action ToggleVariable("card5", True, True)
        selected (card5)
        #add im.Crop("/images/gui/cards.png", (7+ (playcards[2].xposi * 98), 37 + playcards[2].yposi*143, 90,135)) xpos 680 ypos 550
    imagebutton:
        selected_idle im.Crop("/images/gui/cards.png", (7 + (playcards[3].xposi * 98), 37 + playcards[3].yposi*143, 90,135))
        selected_hover im.Crop("/images/gui/cards.png", (7 + (playcards[3].xposi * 98), 37 + playcards[3].yposi*143, 90,135))
        xpos 480
        ypos 750
        idle "/images/gui/cardback.png"
        hover "/images/gui/cardback.png"
        focus_mask True
        action ToggleVariable("card6", True, True)
        selected (card6)
        #add im.Crop("/images/gui/cards.png", (7 + (playcards[3].xposi * 98), 37 + playcards[3].yposi*143, 90,135)) xpos 480 ypos 750
    imagebutton:
        selected_idle im.Crop("/images/gui/cards.png", (7+ (playcards[4].xposi * 98), 37 + playcards[4].yposi*143, 90,135))
        selected_hover im.Crop("/images/gui/cards.png", (7+ (playcards[4].xposi * 98), 37 + playcards[4].yposi*143, 90,135))
        xpos 580
        ypos 750
        idle "/images/gui/cardback.png"
        hover "/images/gui/cardback.png"
        focus_mask True
        action ToggleVariable("card7", True, True)
        selected (card7)
        #add im.Crop("/images/gui/cards.png", (7+ (playcards[4].xposi * 98), 37 + playcards[4].yposi*143, 90,135)) xpos 580 ypos 750
    imagebutton:
        selected_idle im.Crop("/images/gui/cards.png", (7 + (playcards[5].xposi * 98), 37 + playcards[5].yposi*143, 90,135))
        selected_hover im.Crop("/images/gui/cards.png", (7 + (playcards[5].xposi * 98), 37 + playcards[5].yposi*143, 90,135))
        xpos 680
        ypos 750
        idle "/images/gui/cardback.png"
        hover "/images/gui/cardback.png"
        focus_mask True
        action ToggleVariable("card8", True, True)
        selected (card8)
    text "{size=-5}$[playcards[0].mvalue]{/size}" xpos 480 ypos 680
    text "{size=-5}$[playcards[1].mvalue]{/size}" xpos 580 ypos 680
    text "{size=-5}$[playcards[2].mvalue]{/size}" xpos 680 ypos 680
    text "{size=-5}$[playcards[3].mvalue]{/size}" xpos 480 ypos 880
    text "{size=-5}$[playcards[4].mvalue]{/size}" xpos 580 ypos 880
    text "{size=-5}$[playcards[5].mvalue]{/size}" xpos 680 ypos 880
    textbutton "Turn In":
        xpos 800 ypos 800 
        action Call("winnings")
        tooltip "Turn in"