Автор оригинала: Robin Andrews.
Вот что-то веселое.
Игра 21 игра для подсчета двух игроков, где каждый игрок может добавить 1 , 2 или 3 , начиная с нуля, к общей сложности. Всего не должно превышать 21 и игрок, который приземляется на 21 проигрывает.
Python Console 21 игра
Вы можете играть в игру против компьютера, используя этот аксессуар – просто нажмите на Беги кнопка для начала.
Список кода Python для игры 21
Часто бывает отличная идея запустить код Python с помощью установленной версии Python на вашем компьютере, а не в браузере. Одной из причин в том, что некоторые реализации на основе браузера имеют тонко разные поведения в «реальной» установке Python, а другой – это то, что рано или поздно, если вы серьезно относитесь к программированию Python, вам нужно будет работать с полной версией, которая позволяет установить пакеты и доступ к вашей файловой системе. Итак, вот полное листинг кода для Python 3.
"""
The 21 Game - Compucademy
"""
import random
import time
while True:
print(r"""
_______ _ ___ __ _____
|__ __| | |__ \/_ | / ____|
| | | |__ ___ ) || | | | __ __ _ _ __ ___ ___
| | | '_ \ / _ \ / / | | | | |_ |/ _` | '_ ` _ \ / _ \
| | | | | | __/ / /_ | | | |__| | (_| | | | | | | __/
|_| |_| |_|\___| |____||_| \_____|\__,_|_| |_| |_|\___|
""")
current_number = 1
if random.randint(0, 1) == 0:
current_player = "human"
else:
current_player = "computer"
while current_number <= 21:
print("The current number is " + str(current_number) + ".")
print()
if current_player == "human":
print("Add 1, 2, or 3. Do not pass 21. The player who lands on 21 loses.")
player_choice = ""
while player_choice not in ["1", "2", "3"]:
player_choice = input("What will you add? ")
player_choice = int(player_choice)
current_number = current_number + player_choice
print()
if current_number >= 21:
print("The current number is " + str(current_number) + ".")
print()
print("Sorry, you lose.")
break
current_player = "computer"
else:
computer_choice = random.randint(1, 3)
current_number = current_number + computer_choice
print("Computer turn. The computer choses " +
str(computer_choice) + ".")
print()
time.sleep(1)
if current_number >= 21:
print("The current number is " + str(current_number) + ".")
print()
print("Well done, you won!")
break
current_player = "human"
print()
play_again = input("Do you want to play again? ")
if play_again.lower().startswith("y"):
continue
else:
print("Goodbye")
break
Эта книга – отличное введение в создание игр с помощью Python:
Как ассортимент Amazon, я зарабатываю от квалификационных покупок.
Стратегия для 21 игры
Компьютерный противник в программе выше не использует какую-либо конкретную стратегию, поэтому с небольшим количеством умного мышления вы можете найти стратегию, которая позволяет вам выиграть все или большую часть времени, возможно, в зависимости от того, кто начинается. Один из способов изучить это с помощью Визуальное представление Отказ С Python один из моих любимых инструментов для создания визуальных представлений является Графический модуль черепахи.
Вы можете запустить код в браузере, используя встроенный REPL.IT кадр ниже. У меня есть reft.it steped of trinket.io, чтобы встроить код как reft.it имеет лучшую поддержку для некоторых методов графики черепахи, которые я использую в коде.
Код позволяет переключать цвет квадратов в представлении игры, чтобы вы могли видеть, как вы можете выиграть. Если вам нужен Подсказка В стратегии думайте, что может составить «безопасную площадь».
Вот полный список кодов. Вы можете использовать кнопки в верхней части, чтобы скопировать код, если вам нужно.
import turtle
TURTLE_SIZE = 20 # This is the default for a `square` turtle
SQUARE_SIZE = 20
FONT_SIZE = 12
FONT = ('Arial', FONT_SIZE, 'normal')
def toggle(box):
"""Toggles the colour of a Turtle when it is clicked."""
if box.color()[0] == "Red":
box.color("Green")
else:
box.color("Red")
# Screen setup
screen = turtle.Screen()
screen.setup(600, 200)
screen.title("The 21 Game")
screen.bgcolor("black")
# Disable animation
screen.tracer(0)
# Create 21 clickable squares
for i in range(21):
box = turtle.Turtle("square")
def click_callback(x, y, box=box):
"""Passes `box` to `toggle()` function."""
return toggle(box)
box.shapesize(SQUARE_SIZE / TURTLE_SIZE)
box.color("Red")
box.penup()
box.goto(-231 + i * (SQUARE_SIZE + 2), 0)
box.onclick(click_callback)
# Write numbers above the squares
pen = turtle.Turtle(visible=False)
pen.color("white")
pen.penup()
pen.goto(-231, 22)
for i in range(21):
pen.write(str(i + 1), align="center", font=FONT)
pen.forward(22)
# Restore animation
screen.tracer(1)
turtle.done()
Надеюсь, комментарии помогут понять, как работает этот код, но есть пара вещей, чтобы указать.
Click Callback (функция, которая называется событием Click, обнаружена на черепахе), нуждается в дополнительном параметре, поэтому его можно прикрепить к конкретной черепахе. Это заставило меня на некоторое время тупаться, но потом я нашел эта ссылка что объясняет, как это сделать. Если вы не знаете, Модуль черепахи построит на Tkinter Таким образом, решение проблемы, связанные с черепами, могут привлекать мышление о том, что происходит с Tkinter.
Чтобы сэкономить необходимость дождаться рисования, чтобы иметь место, я использовал
Screen.Tracer (0)ТогдаScreen.Traacer (1)Чтобы повторно включить анимацию после завершения рисунка.
Хитрость «Дополнительные аргументы» означает, что создание этого кода с нуля – это больше промежуточного упражнения, чем один для начинающих, но как демонстрация того, что возможно с Python Turtle Graphics а также полезный способ помочь вам стать экспертом на Игра 21 Я думаю, что это довольно аккуратно.
Я надеюсь, что вам нравится играть в эту игру и исследуя код Python, который он использует.