Информатика в школе и дома: ОГЭ, ЕГЭ и ДэРэ
1,2K подписчиков

2 урок модуля №4 курса "Алгоритмика": знакомимся с важной структурой данных "Списки", отрабатываем навыки, переделываем игру на Pygame

2 урок модуля №4 курса "Алгоритмика": знакомимся ч важной структурой данных "Списки", отрабатываем навыки, переделываем игру на Pygame

Задание 2. «Pygame: игра со списками»
1. Текст программы:
 
#Подключение нужных модулей
import pygame
from random import randint
pygame.init()
#создание окна игры
clock = pygame.time.Clock()
back = (255, 255, 255) #цвет фона (background)
mw = pygame.display.set_mode((500, 500)) #окно программы (main window)
mw.fill(back)
#цвета
BLACK = (0, 0, 0)
LIGHT_BLUE = (200, 200, 255)
class TextArea():
 def __init__(self, x=0, y=0, width=10, height=10, color=None):
     self.rect = pygame.Rect(x, y, width, height)
     self.fill_color = color
     #возможные надписи
     self.titles = list()
 
 #добавить текст в список возможных надписей
 def add_text(self, text):
     self.titles.append(text)
 
 #установить текст
 def set_text(self, number=0, fsize=12, text_color=BLACK):
     self.text = self.titles[number]
     self.image = pygame.font.Font(None, fsize).render(self.text, True, text_color)
   
 #отрисовка прямоугольника с текстом
 def draw(self, shift_x=0, shift_y=0):
     pygame.draw.rect(mw, self.fill_color, self.rect)
     mw.blit(self.image, (self.rect.x + shift_x, self.rect.y + shift_y)) 
#создание карточек
quest_card = TextArea(120, 100, 290, 70, LIGHT_BLUE)
quest_card.add_text('Вопрос')
quest_card.add_text('Что изучаешь в Алгоритмике?')
quest_card.add_text('На каком языке говорят во Франции?')
quest_card.add_text('Что растёт на яблоне?')
quest_card.add_text('Что падает с неба во время дождя?')
quest_card.add_text('Что едят на ужин?')
quest_card.set_text(0, 75)
ans_card = TextArea(120, 240, 290, 70, LIGHT_BLUE)
ans_card.add_text('Ответ')
ans_card.add_text('Python')
ans_card.add_text('Французский')
ans_card.add_text('Яблоки')
ans_card.add_text('Капли дождя')
ans_card.add_text('Жаркое с грибами')
ans_card.set_text(0, 75)
quest_card.draw(10,10)
ans_card.draw(10,10)
 
while 1:
 pygame.display.update()
 for event in pygame.event.get():
     if event.type == pygame.KEYDOWN:
         if event.key == pygame.K_q:
             num = randint(1, len(quest_card.titles)-1)  
             quest_card.set_text(num, 25)
 
             quest_card.draw(10,25)
         if event.key == pygame.K_a:
             num = randint(1, len(ans_card.titles)-1)
             ans_card.set_text(num, 25)
 
             ans_card.draw(10, 25)
 clock.tick(40)
Код Будущего. Разжевывание и помощь
Подборка · 
Информатика в школе и дома: ОГЭ, ЕГЭ и ДэРэ
 · 29 из 40
Далее: Урок №3 модуля 4 курса "Алгоритмика". Закрепляем списки в Python, дорабатываем черепашьи бега, говорим о базах данных и поиске информации
Код Будущего. Разжевывание и помощь · 29 из 40