card dealer

Dave Angel davea at davea.name
Fri Sep 27 07:26:21 EDT 2013


On 27/9/2013 06:24, markotaht at gmail.com wrote:

> from random import *
> from math import floor
>

>
> kaarte_alles = 52
> kaart_tõmmatud = [False for i in range(52)]
>
>
> mast = ["ärtu", "ruutu", "poti", "risti"]
> aste = ["äss", "kaks", "kolm", "neli","viis", "kuus", \
>         "seitse", "kaheksa", "üheksa", "kümme", "soldat",\
>         "emand", "kuningas"]
>
> def tõmba_kaart():
>     global kaarte_alles
>     if kaarte_alles == 0:
>         print("Segan pakki")
>         kaarte_alles = 52
>         for i in range(52):
>             kaart_tõmmatud[i] = False
>     kaarte_alles -= 1
>     n = random(kaarte_alles)
>     kaart = vali_järgmine_vaba(n)
>     m = kaart % 13
>     a = kaart / 13
>     print(mast[int(a)] + " " + aste[int(m)])
>
> def vali_järgmine_vaba(n):
>     i = -1
>
>     while(n  > 0):
>         n -= 1
>         i = i + 1
>         while kaart_tõmmatud[i]:
>             i = i + 1
>     kaart_tõmmatud[i] = True
>     return i
>
> def random(n):
>     return randint(0, n)
>
> while True:
>     n = int(input("Mitu kaarti tõmmata(0 et väljuda): "))
>     if(n==0):
>         break
>
>     for i in range(n):
>         tõmba_kaart()
>
>
> HI im trying to make a card dealer, but this code doesent work correctly. It deasl cards, but the cards to repeat. when i type in 52 ten i might get 3 the same cards. This is a translation from my c++ code. In c++ it works correctly.

If you had created your global list containing list(range(52)), then you
could do nearly your entire program with one call to random.sample.

http://docs.python.org/3.3/library/random.html#random.sample

-- 
DaveA





More information about the Python-list mailing list