Как создать игру “Камень, ножницы, бумага” на Python. Уроки Python для детей и подростков
На языке Python дети могут создавать множество разных проектов, в том числе игры. Школа программирования “Пиксель” делится бесплатными уроками по освоению Python для детей от 10 лет. В этом материале мы расскажем, как легко, быстро и просто написать программу “Камень, ножницы, бумага” на языке программирования Python.
Первым, что мы запишем, будет импортирование нужных нам модулей — все они встроенные, то есть их не нужно скачивать отдельно.
tkinter random
Следующим шагом мы создадим класс Tk() и запишем его в переменную window. Сделав это, мы создали окно программы. После, чтобы программа запускалась, мы в конце кода должны активировать функцию mainloop(). Проверяем и у нас открывается окно программы.
Окно получилось небольшим. Чтобы настроить его размеры, мы используем параметр geometry, там мы запишем размер “800x400”. Также зададим название нашему окну с помощью параметра title.
После создадим класс Frame, в скобках мы должны указать, где мы хотим его создать, а следующей строкой задаем параметр его местоположения. Здесь мы используем относительные координаты, можно смотреть на них, как на проценты, то есть 1% по оси x, 1% по оси y и 98% ширины, 98% высоты. Также, чтобы вы увидели изменения в окне, мы зададим цвет данной рамке и после уберем его.
Теперь пришло время что-то написать в нашей программе, для этого мы используем класс Label. Здесь мы также указываем, в какое окно класса нужно поместить (помещаем его в нашу рамку), какой текст там будет находиться и снова указываем место на экране, на этот раз уже в обычных координатах. Текст получился небольшим, поэтому увеличим его шрифт.
Как записываются координаты? Они берут начало в левом верхнем углу, вправо идет ось x и вниз ось y, их размеры мы задавали вначале. Текст выставился так, как мы указали: по x=250, по y=20.
Дальше мы запишем еще 3 Label-а, куда поместим разный текст и поменяем стиль шрифта на normal. Под ними будет пространство для картинок.
Специально для этой программы мы заранее скачали картинки бумаги, камня и ножниц в формате png. Загрузим их в нашу программу отдельным классом PhotoImage. Мы хотим добавлять их по одному названию, для этого нам нужно, чтобы они были в одной папке с программой, иначе придется указывать весь путь к ним. Копируем и также загружаем остальные картинки.
Теперь поставим эти картинки в нашу игру. Для этого мы опять используем класс Label, показываем ему, куда мы хотим поставить картинки и в параметр image записываем их названия, которые мы пока оставим пустыми, так как ни игрок, ни компьютер ничего не выбрали.
Теперь создадим окошко, в которое будут выводиться результаты игры, то есть объявление, кто победил. Из нового здесь появился параметр width — ширина и borderwidth — он задает ширину границ. Чтобы границы отобразились, запишем параметр relief. Также размещаем наше окошко по координатам.
И наконец сделаем кнопки. Они создаются с помощью класса Button() и в них можно указать текст, также уточним здесь размер текста и ширину кнопки. После размещаем ее на экране. И создаем еще две кнопки.
Пока наши кнопки ничего не делаю. Чтобы это исправить, мы создаем функции, которые прикрепим к ним. Первая функция — Rock(). В переменную user запишем выбор игрока, а в переменную computer — случайный выбор компьютера, именно для этого мы и добавили модуль random. Пишем random.choice() и в скобках — список, из которого нужно выбирать.
Дальше запишем условия: если выбор игрока и компьютера совпал, то текст в нашем label4 измениться на “Ничью”. Чтобы поменять какие-то параметры у класса, мы пишем функцию config, а в ней указываем, что нужно поменять. После запишем условие: если компьютер выбрал бумагу, то он победил, а если оставшийся вариант (ножницы), то победил человек.
Чтобы присоединить функцию, которую мы создали к кнопке, в ее параметрах мы пишем command и записываем название функции. Проверим.
Все работает, но картинки не выводятся. Чтобы они выводились, нужно записать в созданных нами ранее Label-ах для картинок названия. Для этого мы опять используем config и меняем название с пустого на нужное нам. Проверяем, все работает.
Теперь пропишем подобные функции для двух оставшихся кнопок, они будут очень похожи, нужно только поменять названия. И также присоединяем созданные функции к кнопкам. На этом наша программа готова. Мы регулярно делимся новыми уроками по Python на нашем YouTube-канале, подписывайтесь, чтобы не пропустить следующие выпуски. А также присоединяйтесь к онлайн-курсу по Python для школьников в школе “Пиксель”.
Полный код программы "Камень, ножницы, бумага" на Python:
from tkinter import * import random
window = Tk()
window.geometry("800x400") window.title("ROCK PAPER SCISSORS") window.resizable(width=False, height=False)