Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Blackjack märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
estplayer
HV kasutaja

liitunud: 15.10.2008




sõnum 16.01.2013 18:46:10 Blackjack vasta tsitaadiga

Tere!
Koostan pythonis hetkel blackjacki mängu ning oleks veidikene abi vaja sellega. Kood on järgnev:
python:
  1. import random
  2. import time
  3. pakk = {'Risti 2': 2, 'Ruutu 2': 2, 'Ärtu 2': 2, 'Poti 2': 2, 'Risti 3': 3,
  4.         'Ruutu 3': 3, 'Ärtu 3': 3, 'Poti 3': 3, 'Risti 4': 4, 'Ruutu 4': 4,
  5.         'Ärtu 4': 4, 'Poti 4': 4, 'Risit 5': 5, 'Ruutu 5': 5, 'Ärtu 5': 5,
  6.         'Poti 5': 5, 'Risti 6': 6, 'Ruutu 6': 6, 'Ärtu 6': 6, 'Poti 6': 6,
  7.         'Risti 7': 7, 'Ruutu 7': 7, 'Ärtu 7': 7, 'Poti 7': 7, 'Risti 8': 8,
  8.         'Ruutu 8': 8, 'Ärtu 8': 8, 'Poti 8': 8, 'Risti 9': 9, 'Ruutu 9': 9,
  9.         'Ärtu 9': 9, 'Poti 9': 9, 'Risti 10': 10, 'Ruutu 10': 10, 'Ärtu 10': 10,
  10.         'Poti 10': 10, 'Risti poiss': 10, 'Ruutu poiss': 10, 'Ärtu poiss': 10,
  11.         'Poti poiss': 10, 'Risti emand': 10, 'Ruutu emand': 10, 'Ärtu emand': 10,
  12.         'Poti emand': 10, 'Risti kuningas': 10, 'Ruutu kuningas': 10, "Ärtu kuningas": 10,
  13.         'Poti kuningas': 10, 'Risti äss': 11, 'Ruutu äss': 11, 'Ärtu äss': 11, 'Poti äss': 11}
  14.  
  15. def alustamine():
  16.     print("Tere tulemast blackjacki.")
  17.     time.sleep(.5)
  18.     Mäng = int(1)
  19.     while Mäng == 1:
  20.         print("Kas soovid mängida?(jah/ei)")
  21.         vastus = str(input)
  22.         if vastus == 'jah':
  23.             print('Alustame mänguga')
  24.             time.sleep(.5)
  25.             jaga(pakk)
  26.             Mäng = 0
  27.         elif vastus == 'ei':
  28.             print('Nägemiseni')
  29.             Mäng = 0
  30.         else:
  31.             time.sleep(.5)
  32.             print('Jah või ei?')
  33.  
  34. def jaga(pakk):
  35.     minukäsi={}
  36.     diilerikäsi={}
  37.     kasutaja_total = 0
  38.     diileri_total = 0
  39.    
  40.     kaart1 = random.choice(pakk.items())
  41.     kasutaja_total += kaart1[1]
  42.     eemaldamine1 = pakk.pop(kaart1[0])
  43.  
  44.     kaart2 = random.choice(pakk.items())
  45.     kasutaja_total += kaart2[1]
  46.     eemaldamine2 = pakk.pop(kaart2[0])
  47.  
  48.     minukäsi[kaart1[0]] = kaart1[1]
  49.     minukäsi[kaart2[0]] = kaart2[1]
  50.  
  51.     kaart3 = random.choice(pakk.items())
  52.     diileri_total += kaart3[1]
  53.     eemaldamine3 = pakk.pop(kaart3[0])
  54.  
  55.     kaart4 = random.choice(pakk.items())
  56.     diileri_total += kaart4[1]
  57.     eemaldamine4 = pakk.pop(kaart4[0])
  58.  
  59.     diilerikäsi[kaart3[0]] = kaart3[1]
  60.     diilerikäsi[kaart4[0]] = kaart4[1]
  61.  
  62.     print('Siin on sinu käsi: ', kaart1[0], "ja ", kaart2[0],'.')
  63.     if kasutaja_total == 21:
  64.         print('Blackjack. Sina võitsid')
  65.         print('Kas sooviksid uuesti mängida? ')
  66.         uuesti = input()
  67.         if uuesti == 'jah':
  68.             sega(pakk, minukäsi, diilerikäsi)
  69.         elif uuesti == 'ei':
  70.             sys.exit()
  71.     time.sleep(.5)
  72.     print('Diileri nähtav kaart on', kaart3[0],'.')
  73.     time.sleep(.5)
  74.     juurde = 'jah'
  75.     while juurde == 'jah':
  76.         print('Kas tahad lisakaarti\n')
  77.         juurde = input()
  78.         if juurde != 'jah':
  79.             time.sleep(.5)
  80.             print('Sa ei võtnud lisakaarti.')
  81.             time.sleep(.5)
  82.             print('Käes on diileri kord')
  83.             time.sleep(.5)
  84.             print('Diileri kaardid on', kaart3[0], 'ja', kaart4[0],',')
  85.             time.sleep(.5)
  86.             break
  87.         kaart5 = random.choice(pakk.items())
  88.         kasutaja_total += kaart5[1]
  89.         eemaldamine5 = pakk.pop(kaart5[0])
  90.         minukäsi[kaart5[0]] = kaart5[1]
  91.         print('Sinu kaart on',kaart5[0],'.')
  92.         time.sleep(.5)
  93.  
  94.         if kasutaja_total > 21:
  95.             kasutaja_total = äss(minukäsi, kasutaja_total)
  96.             if kasutaja_total > 21:
  97.                 juurde = 'ei'
  98.                 print('Läksid üle. Mäng läbi')
  99.                 time.sleep(.5)
  100.                 print('Kas sooviksid uuesti mängida? ')
  101.                 uuesti = input()
  102.                 if uuesti == 'jah':
  103.                     sega(pakk, minukäsi, diilerikäsi)
  104.                 elif uuesti == 'ei':
  105.                     sys.exit()
  106.  
  107.     while diileri_total < 16:
  108.         kaart6 = random.choice(pakk.items())
  109.         diileri_total += kaart6[1]
  110.         eemaldamine6 = pakk.pop(kaart6[0])
  111.         diilerikäsi[kaart6[0]] = kaart6[1]
  112.         time.sleep(.5)
  113.         print('Diiler võttis lisakaardi.')
  114.         time.sleep(.5)
  115.         print('Diileril on', kaart6[0], '.')
  116.         time.sleep(.5)
  117.  
  118.     if diileri_total > 16:
  119.         print('Diiler ei võtnud lisakaarti.')
  120.  
  121.     if diileri_total > 21:
  122.         print('Diiler läks üle. Sina võidad.\n')
  123.         time.sleep(.5)
  124.         print('Kas sooviksid uuesti mängida? ')
  125.         uuesti = input()
  126.         if uuesti == 'jah':
  127.             sega(pakk, minukäsi, diilerikäsi)
  128.         elif uuesti == 'ei':
  129.             sys.exit()
  130.  
  131.         if(kasutaja_total > diileri_total) and (kasutaja_total < 22) and (diileri_total < 22):
  132.             print('Sina võitsid.')
  133.             time.sleep(.5)
  134.             print('Kas sooviksid uuesti mängida?')
  135.             uuesti = input()
  136.             if uuesti == 'jah':
  137.                 sega(pakk, minukäsi, diilerikäsi)
  138.             elif uuesti == 'ei':
  139.                 sys.exit()
  140.  
  141.         if(kasutaja_total < diileri_total) and (kasutaja_total < 22) and (diileri_total < 22):
  142.             print('Sinu kaotasid.')
  143.             time.sleep(.5)
  144.             print('Kas sooviksid uuesti mängida?')
  145.             uuesti = input()
  146.             if uuesti == 'jah':
  147.                 sega(pakk, minukäsi, diilerikäsi)
  148.             elif uuesti == 'ei':
  149.                 sys.exit()
  150.  
  151.         if(kasutaja_total == diileri_total) and (kasutaja_total < 22) and (diileri_total < 22):
  152.             print('Jäite viiki.')
  153.             time.sleep(.5)
  154.             print('Kas sooviksid uuesti mängida?')
  155.             uuesti = input()
  156.             if uuesti == 'jah':
  157.                 sega(pakk, minukäsi, diilerikäsi)
  158.             elif uuesti == 'ei':
  159.                 sys.exit()
  160.  
  161. def äss(minukäsi, kasutaja_total):
  162.     for kaart in minukäsi:
  163.         if kaart in ['Risti äss', 'Ruutu äss', 'Ärtu äss', 'Poti äss']:
  164.             kasutaja_total = kasutaja_total - 10
  165.         return kasutaja_total
  166.  
  167. def sega(pakk, minukäsi, diilerikäsi):
  168.     pakk.update(minukäsi)
  169.     pakk.update(diilerikäsi)
  170.     jaga(pakk)
  171.  
  172. def main():
  173.     print('Tere tulemast blackjacki.')
  174.     time.sleep(.5)
  175.     Mäng = int(1)
  176.     while Mäng == 1:
  177.         print('Kas soovid mängida?(jah/ei)')
  178.         vastus = str(input())
  179.         if vastus == 'jah':
  180.             print('Alustame mänguga')
  181.             time.sleep(.5)
  182.             jaga(pakk)
  183.             Mäng = 0
  184.         elif vastus == 'ei':
  185.             time.sleep(.5)
  186.             print('Nägemiseni.')
  187.             Mäng = 0
  188.         else:
  189.             time.sleep(.5)
  190.             print('Jah või ei?')
  191. main()
  192.  
  193.  


Ning veateade:
python:
  1.  
  2. Traceback (most recent call last):
  3.   File "C:\Users\Siim\Desktop\moodleProge\blackjack.py", line 191, in <module>
  4.     main()
  5.   File "C:\Users\Siim\Desktop\moodleProge\blackjack.py", line 182, in main
  6.     jaga(pakk)
  7.   File "C:\Users\Siim\Desktop\moodleProge\blackjack.py", line 40, in jaga
  8.     kaart1 = random.choice(pakk.items())
  9.   File "C:\Python32\lib\random.py", line 252, in choice
  10.     return seq[i]
  11. TypeError: 'dict_items' object does not support indexing
  12.  

Kasutan python 3.2.3 versiooni, proovisin ka 2.7.3 versiooni, sellega läks programm tööle.
Aitäh
Kommentaarid: 29 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 26
tagasi üles
vaata kasutaja infot saada privaatsõnum
infidel
HV kasutaja
infidel

liitunud: 31.01.2004



Autoriseeritud ID-kaardiga

sõnum 16.01.2013 19:52:22 vasta tsitaadiga

Python 3 võlud. Lisa random.choice() sisse üks list():
kaart = random.choice(list(pakk.items()))

Asi on selles, et versioonivahetusega muudeti dictionary tüüpi ja vana süntaks enam ei tööta.
Kommentaarid: 35 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 34
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Blackjack
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.