Here we are again having fun making code for a card game... will we ever finish it, or will we change it a lot of time never reaching a goal? Who knows... here is the code at the moment...
print("Let's play BRISCOLA")
from random import shuffle
cl = '♦♣♠♥'
nm = range(1,11)
cds = [str(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")
pcval = {1:11,2:0,3:10,4:0,5:0,6:0,7:0,8:2,9:3,10:4}
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
defense = [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 num(x):
return int(x[:-1])
def col(x):
return x[-1]
def val(card):
return pcval[int(card[:-1])]
def attack(tbx):
att = [x+col(tbx) for x in ['1','3','10','9'] if int(x) > val(tbx)]
att += [str(x)+c for x in top[:7] for c in cl if c!=col(bsc)]
att += [str(x)+col(bsc) for x in top]
att += [str(x)+c for x in (3,1) for c in cl if c!=col(bsc)]
# print(att)
return att
def attack2(tbx):
latt = [x for x in range(3)]
return latt
def mode(px,list_da):
'algoritmo di risposta'
for i in list_da:
if i in px:
px.remove(i)
print(i)
break
return i
def move1():
global tb1
tb1 = mode(p1,defense)
def move2():
global tb2
tb2 = mode(p2,attack(tb1))
# Colore diverso
if col(tb1)!=col(tb2) and col(tb2)!=col(bsc):
print("P2 ha perso")
# Stesso colore
else:
if val(tb1)==val(tb2):
if num(tb1)>num(tb2):
print("Stesso colore Ha vinto p1",val(tb1)+val(tb2))
else:
print("Stesso colore Ha vinto p2")
else:
if val(tb1)>val(tb2):
print(val(tb1),val(tb2),"Stesso colore Ha vinto p1")
else:
print(val(tb1)+val(tb2),"Stesso colore punti vinti da p2")
move1()
move2()
Comments
Post a Comment