Угадай числовую игру Python - PullRequest
0 голосов
/ 30 мая 2020

Итак, я новичок в python, и передо мной стоит задача: я должен сделать игру «Угадай число» между мной и компьютером. Так вот где я сейчас.

import random


the_number = random.randint(1, 4)
guess = 0

print(the_number)
while guess != the_number:
    guess = int(input("Please enter a number: "))
    if guess > the_number:
        print("Player guess lower...\n")
    elif guess < the_number:
        print("Player guess higher...\n")
    else:
        print("Game Over! The number was", the_number,"The Player wins!")
        break


    guess = random.randint(1, 100)

    if guess > the_number:
        print("Computer guess lower...\n")
    elif guess < the_number:
        print("Computer guess higher...\n")
    else:
        print("Game Over! The number was", the_number,"The Computer wins!")
    break


print("Thank you for playing")

Я хочу знать, как сделать так, чтобы это не прекратилось, пока один из нас не окажется прав?

Ответы [ 4 ]

0 голосов
/ 30 мая 2020

Чтобы получить желаемый результат, вам просто нужно немного настроить код, break в операторе if для компьютера находится вне l oop else, поэтому он остановит выполнение независимо от того, что .

Чтобы противостоять этому условию, вы можете переместить break внутрь блока else. Таким образом, программа выйдет из строя только в том случае, если либо ЦП, либо вы правильно угадываете верное число.

Еще одна вещь, на которую я хотел обратить внимание, это то, что вы печатаете номер выбора в программе, если это угадывание игра, разве это не должно быть в задней части кода. Введя напечатанное число, вы можете выиграть игру в первой итерации.

И, чтобы отметить, ваша программа выбирает число из (1, 4), но компьютер настроен на угадание числа из (1, 100). Пожалуйста, отметьте ответ, если он правильный. Модифицированный код -

import random


the_number = random.randint(1, 4)
guess = 0

while guess != the_number:
    guess = int(input("Please enter a number: "))
    if guess > the_number:
        print("Player guess lower...\n")
    elif guess < the_number:
        print("Player guess higher...\n")
    else:
        print("Game Over! The number was", the_number,"The Player wins!")
        break

    guess = random.randint(1, 4)

    if guess > the_number:
        print("Computer guess lower...\n")
    elif guess < the_number:
        print("Computer guess higher...\n")
    else:
        print("Game Over! The number was", the_number,"The Computer wins!")
        break


print("Thank you for playing")
0 голосов
/ 30 мая 2020

Ваша проблема - это оператор break в конце while l oop. Код повторяется через l oop один раз, затем break заканчивает l oop.

0 голосов

Ваша ошибка в строке 27 break. Переместите его под else: или удалите . Собственно в строке 27 break стоит не обязательно . Итак, окончательный код будет таким:

import random


the_number = random.randint(1, 4)
guess = 0

print(the_number)
while guess != the_number:
    guess = int(input("Please enter a number: "))
    if guess > the_number:
        print("Player guess lower...\n")
    elif guess < the_number:
        print("Player guess higher...\n")
    else:
        print("Game Over! The number was", the_number,"The Player wins!")
        break


    guess = random.randint(1, 100)

    if guess > the_number:
        print("Computer guess lower...\n")
    elif guess < the_number:
        print("Computer guess higher...\n")
    else:
        print("Game Over! The number was", the_number,"The Computer wins!")


print("Thank you for playing")
0 голосов
/ 30 мая 2020

Вы можете сделать что-то подобное, чтобы сделать компьютер умнее.

import random

the_number = random.randint(1, 4)
guess = 0

print(the_number)
minPossible = 0
maxPossible = 100

while guess != the_number:
    guess = int(input("Please enter a number: "))
    if guess > the_number:
        print("Player, guess lower...\n")
        if guess < maxPossible:
            maxPossible = guess - 1
    elif guess < the_number:
        print("Player, guess higher...\n")
        if guess > minPossible:
            minPossible = guess + 1
    else:
        print("Game Over! The number was", the_number, "The Player wins!")
        break

    guess = random.randint(minPossible, maxPossible)

    if guess > the_number:
        print("Computer, guess lower...\n")
        maxPossible = guess - 1
    elif guess < the_number:
        print("Computer, guess higher...\n")
        minPossible = guess + 1
    else:
        print("Game Over! The number was", the_number,"The Computer wins!")


print("Thank you for playing")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...