2017-09-22 13 views
1

私はユーザーに尋ねようとしています:
エースを描く場合は、1または11にしたいかどうかを尋ねます。 これらは整数に答えるか、残念ながら、私はこれをエースとして残しています。リストに整数を代入する

import time 
import random 
from random import * 

suits = ["Hearts","Diamonds","Clubs","Spades"] 
cards = ["Ace","2","3","4","5","6","7","8","9","10","Jack","Queen","King"] 

def drawcard(): 
    global newcardtype 
    global newcardsuit 
    global newcard 
    newcardtype = cards[randint(0,11)] ##User interface & Console 
    newcardsuit = suits[randint(0,3)] ##User interface & Console 
    newcard = newcardtype, newcardsuit ##Console to read and understand 
    print("You picked up: " + str(newcardtype) + " of " + str(newcardsuit) + ".") 

suits[0] = "♡" 
suits[1] = "♢" 
suits[2] = "♧" 
suits[3] = "♤"  

cards[10] = 10 
cards[11] = 10 
cards[12] = 10 

while(True): 
    test = input("New card? ") 
    if test == "y": 
     drawcard() 
     if newcardtype == cards[0]: 
      acequestion = int(input("You picked up an Ace. Would you like your Ace to be 1 or 11?: ")) 
      if acequestion == 1: 
       cards[0] = int(1) 
      if acequestion == 11: 
       cards[0] = int(11) 
     print(newcardtype) 

それは働くためにですが、私は「acequestion」の質問への回答に基づいて1または11のいずれかに等しくなるように、「エース」であるcards[0]をしたいです。

+2

'int(1)' ??過剰な –

+0

@ Jean-FrançoisFabreおそらく、私はごめんなさいより安全だと思っていました。私はPythonを初めて使ったので、それが動作するようにしたいのでエラーと混同しないようにしました –

答えて

2

番号1または11をcards[0]に割り当てていますが、newcardtypeが参照するオブジェクトまたは値は変更されないため、値はまだ'ace'です。 newcardtypeの値を変更する場合は、1または11を割り当てる必要があります。

+0

Ned Batchelderの話[Pythonの名前と値についての事実と神話](https://nedbatchelder.com)を見てください/text/names1.html)。 – skrx

関連する問題