Skip to main content

Cards Game 7: code refined

from random import shuffle

def createAndMix():
    'Create the cards and give it a shuffle'
    global cards
    cards = [str(num)+color for num in range(1,11) for color in ['♥','♦','♣','♠']]
    shuffle(cards)

def firstHand():
    'give 3 cards to pc1 and pick up the briscola'
    global pc1
    global briscola
    briscola = cards.pop()
    pc1 = [cards.pop() for x in range(3)]

def noBriscola(cards):
    'Creates a list without briscola'
    cardschoice = []
    for c in cards:
        card_color = c[-1]
        briscola_color = briscola[-1]
        match = card_color == briscola_color
        if not match:
            cardschoice += [c]
    return cardschoice

def play():     
    pc1v = [] # valori
    pc1c = [] # semi
    for i in nobriscola:
        if int(i[:-1])==1:          pc1v+= [11]
        elif int(i[:-1])==3:        pc1v+= [10]
        elif int(i[:-1])==10:       pc1v+= [4]
        elif int(i[:-1])==9:        pc1v+= [3]
        elif int(i[:-1])==8:        pc1v+= [2]
        else:                       pc1v += [int(i[:-1])-7] # lista valori
        pc1c += i[-1]         # This creates a list of seeds
    pcmin = min(pc1v)         # minimo dei valori
    for i in pc1v:            # look for the minimum value
        if i == pcmin:
            cartascelta = nobriscola[pc1v.index(pcmin)]
            return cartascelta

if __name__=='__main__':
    createAndMix()                 # Shuffle the cards
    firstHand()                    # pick briscola and 3 cards for pc1
    nobriscola = noBriscola(pc1)   # 3 cards - briscole of pc1
    pc1p = play()                  # memorize the cards pc1 wants to play
    ########       for the output     ##################
    print("The briscola is:", briscola)
    print("PC1 has: ", pc1, "=> without briscola",nobriscola)
    print("PC1 plays:", pc1p)
The briscola is: 10♣
PC1 has:  ['10♦', '2♣', '3♠'] => without briscola ['10♦', '3♠']
PC1 plays: 10♦

Comments

Popular posts from this blog

Widgets for Jupyter Notebook: a text input widget

Widgets for Jupyter notebook ¶ Let's import the module ipywidgets into the Jupyter Notebook from ipywidgets import widgets from ipywidgets import * from traitlets import * Now we import the display function from IPython ¶ let's attach a function to the event on_submit After we run this cell, we can go up and write something in the text widget and after you submit the text you wrote will be printed after the cell from IPython.display import display text = widgets . Text () display ( text ) def handle_submit ( sender ): print ( "Thank you for entering this text:" , text . value ) text . on_submit ( handle_submit ) Thank you for entering this text: Ciao

Image in Jupyter and PIL step by step

Hi, """ Hi, we will see a step by step tutorial about PIL and IPython.core.display modules to create images from other images and diplaying them in Jupyter notebook """ # What we will do # Create a card # 1. Take a pic of a heart # 2. Create an image blanck the size of a card 90*130 # 3. Paste the heart in the middle # 4. show the card """ As first step wi will simply display an image on the notebook. I will show two way to display the image with 'display' from IPhyton a. Using the open method of PIL.Image (named Img) b. Using the Image method from the IPython.core.display module """ # 1. Take the pic of a heart from IPython.core.display import Image , display from PIL import Image as Img heart = 'img/heart.png' display ( Image ( heart )) display ( Img . open ( heart )) # 2. Create an image blanck the size of a card 90*130 # 3. Paste the heart in the middle #...

Let's draw a circle with PIL in Python

Let's continue making our coding around PIL. Let's start with some basic drawing: a circle from PIL import Image , ImageDraw img = Image . new ( "RGB" ,( 60 , 60 ), 'white' ) dr = ImageDraw . Draw ( img ) dr . ellipse (( 0 , 0 , 60 , 60 ), 'yellow' ) img . show () this is the image produced *If you use jupyter notebook, just write img at the end to see the output.