簡體   English   中英

試圖編寫一個計數游戲,這個錯誤不斷發生,我不知道如何解決它(真的是初學者級別)

[英]Trying to code a counting game, this error keeps occuring and I'm not sure how to solve it (really beginner level)

我正在編寫一個計數游戲,計算機生成一個 3 位數字,你必須猜它。 如果你在正確的位置得到一個數字,你就會得到一個好球,如果你在錯誤的位置得到一個數字,你就會得到一個球。 我在代碼的第 12 行不斷收到錯誤消息。 有人可以幫忙嗎?

x = random.randint(1, 9) 
y = random.randint(1, 9)
z = random.randint(1, 9)
while True:
    try:
        user_guess_unlisted = int(input('What number do you want to guess?'))
    except:
        continue
    break
number_to_guess = [x, y, z] 
user_guess = list(user_guess_unlisted)
b = 0
s = 0
rloop = 1
while rloop:
    if user_guess[0] == number_to_guess[0]:
        s = s + 1
    if user_guess[0] == number_to_guess[1]:
        b = b + 1
    if user_guess[0] == number_to_guess[2]:
        b = b + 1
    if user_guess[1] == number_to_guess[0]:
        b = b + 1
    if user_guess[1] == number_to_guess[1]:
        s = s + 1
    if user_guess[1] == number_to_guess[2]:
        b = b + 1
    if user_guess[2] == number_to_guess[0]:
        b = b + 1
    if user_guess[2] == number_to_guess[1]:
        b = b + 1
    if user_guess[2] == number_to_guess[2]:
        s = s + 1
    print(str(s) + "S " + str(b) + "B")
    if s != 3:
        b = 0
        s = 0
        userguessunlisted = input('what number do you want to guess?')
        userguess = list(userguessunlisted)
    if s == 3:
        print('you win!')
        rloop = 0

您不能將整數轉換為列表。

你可以使用這個:

from random import randint

num = str(randint(0, 999)).zfill(3)

while True:
    while True:
        guess = input('Guess a number: ').zfill(3)
        if guess.isdigit():
            if int(guess) < 1000:
                break
    b = s = 0
    for i, n in enumerate(num):
        for j, g in enumerate(guess):
            if n == g:
                if i == j:
                    s += 1
                else:
                    b += 1
    print('Balls:', b)
    print('Strikes:', s)
    if s == 3:
        break
    print('')

輸出:

Guess a number: 123
Balls: 0
Strikes: 0

Guess a number: 456
Balls: 2
Strikes: 0

Guess a number: 654
Balls: 1
Strikes: 1

Guess a number: 647
Balls: 1
Strikes: 1

Guess a number: 657
Balls: 2
Strikes: 1

Guess a number: 675
Balls: 0
Strikes: 3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM