Python Pygame kullanarak yapılan "Solo Test" oyunu kodunda hata var mı?

Fueren

Hectopat
Katılım
23 Aralık 2023
Mesajlar
2.053
Makaleler
2
Çözümler
36
Daha fazla  
Cinsiyet
Erkek
Meslek
YKS Öğrencisi
Python:
import pygame, sys


class Piyon(pygame.sprite.Sprite):
    def __init__(self, pos):
        super().__init__()
        self.image = pygame.image.load('piyon.png')
        self.rect = self.image.get_rect(center = pos)


    def draw(self):
        screen.blit(self.image, self.rect)


def restart():
    piyon1.draw()
    piyon2.draw()
    piyon3.draw()
    piyon4.draw()
    piyon5.draw()
    piyon6.draw()
    piyon7.draw()
    piyon8.draw()
    piyon9.draw()
    piyon10.draw()
    piyon11.draw()
    piyon12.draw()
    piyon13.draw()
    piyon14.draw()
    piyon15.draw()
    piyon16.draw()
    piyon18.draw()
    piyon19.draw()
    piyon20.draw()
    piyon21.draw()
    piyon22.draw()
    piyon23.draw()
    piyon24.draw()
    piyon25.draw()
    piyon26.draw()
    piyon27.draw()
    piyon28.draw()
    piyon29.draw()
    piyon30.draw()
    piyon31.draw()
    piyon32.draw()
    piyon33.draw()


def checkPlayable(piyon):
    select = piyon
    if piyon == 1:
        if container[3] == ' ':
            canPlayable = (True, 3)
        elif container[9] == ' ':
            canPlayable = (True, 9)
        else: canPlayable = False
   
    if piyon == 2:
        if container[10] == ' ':
            canPlayable = (True, 10)
        else: canPlayable = False


    if piyon == 3:
        if container[1] == ' ':
            canPlayable = (True, 1)
        elif container[11] == ' ':
            canPlayable = (True, 11)
        else: canPlayable = False
   
    if piyon == 4:
        if container[6] == ' ':
            canPlayable = (True, 6)
        elif container[16] == ' ':
            canPlayable = (True, 16)
        else: canPlayable = False
   
    if piyon == 5:
        if container[17] == ' ':
            canPlayable = (True, 17)
        else: canPlayable = False


    if piyon == 6:
        if container[4] == ' ':
            canPlayable = (True, 4)
        elif container[18] == ' ':
            canPlayable = (True, 18)
        else: canPlayable = False
   
    if piyon == 7:
        if container[21] == ' ':
            canPlayable = (True, 21)
        elif container[9] == ' ':
            canPlayable = (True, 9)
        else: canPlayable = False


    if piyon == 8:
        if container[10] == ' ':
            canPlayable = (True, 10)
        elif container[22] == ' ':
            canPlayable = (True, 22)
        else: canPlayable = False
   
    if piyon == 9:
        if container[1] == ' ':
            canPlayable = (True, 1)
        elif container[7] == ' ':
            canPlayable = (True, 7)
        elif container[11] == ' ':
            canPlayable = (True, 11)
        elif container[23] == ' ':
            canPlayable = (True, 23)
        else: canPlayable = False


    if piyon == 10:
        if container[2] == ' ':
            canPlayable = (True, 2)
        elif container[8] == ' ':
            canPlayable = (True, 8)
        elif container[12] == ' ':
            canPlayable = (True, 12)
        elif container[24] == ' ':
            canPlayable = (True, 24)
        else: canPlayable = False


    if piyon == 11:
        if container[3] == ' ':
            canPlayable = (True, 3)
        elif container[9] == ' ':
            canPlayable = (True, 9)
        elif container[13] == ' ':
            canPlayable = (True, 13)
        elif container[25] == ' ':
            canPlayable = (True, 25)
        else: canPlayable = False


    if piyon == 12:
        if container[26] == ' ':
            canPlayable = (True, 26)
        elif container[10] == ' ':
            canPlayable = (True, 10)
        else: canPlayable = False
   
    if piyon == 13:
        if container[11] == ' ':
            canPlayable = (True, 11)
        elif container[27] == ' ':
            canPlayable = (True, 27)
        else: canPlayable = False


    if piyon == 14:
        if container[16] == ' ':
            canPlayable = (True, 16)
        else: canPlayable = False


    if piyon == 15:
        if container[17] == ' ' :
            canPlayable = (True, 17)
        else: canPlayable = False


    if piyon == 16:
        if container[4] == ' ':
            canPlayable = (True, 4)
        elif container[14] == ' ':
            canPlayable = (True, 14)
        elif container[28] == ' ':
            canPlayable = (True, 28)
        elif container[18] == ' ':
            canPlayable = (True, 18)
        else: canPlayable = False


    if piyon == 17:
        if container[5] == ' ':
            canPlayable = (True, 5)
        elif container[19] == ' ':
            canPlayable = (True, 19)
        elif container[29] == ' ':
            canPlayable = (True, 29)
        elif container[15] == ' ':
            canPlayable = (True, 15)
        else: canPlayable = False
   
    if piyon == 18:
        if container[6] == ' ':
            canPlayable = (True, 6)
        elif container[20] == ' ':
            canPlayable = (True, 20)
        elif container[16] == ' ':
            canPlayable = (True, 16)
        elif container[30] == ' ':
            canPlayable = (True, 30)
        else: canPlayable = False


    if piyon == 19:
        if container[17] == ' ':
            canPlayable = (True, 17)
        else: canPlayable = False


    if piyon == 20:
        if container[18] == ' ':
            canPlayable = (True, 18)
        else: canPlayable = False
   
    if piyon == 21:
        if container[7] == ' ':
            canPlayable = (True, 7)
        elif container[23] == ' ':
            canPlayable = (True, 23)
        else: canPlayable = False


    if piyon == 22:
        if container[8] == ' ':
            canPlayable = (True, 8)
        elif container[24] == ' ':
            canPlayable = (True, 24)
        else: canPlayable = False


    if piyon == 23:
        if container[21] == ' ':
            canPlayable = (True, 21)
        elif container[31] == ' ':
            canPlayable = (True, 31)
        elif container[9] == ' ':
            canPlayable = (True, 9)
        elif container[25] == ' ':
            canPlayable = (True, 25)
        else: canPlayable = False


    if piyon == 24:
        if container[32] == ' ':
            canPlayable = (True, 32)
        elif container[10] == ' ':
            canPlayable = (True, 10)
        elif container[22] == ' ':
            canPlayable = (True, 22)
        elif container[26] == ' ':
            canPlayable = (True, 26)
        else: canPlayable = False


    if piyon == 25:
        if container[11] == ' ':
            canPlayable = (True, 11)
        elif container[33] == ' ':
            canPlayable = (True, 33)
        elif container[27] == ' ':
            canPlayable = (True, 27)
        elif container[23] == ' ':
            canPlayable = (True, 23)
        else: canPlayable = False


    if piyon == 26:
        if container[12] == ' ':
            canPlayable = (True, 12)
        elif container[24] == ' ':
            canPlayable = (True, 24)
        else: canPlayable = False


    if piyon == 27:
        if container[13] == ' ':
            canPlayable = (True, 13)
        elif container[25] == ' ':
            canPlayable = (True, 25)
        else: canPlayable = False


    if piyon == 28:
        if container[30] == ' ':
            canPlayable = (True, 30)
        elif container[26] == ' ':
            canPlayable = (True, 16)
        else: canPlayable = False


    if piyon == 29:
        if container[17] == ' ':
            canPlayable = (True, 17)
        else: canPlayable = False


    if piyon == 30:
        if container[18] == ' ':
            canPlayable = (True, 18)
        elif container[28] == ' ':
            canPlayable = (True, 28)
        else: canPlayable = False


    if piyon == 31:
        if container[23] == ' ':
            canPlayable = (True, 23)
        elif container[33] == ' ':
            canPlayable = (True, 33)
        else: canPlayable = False


    if piyon == 32:
        if container[24] == ' ':
            canPlayable = (True, 24)
        else: canPlayable = False


    if piyon == 33:
        if container[31] == ' ':
            canPlayable = (True, 31)
        elif container[25] == ' ':
            canPlayable = (True, 25)
        else: canPlayable = False


pygame.init()
screen = pygame.display.set_mode((500, 850))
clock = pygame.time.Clock()
cords = [" ",(206, 292),
                (249, 291),
                (294, 291),
                (205, 336),
                (249, 336),
                (294, 336),
                (118, 378),
                (162, 379),
                (205, 379),
                (249, 379),
                (294, 379),
                (337, 378),
                (383, 379),
                (119, 422),
                (163, 423),
                (205, 424),
                (249, 424),
                (293, 424),
                (339, 422),
                (382, 422),
                (118, 467),
                (163, 467),
                (207, 466),
                (249, 467),
                (294, 467),
                (338, 467),
                (383, 466),
                (206, 511),
                (250, 511),
                (294, 510),
                (205, 555),
                (249, 555),
                (294, 555)]
canPlayable = False
select = 0


container = [' ', '*', '*', '*'
                  '*', '*', '*'
        '*', '*', '*', '*', '*', '*', '*'
        '*', '*', '*', ' ', '*', '*', '*'
        '*', '*', '*', '*', '*', '*', '*'
                  '*', '*', '*'
                  '*', '*', '*']


if True:
    hitbox1 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox1.center = cords[1]


    piyon1 = Piyon(cords[1])


    hitbox2 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox2.center = cords[2]


    piyon2 = Piyon(cords[2])


    hitbox3 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox3.center = cords[3]


    piyon3 = Piyon(cords[3])


    hitbox4 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox4.center = cords[4]


    piyon4 = Piyon(cords[4])


    hitbox5 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox5.center = cords[5]


    piyon5 = Piyon(cords[5])


    hitbox6 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox6.center = cords[6]


    piyon6 = Piyon(cords[6])


    hitbox7 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox7.center = cords[7]


    piyon7 = Piyon(cords[7])


    hitbox8 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox8.center = cords[8]


    piyon8 = Piyon(cords[8])


    hitbox9 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox9.center = cords[9]


    piyon9 = Piyon(cords[9])


    hitbox10 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox10.center = cords[10]


    piyon10 = Piyon(cords[10])


    hitbox11 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox11.center = cords[11]


    piyon11 = Piyon(cords[11])


    hitbox12 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox12.center = cords[12]


    piyon12 = Piyon(cords[12])


    hitbox13 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox13.center = cords[13]


    piyon13 = Piyon(cords[13])


    hitbox14 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox14.center = cords[14]


    piyon14 = Piyon(cords[14])


    hitbox15 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox15.center = cords[15]


    piyon15 = Piyon(cords[15])


    hitbox16 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox16.center = cords[16]


    piyon16 = Piyon(cords[16])


    hitbox17 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox17.center = cords[17]


    piyon17 = Piyon(cords[17])


    hitbox18 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox18.center = cords[18]


    piyon18 = Piyon(cords[18])


    hitbox19 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox19.center = cords[19]


    piyon19 = Piyon(cords[19])


    hitbox20 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox20.center = cords[20]


    piyon20 = Piyon(cords[20])


    hitbox21 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox21.center = cords[21]


    piyon21 = Piyon(cords[21])


    hitbox22 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox22.center = cords[22]


    piyon22 = Piyon(cords[22])


    hitbox23 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox23.center = cords[23]


    piyon23 = Piyon(cords[23])


    hitbox24 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox24.center = cords[24]


    piyon24 = Piyon(cords[24])


    hitbox25 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox25.center = cords[25]


    piyon25 = Piyon(cords[25])


    hitbox26 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox26.center = cords[26]


    piyon26 = Piyon(cords[26])


    hitbox27 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox27.center = cords[27]


    piyon27 = Piyon(cords[27])


    hitbox28 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox28.center = cords[28]


    piyon28 = Piyon(cords[28])


    hitbox29 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox29.center = cords[29]


    piyon29 = Piyon(cords[29])


    hitbox30 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox30.center = cords[30]


    piyon30 = Piyon(cords[30])


    hitbox31 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox31.center = cords[31]


    piyon31 = Piyon(cords[31])


    hitbox32 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox32.center = cords[32]


    piyon32 = Piyon(cords[32])


    hitbox33 = pygame.rect.Rect((0, 0), (25, 25))
    hitbox33.center = cords[33]


    piyon33 = Piyon(cords[33])


baseSurf = pygame.image.load('solotestbase.png').convert_alpha()
baseRect = baseSurf.get_rect(center = (250, 425))


screen.fill("white")
screen.blit(baseSurf, baseRect)
restart()


while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()


        if event.type == pygame.MOUSEBUTTONDOWN:
            if select == 0:
                if hitbox1.collidepoint(pygame.mouse.get_pos()):
                    checkPlayable(1)
                   
                   
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_INSERT:
                print(pygame.mouse.get_pos())
   
    pygame.display.update()
    clock.tick(60)

Öncelikle kod bu arkadaşlar. Ekte resimleri paylaştım. Devamı gelmiyor. Kod biraz fazla uzun biliyorum. Çoğu şey tekrarlanmış ve kötü yazılmış bir kod. Fakat düzenleyemeyeceğim şu anda bunun için özür diliyorum. Koda kabaca bir bakın ve kod yazmasanız bile anlatırsanız çok sevinirim. solotestbase.png piyon.png
 
Son düzenleyen: Moderatör:
Son düzenleme:
Hocam moderatör yanlış düzeltmiş. Çalışıyor ama piyonları oynatma konusunda beyin.exe çalışmayı durduruyor.



Piyonları oynatma konusunda fikir verirseniz çok sevinirim hocam.
Maalesef ki telefondayım.
@Vavien. hocam yardımcı olur diye düşünüyorum. Pygame kütüphanesini daha önce kullanmamıştım. Bu yüzden deneme yanılma falan da yapamıyorum.
 

Technopat Haberler

Yeni konular

Geri
Yukarı