Scratch Ticket

A place for Ren'Py tutorials and reusable Ren'Py code.
Forum rules
Do not post questions here!

This forum is for example code you want to show other people. Ren'Py questions should be asked in the Ren'Py Questions and Announcements forum.
Post Reply
Message
Author
daxel123
Newbie
Posts: 1
Joined: Sat Aug 27, 2022 12:13 pm
Contact:

Scratch Ticket

#1 Post 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"
        
Attachments
lotto.png
cards.png
cardback.png
cardback.png (681 Bytes) Viewed 1200 times
Last edited by PyTom on Mon Sep 05, 2022 1:34 pm, edited 1 time in total.
Reason: Edited in the code tags.

Post Reply

Who is online

Users browsing this forum: No registered users