Skip to main content

Briscola (part 1)


Hi, here we are again with this code. This will be done in parts, but will be completed, this time. I am sure.

So, I present the code until the first move of player one. I tried to make the code as neat as I can. Here it is in his full tidiness:

I imported the shuffle function from the random method to shuffle the cards.
The I made some list comprehension to create the deck of cards. the I made the function pop() that returns a number of cards taken from the deck to memorize the 3 cards in p1 and p2, the name of the two list of cards that player 1 and player 2 have got from the deck of cards.
Then we popped the card for the briscola.

Then, to decide wich card to play for the first player I made another list comprehension that started from the smallest card to the greatest of the figure, then from the smallest of the briscole to the greatest and then the greatest cards of other colors.

print("Let's play BRISCOLA")

from random import shuffle

cl = '♦♣♠♥'
nm = [str(x) for x in range(1,11)]
cds = [n+c for n in nm for c in cl]

def pop(x=1):
    return [cds.pop() for i in range(x)]

shuffle(cds)

p1,p2 = pop(3),pop(3)       # pick the cards 1st time
bsc = cds.pop()
print(p1,"|",p2,"|",bsc,"bsc")

top = [2,4,5,6,7,8,9,10,3,1]
cl2 = list(cl)
cl2.remove(bsc[-1])
# Lista delle carte da tirare in ordine di preferenza per la prima mossa
pref1 = [str(x)+c for x in top[:9] for c in cl2]+[str(x)+bsc[-1] for x in top[:9]]+['1'+bsc[-1]] +[str(x)+c for x in top[9:] for c in cl2]+['3'+bsc[-1]]

def firstmove():
    global tb1
    for i in pref1:
        if i in p1:
            print(i,"tb1")
            tb1 = i # carta giocata memorizzata
            p1.remove(i)
            break

firstmove()
Let's play BRISCOLA
['4♠', '8♥', '6♦'] | ['8♠', '1♠', '6♣'] | 10♦ bsc
4♠ tb1

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.