Potřebuju, aby se mi každá náhodně zobrazená karta nemohla vicekrat objevit
import random
random.randint(10,62)
každé číslo znamená jednu kartu, ale jak tu náhodnou odečíst, aby se to číslo příště nemohlo náhodně zobrazit.
Fórum › Python
Poker
import random
nahoda=[]
nahoda.append(random.randint(10,12)
print nahoda
b=random.randint(10,12)
existuje=b in nahoda
print existuje, nahoda, b
if existuje==True:
print "ano karta uz byla pouzita"
else:
print "ne karta jeste nebyla pouzita"
tohle jsem zatim ze sebe vymačk
moc jsem nepochopil, proc do seznamu ukladas jinz cislo, nez do b ,.... to potom ten if ztraci smysl, protoze jsi do b vygeneroval jiny cislo, tim padem nemuzes v nahode hledat, jestli jsi tu kartu uz pouzil, nebo ne
import random
nahoda=[]
karta=random.randint(10,12)
if karta in nahoda:
print "ano karta uz byla pouzita"
else:
print "ne karta jeste nebyla pouzita"
nahoda.append(karta)
nebo si udelat pole od 0 do 31 kde budou cisla od 1 do 32 (klidne muzes dat rovnou ty karty) a pokazdy kdyz vylosujes nejake cislo tak ho z pole odebrat... a priste losovat jen do velikosti pole.. tj do 30 pak do 29 ...
No vlastně by stačilo kdyby mi sem někdo napsal jak vytvořit například devět čísel -dvě já dvě protihráč pět na stole- od 10-62, bez toho aby se nějaké opakovalo)
import random
nahoda=[]
karta=random.randint(10,12)
if karta in nahoda:
print "ano karta uz byla pouzita"
else:
print "ne karta jeste nebyla pouzita"
nahoda.append(karta)
prvni=random.randint(10,20)
druha=random.randint(21,30) #takhle bych to musel udělat ja, s mejma zkušenostma)
treti=...
ctvrta=...
pata=...
sesta=...
sedma=...
osma=...
#primitivně ale přece)
import random
karty=range(10,62)
prvnikarta=random.randint(10,62)
karty.remove(prvnikarta)
print prvnikarta
druhakarta=random.randint(10,61)
karty.remove(druhakarta)
print druhakarta
tretikarta=random.randint(10,60)
print tretikarta
ctvrtakarta=random.randint(10,59)
print ctvrtakarta
patakarta=random.randint(10,58)
print patakarta
sestakarta=random.randint(10,57)
print sestakarta
sedmakarta=random.randint(10,56)
print sedmakarta
IMHO spíš nějak takhle:
#!/usr/bin/python
#-*- encoding: utf-8 -*-
import random
# definice karet, v tomto případě jen čísla, ale může to být pole obsahující cokoliv
karty = range(1,32)
def promichej(karty):
"""
Náhodně promíchá zadané pole.
"""
n = len(karty)
for i in range(n):
x = random.randint(0, n - 1)
y = random.randint(0, n - 1)
karty[x], karty[y] = karty[y], karty[x]
return karty
# definice globálních proměnných
hrac1 = []
hrac2 = []
stul = []
# === hrajem! ===
# zamícháme karty do baliku
balik = promichej(karty)
# rozdáme karty hráčům
hrac1.append(balik.pop())
hrac2.append(balik.pop())
hrac1.append(balik.pop())
hrac2.append(balik.pop())
# vyložíme na stůl
for i in range(3):
stul.append(balik.pop())
# jak to vypadá?
print "hráč 1: %s" % (hrac1)
print "hráč 2: %s" % (hrac2)
print "stůl: %s" % (stul)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Poker (null reference) — založil RePRO
Algoritmus na zjištění výherní kombinace v pokeru — založil antybart
Moderátoři diskuze