Ескерту: Мақала сапасы туралы ақпараттарды, сертификат, анықтама және журналға тапсырыс беру батырмаларын мақала авторы немесе журнал тілшісі ғана көре алады.

Создание игры на базе языка программирования Python

Информатика
Создание игры на базе языка программирования Python

Мақала авторы: Редакция ғана көре алады
Жұмыс орны: Тюлькубасский колледж агробизнеса и туризма
Лауазымы: Преподаватель информатики
Порталға жариялану мерзімі: 17.11.2022
Журнал қорына жариялаған: Редакция A.


Аннотация: Python — стремительно развивающийся язык программирования современности. Теоретически код Python можно писать прямо в оболочке, но как только вы нажимаете [Return] в конце строки кода, она будет немедленно выполнена. В принципе Python в таком режиме можно использовать как несложный калькулятор; например, можно ввести в приглашении 3*5, и Python выведет ответ 15 в следующей строке. Тем не менее такой стиль ввода не подойдет для более сложных программ. Намного лучше открыть новое окно, ввести в нем весь код, а затем сохранить и запустить его.

Ключевые слова: язык програмирование Python, цикл, ветвление, случайные числы, Черепашья графика, Графический интерфейс Tkinter, игрушка «рулетка». Чтобы создать новое окно, в котором вы будете писать код, откройте меню File и выберите команду New. После того как код будет введен в новом окне, вы можете сохранить его и выполнить сразу всю программу. Код будет выполнен в окне командной оболочки. Возможен и другой вариант: программу Python можно напи- сать в любом текстовом редакторе, а потом сохранить файл с расширением .py (без этого программа работать не будет). Такие программы можно запускать из командной строки, при этом необходимо указать полный путь к каталогу и имя файла.

В Python можно рисовать с использованием черепахи (turtle). Используя различные команды и циклы, можно строить сложные изображения. Вот как это работает.

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

import turtle - Эта строка включается в начало вашей программы, чтобы импортировать библиотеку
turtle - в Python. Импортирование позволит вам использовать функции для работы с черепахой.
scr = turtle.Screen() -  Определяет окно с помощью названия «scr». Это позволяет использовать сокращенную запись scr вместо того, чтобы каждый раз обращаться к окну, используя полное имя.
scr.bgcolor("yellow") -  Назначает экрану желтый цвет фона. По умолчанию используется белый цвет фона, если  только вы не измените его.
turtle.pensize(3) - Устанавливает размер пера черепахи (толщину рисуемой линии) со значением 3. По умолчанию он равен 1, пока вы не измените его.
turtle.penup() -  Отключает перо, чтобы при перемещении за черепахой не оставался видимый след.
turtle.pendown() - Включает перо, чтобы при перемещении черепахи оставался видимый след. По умолчанию перо включено
turtle.left(120) -  Поворачивает черепаху на 120° налево (против часовой стрелки).
turtle.right(90) - Поворачивает черепаху на 90° вправо (по часовой стрелке).
turtle.forward(50) - Перемещает черепаху вперед на 50 шагов.
turtle.showturtle() - Отображает черепаху на экране. По умолчанию черепаха отображается.
turtle.hideturtle() - Скрывает черепаху, чтобы она не была видна на экране.
turtle.shape("turtle") -  Изменяет внешний вид черепахи так, чтобы она выглядела как черепаха. По умолчанию черепаха изображается в виде маленькой стрелки.
turtle.begin_fill() - Выполняется перед кодом, рисующим фигуру, чтобы нарисованная фигура была автоматически  заполнена.
turtle.end_fill() - Выполняется после кода, рисующего фигуру, чтобы отключить автоматическое заполнение фигур.
turtle.color("black", "red") -  Определяет цвета заполнения фигур. В данном примере рисуется фигура с черным  контуром и красной заливкой. Команда должна выполняться до рисования фигуры.
turtle.exitonclick() -  Когда пользователь щелкает на окне черепахи, оно автоматически закрывается.
Графический интерфейс (GUI, Graphic User Interface) упрощает использование программы. Он позволяет программисту создавать диалоговые окна, текстовые поля и кнопки, благодаря которым взаимодействие с программой становится более удобным для пользователя.
Tkinter — библиотека Python, которая предоставляет функциональные возможности для создания графических интерфейсов. Взгляните на следующий код и особенно на единицы измерения в строках window.

geometry и button.place.

from tkinter import *
def Call():
     msg = Label(window, text = "You pressed the button")
     msg.place(x = 30, y = 50)
     button["bg"] = "blue"
     button["fg"] = "white"
window = Tk()
window.geometry("200x110")
button = Button(text = "Press me", command = Call)
button.place(x = 30, y = 20, width = 120, height = 25)
window.mainloop()
Строка geometry определяет размер окна, а строка place — позицию конкретного элемента в этом окне.
 from tkinter import * -  Эта строка должна находиться в самом начале программы для импортирования библиотеки Tkinter.
 window = Tk() 
 window.title("Window Title")
 window.geometry("450x100") -  Создает окно, которое будет использоваться для вывода (переменная  window), добавляет заголовок и определяет размер окна.
 label = Label(text = "Enter number: ") - Добавляет на экран текстовый элемент, содержащий заданное сообщение.
 entry_box = Entry (text = 0) -  Создает пустое текстовое поле. Текстовые поля используются для ввода или вывода данных.
 output_box = Message(text = 0) - Создает область для вывода данных.
 output_box ["bg"] = "red"- Задает цвет фона для объекта.
 output_box ["fg"] = "white" - Задает цвет шрифта для объекта.
 output_box ["relief"] = "sunken" - Задает стиль объемного обрамления элемента: отсутствие рамки (flat), эффект рельефа (raised), углубления (sunken), эффект углубленной рамки (groove) или рельефной рамки (ridge).
 list_box = Listbox() -  Создает раскрывающийся список, который может содержать только строки.
 entry_box ["justify"] = "center" -  Задает режим выравнивания текста в текстовом поле, но не работает для областей вывода данных.
 button1 = Button(text = "Click here", command = click) - Создает кнопку для запуска подпрограммы click.
 label.place(x = 50, y = 20, width = 100, height = 25) - Задает позицию, в которой объект будет располагаться в окне. Если позиция не задана, то объект не отобразится в окне.
 entry_box.delete(0, END) - Удаляет содержимое отдельного элемента или всего списка.
 num = entry_box.get() -  Сохраняет содержимое поля ввода текста и сохраняет его в переменной num. Не работает для областей вывода данных.
 answer = output_txt["text"] - Получает содержимое области вывода данных и сохраняет его в переменной answer. Не работает для полей текстового ввода.
 output_txt["text"] = total - Изменяет содержимое области вывода данных для отображения значения переменной total.
 window.mainloop()  - Чтобы ваша программа работала, она должна завершаться этой командой.

Исходя из этого теоретического материала, напишем программу следующей  игры «Рулетка».

<import turtle
import tkinter as tk
import random
def engiz():
    q=Entry3.get()
    q1=Entry2.get()
    q2=Entry4.get()
    if q=="красный":
        q="red"
    if q=="зеленный":
        q="green"
    if q=="желтый":
        q="yellow"
    if q1=="красный":
        q1="red"
    if q1=="зеленный":
        q1="green"
    if q1=="желтый":
        q1="yellow"
    if q2=="красный":
        q2="red"
    if q2=="зеленный":
        q2="green"
    if q2=="желтый":
        q2="yellow"
    turtle.shape("turtle")
    turtle.showturtle()
    turtle.speed(10)
    turtle.penup()
    turtle.goto(-150, -250)
    turtle.pendown()   
    a=random.choice( ["red", "green", "yellow"])
    turtle.color(a,a)
    turtle.begin_fill()
    turtle.circle(50)
    turtle.end_fill()
    turtle.penup()
    turtle.forward(150)
    turtle.pendown()
    b=random.choice( ["red", "green", "yellow"])
    while a==b:
           b=random.choice(["red", "green", "yellow"])
    turtle.color(b,b)
    turtle.begin_fill()
    turtle.circle(50)
    turtle.end_fill()
    turtle.penup()
    turtle.forward(150)
    turtle.pendown()
    c=random.choice(["red", "green", "yellow"])
    while c==a or c==b:
        c=random.choice(["red", "green", "yellow"])
    turtle.color(c,c)
    turtle.begin_fill()
    turtle.circle(50)
    turtle.end_fill()
    w=Entry1.get()
    w = int(w)
        if q==a and q1==b and q2==c:
        w1=w*3
    elif q==a and q1==b or q==a and q2==c or q1==b and q2==c:
        w1=w*2
    elif q==a or q1==b or q2==c:
        w1=w
    else:    
        w1=0
    text_box["text"] = w1
screen = turtle.Screen()
screen.bgcolor("cyan")
canvas = screen.getcanvas()
button = tk.Button(canvas.master, text="Начать", command=engiz)
canvas.create_window(-200, 100, window=button)
Message = tk.Message(canvas.master, text = "Здравствуйте! Правило игры: с начало делаете вставку (записываем сумму вставки),  три круга окрашивается на три цвета красный, зеленый и желтый. Вы должны будете угадать, ели угадаете все три цвета то ваша вставка увеличивается три раза, если угадаете два цвета ваша вставка увеличивается два раза, если только один цвет то ваша вставка сохраняется, если не угадаете вы потеряете денги. Удачи! ")
canvas.create_window(0, -200, width = 200, height = 150, window=Message)
Label1 = tk.Label(canvas.master, text="Делайте вставку")
canvas.create_window(-200, -100, window=Label1)
Entry1 = tk.Entry(canvas.master)
canvas.create_window(-50, -100, window=Entry1)
Label2 = tk.Label(canvas.master, text="введите цвет")
canvas.create_window(-200, -50, window=Label2)
Entry2 = tk.Entry(canvas.master)
canvas.create_window(-50, -0, window=Entry2)
Label3 = tk.Label(canvas.master, text="введите цвет")
canvas.create_window(-200, -0, window=Label3)
Entry3 = tk.Entry(canvas.master)
canvas.create_window(-50, -50, window=Entry3)
Label4 = tk.Label(canvas.master, text="введите цвет")
canvas.create_window(-200, 50, window=Label4)
Entry4 = tk.Entry(canvas.master)
canvas.create_window(-50, 50, window=Entry4)
Label5 = tk.Label(canvas.master, text="Ваш выигрыш")
canvas.create_window(60, 50, window=Label5)
text_box=tk.Message(canvas.master, text="")
canvas.create_window(150, 50, width = 100, height = 25, window=text_box)
turtle.done()>

Список литературы

  1. Николя Л. «Python, например» Санк-Петербург москва- минск 2021
  2. Дмитрий З. «1400 задач по программированию» Москва, 2020
  3. Абдрахманов М. «Python Визуализация данных» 2020
  4. Васильев А. «Программирование на Python в примерах и задачах» Москва : Эксмо, 2021.
  5. Елжанова Г. «Python бағдарламалау тіліне арналған есептер жинағы» Әдістемелік құрал.