Запрограммируйте игру по угадыванию чисел с помощью Python

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

Математически доказано, что максимальное количество догадок, необходимое для этой игры, равно логической базе 2 диапазона плюс 1 с округлением в большую сторону. Так, например, если число верхней границы равно 100, а число нижней границы равно 20, тогда диапазон составляет 100–20 = 80, а максимальное количество необходимых предположений будет равняться логарифмической базе 2 из 80 + 1 с округлением в большую сторону, что составляет примерно 6,3219, таким образом, максимальное количество предположений будет 6,3219 с округлением в большую сторону, что составляет 7!

Максимальное количество оборотов = База логарифма 2 (диапазон +1) с округлением в большую сторону

Эта игра была запрограммирована много раз разными людьми по-разному, но я думаю, что важно иметь все эти разные точки зрения для решения такой проблемы и демонстрации / написания другого кода для решения той же проблемы, поскольку это помогает другим разрабатывать собственное понимание проблемы. Итак, с учетом сказанного, я собираюсь сослаться на другую статью авторов по этой теме, чтобы вы могли увидеть, как они создали эту игру, и, возможно, лучше понять саму игру и то, как ее кодировать. Медиум писателя - Вакар Али Сиял, и он демонстрирует несколько иной способ программирования игры по угадыванию чисел на Python, чем я в своей статье. Игра по угадыванию чисел в Python, поэтому обязательно загляните на его страницу, чтобы узнать о немного другой программе!

Теперь, прежде чем мы начнем, если вам нравятся мои статьи и контент и вы хотите больше контента по ИТ, AWS, программированию, акциям, инвестициям, финансам, машинному обучению и т. Д., Тогда, пожалуйста, дайте этой статье несколько хлопков, она определенно поможет и я искренне это ценю! Итак, приступим!

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

Начать программирование

Сначала нам нужно установить библиотеки для этой программы.

import math
import random

Затем мы напишем для игрока инструкцию print.

print('Welcome To The Number Guessing Game')
print('Please Guess A Number From 0 - 100:')

Пришло время сгенерировать случайное число от 0 до 100.

#Create a random number from 0 to 100
rand_num = random.randint(0, 100)

Покажем максимальное количество предположений, которое потребуется человеку, чтобы угадать правильный ответ.

max_guesses = round(math.log(100 - 0 + 1, 2))
print("You have",max_guesses,"chances to guess the number!\n")

Создайте переменную для подсчета количества предположений.

# Create a variable to count the number of guesses.
count = 0

Начнем игру!

while True :
  #Increment count
  count = count + 1 
  
  #Check if count is more than the number of turns given
  if count > max_guesses:
    print("You've exceeded the number of guesses.")
    print("The number was, rand_num")
    break;
  player_guess = int(input('Please Guess A Number From 0 - 100:'))
  if player_guess == rand_num:
    print("You guessed the number in",count,"turn(s) !")
    break;
  elif player_guess < rand_num:
    print("The number is higher")
  elif player_guess > rand_num:
    print("The number is lower")

Готово! Надеюсь, это было весело или полезно для вас!

Если вы хотите больше узнать о Python, одном из самых быстрорастущих языков программирования, который используют многие компании и отделы информатики, то я рекомендую вам ознакомиться с книгой Learning Python, написанной Марком Лутцем.

Спасибо, что прочитали эту статью. Надеюсь, она была вам интересна! Если вам понравилась эта статья и вы нашли ее полезной, пожалуйста, оставьте несколько аплодисментов, чтобы выразить свою признательность. Если вы еще не являетесь участником Medium, подумайте о том, чтобы стать участником, если не для моих статей, то для всех других замечательных статей и авторов на этом сайте. Вы можете легко стать участником Medium, перейдя по ссылке здесь. Продолжайте учиться, и если вам нравятся финансы, информатика или программирование, посетите и подпишитесь на мои каналы YouTube (randerson112358 и computer science).