Fueren
Hectopat
- Katılım
- 23 Aralık 2023
- Mesajlar
- 2.053
- Makaleler
- 2
- Çözümler
- 36
Daha fazla
- Cinsiyet
- Erkek
- Meslek
- YKS Öğrencisi
Hocam bu kod bizim hocamızın istediği bir oyunun kodu. Atasözü eşleştirme oyunu diyebiliriz aslında. Ben bu oyunda önce "words" adında içinde listeler olan bir liste oluşturdum. İstediğim şey oluşturduğum "rect1, rect2, rect3" şekillerinin içine bu atasözlerinin yazılması. Fakat bir line hatası alıyorum sebebi nedir? Çözüp yollayabilir misiniz?
Python:
import pygame, sys, random
pygame.init()
def display_text(val: str, pos: tuple):
text_surf = font.render(val, True, 'white')
text_rect = text_surf.get_rect(center = pos)
screen.blit(text_surf, text_rect)
screen = pygame.display.set_mode((850, 600))
pygame.display.set_caption('Atasözü Eşleştirme Oyunu')
clock = pygame.time.Clock()
font = pygame.font.SysFont('Calibri', 20, False, False)
canDraw = True
rect1 = pygame.rect.Rect((100, 100), (225, 100))
rect2 = pygame.rect.Rect((100, 250), (225, 100))
rect3 = pygame.rect.Rect((100, 400), (225, 100))
rect_meaning1 = pygame.rect.Rect((525, 100), (225, 100))
rect_meaning2 = pygame.rect.Rect((525, 250), (225, 100))
rect_meaning3 = pygame.rect.Rect((525, 400), (225, 100))
words = [['Mart kapıdan baktırır,', 'kazma kürek yaktırır'], ['Otu çek, köküne bak'], ['Etle tırnak arasına girilmez']]
words_alt = words
num = random.randint(0, len(words) - 1)
screen.fill('#63a0b0')
pygame.draw.rect(screen, '#93b858', rect1)
pygame.draw.rect(screen, '#93b858', rect2)
pygame.draw.rect(screen, '#93b858', rect3)
pygame.draw.rect(screen, '#bfc965', rect_meaning1)
pygame.draw.rect(screen, '#bfc965', rect_meaning2)
pygame.draw.rect(screen, '#bfc965', rect_meaning3)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
while canDraw:
if len(words[num]) > 1:
display_text(words[num][0], (rect1.centerx, rect1.centery - 15))
display_text(words[num][1], (rect1.centerx, rect1.centery + 15))
words.remove(words[num])
elif len(words[num]) == 1:
display_text(words[num][0], rect1.center)
words.remove(words[num])
num_alt = num
while num != num_alt:
num = random.randint(0, len(words) - 1)
if len(words[num]) > 1:
display_text(words[num][0], (rect2.centerx, rect1.centery - 15))
display_text(words[num][1], (rect2.centerx, rect1.centery + 15))
words.remove(words[num])
elif len(words[num]) == 1:
display_text(words[num][0], rect2.center)
words.remove(words[num])
num_alt = num
while num != num_alt:
num = random.randint(0, len(words) - 1)
if len(words[num]) > 1:
display_text(words[num][0], (rect3.centerx, rect1.centery - 15))
display_text(words[num][1], (rect3.centerx, rect1.centery + 15))
words.remove(words[num])
elif len(words[num]) == 1:
display_text(words[num][0], rect3.center)
words.remove(words[num])
canDraw = False
pygame.display.update()
clock.tick(60)