Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #54875

Re: card dealer

Date 2013-09-27 12:27 +0100
From MRAB <python@mrabarnett.plus.com>
Subject Re: card dealer
References <0617088e-5aa3-4c5d-b660-22040ee858a1@googlegroups.com>
Newsgroups comp.lang.python
Message-ID <mailman.377.1380281278.18130.python-list@python.org> (permalink)

Show all headers | View raw


On 27/09/2013 11:24, markotaht@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.
>
Suppose random(...) returns 0.

In 'vali_järgmine_vaba', n == 0, so it won't run anything in the
'while' loop, therefore i == -1, therefore:

     kaart_tõmmatud[-1] = True

(which sets the last item in the list).

If random(...) returns 0 again (which is possible),
'vali_järgmine_vaba' will do exactly the same thing.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

card dealer markotaht@gmail.com - 2013-09-27 03:24 -0700
  Re: card dealer Dave Angel <davea@davea.name> - 2013-09-27 11:26 +0000
  Re: card dealer MRAB <python@mrabarnett.plus.com> - 2013-09-27 12:27 +0100
  Re: card dealer Alister <alister.ware@ntlworld.com> - 2013-09-27 11:41 +0000
  Re: card dealer Dave Angel <davea@davea.name> - 2013-09-27 12:08 +0000
    Re: card dealer Denis McMahon <denismfmcmahon@gmail.com> - 2013-09-27 16:10 +0000
      Re: card dealer Dave Angel <davea@davea.name> - 2013-09-27 21:00 +0000
      Re: card dealer Ned Batchelder <ned@nedbatchelder.com> - 2013-09-27 17:40 -0400
        Re: card dealer Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-09-28 06:01 +0000
          Re: card dealer Ned Batchelder <ned@nedbatchelder.com> - 2013-09-28 06:31 -0400
          Re: card dealer Dave Angel <davea@davea.name> - 2013-09-28 12:56 +0000
          Re: card dealer Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-09-28 16:49 +0200
            Re: card dealer Tim Roberts <timr@probo.com> - 2013-09-28 17:04 -0700

csiph-web