• 10-06-2022, 16:14:26
    #1
    Kişisel Rütbe
    Şu anda temel olarak soft testte kullanılacak araçlar veya üçüncü taraf kütüphaneler yazılmıştır.Yün için koyun yakalamama prensibinden yola çıkarak, yolu değiştirin ve bu sefer basit bir yılan yazmak için pygame kütüphanesini kullanın. Python'a aşina olmak ve pratik yapmak da iyidir.

    2. Kurulum ve içe aktarma


    Kuruluma girmek için pip install pygame kullanın ve başarılı kurulumdan sonra gerekli modülleri içe aktarın:
    import pygame,sys,random
    from pygame.locals import *
    Bunlar arasında sys, takipte kullanılacak çıkış programı mekanizmasıdır, bu yüzden buraya import edilmesi gerekir.

    3. Sonraki işlemler için gerekli parametreleri tanımlayın


    #Pygame kitaplığını başlat
    pygame.init()
    Pygame kullanırken, aşağıdaki çıkış koduna karşılık gelen kitaplığı başlatmak gerekir, bu ikisi bir çifttir.
    #Oyun arayüzünü başlat
    DISPLAY=pygame.display.set_mode((800,800))
    #Oyun penceresi başlığını ayarla
    pygame.display.set_caption('Yılan Oyunum')
    Yukarıdaki kodu yazdıktan sonra, çalıştırmak için tıklayın ve yanıp sönen bir arayüz olacaktır, bu normaldir çünkü hiçbir şey çalışmıyor.
    #Oyun hızını kontrol etmek için bir değişken tanımla
    FPSCLOCK=pygame.time.Clock()
    
    #renk tanımlama
    BLACK=pygame.Color(0,0,0)
    WHITE=pygame.Color(255,255,255)
    RED=pygame.Color(255,0,0)
    
    # Yılan kafasının başlangıç konumunu tanımlayın
    snake_Head=[100,100]
    # Bir yılanın ilk uzunluğunu tanımlayın, çünkü arayüz 20*20 olduğundan uzunluk 20 azaltılır
    snake_Body=[[80,100], [60,100]]
    # # Yılan başlangıç yönü
    direction="right"
    # Yönü değiştirmek için değişkeni tanımlayın, tuşuna basın
    changeDirection = direction
    #başlangıçtaki yemek pozisyonunu tanımlayın
    food_Postion = [300,300]
    # Yemek durumunu tanımlayın, 0 yenilmiş, 1 yenilmemiş anlamına gelir
    food_Total = 1
    NOT:Yukarıdakilerin tümü daha sonra kullanılacak tanımlayıcı parametrelerdir.

    4. Yılan ve Yiyecek Çizimi


    #yılanı çiz
    def drawSnake(snake_Body):
        for i in snake_Body:
            pygame.draw.rect(DISPLAY,WHITE,Rect(i[0],i[1],20,20))
    
    # yemek yerini çiz
    def drawFood(food_Postion):
        pygame.draw.rect(DISPLAY,RED,Rect(food_Postion[0],food_Postion[1],20,20))
    Yukarıdaki pygame.draw.rect(DISPLAY,RED,Rect(food_Postion[0],food_Postion[1],20,20)) çizimi pygame'in çizim modülüdür, DISPLAY in rect ise oyun arayüzündeki rengi çizmek içindir. küme, çizilen dikdörtgenin alanı, dikdörtgenin genişliği ve yüksekliği.

    5. Oyun kuralları ve işleyişi



    def gameover():
    #pygame'den çık
        pygame.quit()
    #programdan çık
        sys.exit()
    NOT:Burada ayarlanan çıkış, yukarıdaki pygame.init() işlevine karşılık gelir.
    game_flag=True
    while game_flag:
    # arka plan rengini oluştur
        DISPLAY.fill(BLACK)
    #açgözlü yılan çizimi
        drawSnake(snake_Body)
    #yemek yeri çiz
        drawFood(food_Postion)
    Burada arka plan siyah olarak ayarlanmıştır, bu da tanım rengindeki ayara karşılık gelir ve yılanın ve yiyeceğin konumu da yukarıdakine karşılık gelir.
    #Oyun hızını artır
        game_speed=1+len(snake_Body)//3
    #Görüntü katmanını yenile, yılan ve yiyecek her hareket ettiğinde görüntü katmanı yenilenir
        pygame.display.flip()
        FPSCLOCK.tick(game_speed)
        for event in pygame.event.get():
            if event.type==QUIT:
                pygame.quit()
                sys.exit()
    Oyunun hızı burada belirtilir ve yemek yedikten sonra hareket hızı artar.

            elif event.type == KEYDOWN:
    # Sağ ok veya d ise yılan sağa doğru hareket eder
                if event.key == K_RIGHT or event.key == K_d:
                    changeDirection = 'right'
    # Ok veya a ise yılan sola hareket eder
                if event.key == K_LEFT or event.key == K_a:
                    changeDirection = 'left'
                if event.key == K_UP or event.key == K_w:
                    changeDirection = 'up'
                if event.key == K_DOWN or event.key == K_s:
                    changeDirection = 'down'
    # Çıkmak için esc'ye tıklayın
                if event.key == KSCAN_ESCAPE:
                    pygame.event.post(pygame.event.Event(QUIT))
    
    # Yönü onaylayın ve ters yönün girilip girilmediğini belirleyin
        if changeDirection == 'right' and not direction == 'left':
            direction = changeDirection
        if changeDirection == 'left' and not direction == 'right':
            direction = changeDirection
        if changeDirection == 'up' and not direction == 'down':
            direction = changeDirection
        if changeDirection == 'down' and not direction == 'up':
            direction = changeDirection
    
    #Yılan kafasını yöne göre hareket ettir
        if direction=='right':
            snake_Head[0]+=20
        if direction=='left':
            snake_Head[0]-=20
        if direction=='up':
            snake_Head[1]-=20
        if direction=='down':
            snake_Head[1]+=20
    Buradaki tırnak içindeki kelimenin, yılanın ilk yönündeki kelimeyle tutarlı olması gerektiğine dikkat edin, aksi takdirde, changeDirection == 'sağ' ve yön == 'sol' değilse, çalışma zamanında sorunlar olacaktır: Bu, şu anlama gelir: Sağ hareketi gerçekleştirmek için "→" veya "D" kullanabilirsiniz, ayrıca changeDirection == 'sağ' ve yön değil == 'sol': Bu, yürürken "A" veya "←" ye basarsanız anlamına gelir doğru, bunun hiçbir etkisi olmaz ve ayrıca, eğer yön==' right':snake_Head[0]+=20 ise bir kare sağa hareket etmek için "→" veya "D"ye tıklamak anlamına gelir, çünkü kare 20'dir *20, yani bir kare 20'dir

    #Yılanın uzunluğunu artırın
        snake_Body.insert(0,list(snake_Head))
    #Yemek yiyip yememeye karar verin
        if snake_Head[0] == food_Postion[0] and snake_Head[1] == food_Postion[1]:
            food_Total = 0
        else:
            snake_Body.pop()
    yılan_Body.pop(), yemek yenmezse yeni yemek eklenmeyecek demektir, böyle bir kod yoksa yılanın yemek yemeden boyunun uzamasına neden olacaktır.

        if food_Total == 0:
            x = random.randrange(1, 32)
            y = random.randrange(1, 24)
            food_Postion = [int(x * 20), int(y * 20)]
            food_Total = 1
    Bu, eğer yiyecek yenirse ve durum 0 ise, rastgele bir yerde üretileceği anlamına gelir.

        if snake_Head[0] > 800 or snake_Head[0] < 0:
            gameover()
        elif snake_Head[0] > 800 or snake_Head[0] < 0:
            gameover()
    # Kendine çarparsan
        for body in snake_Body[1:]:
            if snake_Head[0] == body[0] and snake_Head[1] == body[1]:
                gameover()
    if snake_Head[0] > 800 veya snake_Head[0] < 0: Bu, sınırla karşılaştığında oyundan çıktığı anlamına gelir ve 800 tam olarak ayarlanmış arayüz boyutudur



    Son Ekran


    Tüm Kodlar

    import pygame,sys,random
    from pygame.locals import *
    
    #Pygame kitaplığını başlat
    pygame.init()
    #Oyun arayüzünü başlat
    DISPLAY=pygame.display.set_mode((800,800))
    #Oyun penceresi başlığını ayarla
    pygame.display.set_caption('Yılan')
    
    #Oyun hızını kontrol etmek için bir değişken tanımla
    FPSCLOCK=pygame.time.Clock()
    
    #renk tanımla
    BLACK=pygame.Color(0,0,0)
    WHITE=pygame.Color(255,255,255)
    RED=pygame.Color(255,0,0)
    
    # Yılan kafasının başlangıç konumunu tanımlayın
    snake_Head=[100,100]
    # Bir yılanın başlangıç uzunluğunu tanımlayın, çünkü arayüz 20*20 olduğundan uzunluk 20 azaltılır
    snake_Body=[[80,100], [60,100],[40,100]]
    # # Yılan başlangıç yönü
    direction="right"
    # Yönü değiştirmek için değişkeni tanımlayın, tuşuna basın
    changeDirection = direction
    #başlangıçtaki yemek pozisyonunu tanımlayın
    food_Postion = [300,300]
    # Yemek durumunu tanımlayın, 0 yenilmiş, 1 yenilmemiş anlamına gelir
    food_Total = 1
    
    #yılan çiz
    def drawSnake(snake_Body):
        for i in snake_Body:
            pygame.draw.rect(DISPLAY,WHITE,Rect(i[0],i[1],20,20))
    
    # yemek yerini çiz
    def drawFood(food_Postion):
        pygame.draw.rect(DISPLAY,RED,Rect(food_Postion[0],food_Postion[1],20,20))
    
    def gameover():
    #pygame'den çık
        pygame.quit()
    #programdan çık
        sys.exit()
    
    
    game_flag=True
    while game_flag:
    # arka plan rengini oluştur
        DISPLAY.fill(BLACK)
    #açgözlü yılan çizimi
        drawSnake(snake_Body)
    #yemek yeri çiz
        drawFood(food_Postion)
    #Oyun hızını artır
        game_speed=1+len(snake_Body)//3
    #Görüntü katmanını yenile, yılan ve yiyecek her hareket ettiğinde görüntü katmanı yenilenir
        pygame.display.flip()
        FPSCLOCK.tick(game_speed)
        for event in pygame.event.get():
            if event.type==QUIT:
                pygame.quit()
                sys.exit()
    
            elif event.type == KEYDOWN:
    # Sağ ok veya d ise yılan sağa doğru hareket eder
                if event.key == K_RIGHT or event.key == K_d:
                    changeDirection = 'right'
    # Ok veya a ise yılan sola hareket eder
                if event.key == K_LEFT or event.key == K_a:
                    changeDirection = 'left'
                if event.key == K_UP or event.key == K_w:
                    changeDirection = 'up'
                if event.key == K_DOWN or event.key == K_s:
                    changeDirection = 'down'
    # Çıkmak için esc'ye tıklayın
                if event.key == KSCAN_ESCAPE:
                    pygame.event.post(pygame.event.Event(QUIT))
    
    
        if changeDirection == 'right' and not direction == 'left':
            direction = changeDirection
        if changeDirection == 'left' and not direction == 'right':
            direction = changeDirection
        if changeDirection == 'up' and not direction == 'down':
            direction = changeDirection
        if changeDirection == 'down' and not direction == 'up':
            direction = changeDirection
    
    
        if direction=='right':
            snake_Head[0]+=20
        if direction=='left':
            snake_Head[0]-=20
        if direction=='up':
            snake_Head[1]-=20
        if direction=='down':
            snake_Head[1]+=20
    
        snake_Body.insert(0,list(snake_Head))
    
        if snake_Head[0] == food_Postion[0] and snake_Head[1] == food_Postion[1]:
            food_Total = 0
        else:
            snake_Body.pop()
    
        if food_Total == 0:
            x = random.randrange(1, 32)
            y = random.randrange(1, 24)
            food_Postion = [int(x * 20), int(y * 20)]
            food_Total = 1
    
        if snake_Head[0] > 800 or snake_Head[0] < 0:
            gameover()
        elif snake_Head[0] > 800 or snake_Head[0] < 0:
            gameover()
    
        for body in snake_Body[1:]:
            if snake_Head[0] == body[0] and snake_Head[1] == body[1]:
                gameover()
  • 10-06-2022, 16:22:50
    #2
    Saitama adlı üyeden alıntı: mesajı görüntüle
    Şu anda temel olarak soft testte kullanılacak araçlar veya üçüncü taraf kütüphaneler yazılmıştır.Yün için koyun yakalamama prensibinden yola çıkarak, yolu değiştirin ve bu sefer basit bir yılan yazmak için pygame kütüphanesini kullanın. Python'a aşina olmak ve pratik yapmak da iyidir.

    2. Kurulum ve içe aktarma


    Kuruluma girmek için pip install pygame kullanın ve başarılı kurulumdan sonra gerekli modülleri içe aktarın:
    import pygame,sys,random
    from pygame.locals import *
    Bunlar arasında sys, takipte kullanılacak çıkış programı mekanizmasıdır, bu yüzden buraya import edilmesi gerekir.

    3. Sonraki işlemler için gerekli parametreleri tanımlayın


    #Pygame kitaplığını başlat
    pygame.init()
    Pygame kullanırken, aşağıdaki çıkış koduna karşılık gelen kitaplığı başlatmak gerekir, bu ikisi bir çifttir.
    #Oyun arayüzünü başlat
    DISPLAY=pygame.display.set_mode((800,800))
    #Oyun penceresi başlığını ayarla
    pygame.display.set_caption('Yılan Oyunum')
    Yukarıdaki kodu yazdıktan sonra, çalıştırmak için tıklayın ve yanıp sönen bir arayüz olacaktır, bu normaldir çünkü hiçbir şey çalışmıyor.
    #Oyun hızını kontrol etmek için bir değişken tanımla
    FPSCLOCK=pygame.time.Clock()
    
    #renk tanımlama
    BLACK=pygame.Color(0,0,0)
    WHITE=pygame.Color(255,255,255)
    RED=pygame.Color(255,0,0)
    
    # Yılan kafasının başlangıç konumunu tanımlayın
    snake_Head=[100,100]
    # Bir yılanın ilk uzunluğunu tanımlayın, çünkü arayüz 20*20 olduğundan uzunluk 20 azaltılır
    snake_Body=[[80,100], [60,100]]
    # # Yılan başlangıç yönü
    direction="right"
    # Yönü değiştirmek için değişkeni tanımlayın, tuşuna basın
    changeDirection = direction
    #başlangıçtaki yemek pozisyonunu tanımlayın
    food_Postion = [300,300]
    # Yemek durumunu tanımlayın, 0 yenilmiş, 1 yenilmemiş anlamına gelir
    food_Total = 1
    NOT:Yukarıdakilerin tümü daha sonra kullanılacak tanımlayıcı parametrelerdir.

    4. Yılan ve Yiyecek Çizimi


    #yılanı çiz
    def drawSnake(snake_Body):
        for i in snake_Body:
            pygame.draw.rect(DISPLAY,WHITE,Rect(i[0],i[1],20,20))
    
    # yemek yerini çiz
    def drawFood(food_Postion):
        pygame.draw.rect(DISPLAY,RED,Rect(food_Postion[0],food_Postion[1],20,20))
    Yukarıdaki pygame.draw.rect(DISPLAY,RED,Rect(food_Postion[0],food_Postion[1],20,20)) çizimi pygame'in çizim modülüdür, DISPLAY in rect ise oyun arayüzündeki rengi çizmek içindir. küme, çizilen dikdörtgenin alanı, dikdörtgenin genişliği ve yüksekliği.

    5. Oyun kuralları ve işleyişi



    def gameover():
    #pygame'den çık
        pygame.quit()
    #programdan çık
        sys.exit()
    NOT:Burada ayarlanan çıkış, yukarıdaki pygame.init() işlevine karşılık gelir.
    game_flag=True
    while game_flag:
    # arka plan rengini oluştur
        DISPLAY.fill(BLACK)
    #açgözlü yılan çizimi
        drawSnake(snake_Body)
    #yemek yeri çiz
        drawFood(food_Postion)
    Burada arka plan siyah olarak ayarlanmıştır, bu da tanım rengindeki ayara karşılık gelir ve yılanın ve yiyeceğin konumu da yukarıdakine karşılık gelir.
    #Oyun hızını artır
        game_speed=1+len(snake_Body)//3
    #Görüntü katmanını yenile, yılan ve yiyecek her hareket ettiğinde görüntü katmanı yenilenir
        pygame.display.flip()
        FPSCLOCK.tick(game_speed)
        for event in pygame.event.get():
            if event.type==QUIT:
                pygame.quit()
                sys.exit()
    Oyunun hızı burada belirtilir ve yemek yedikten sonra hareket hızı artar.

            elif event.type == KEYDOWN:
    # Sağ ok veya d ise yılan sağa doğru hareket eder
                if event.key == K_RIGHT or event.key == K_d:
                    changeDirection = 'right'
    # Ok veya a ise yılan sola hareket eder
                if event.key == K_LEFT or event.key == K_a:
                    changeDirection = 'left'
                if event.key == K_UP or event.key == K_w:
                    changeDirection = 'up'
                if event.key == K_DOWN or event.key == K_s:
                    changeDirection = 'down'
    # Çıkmak için esc'ye tıklayın
                if event.key == KSCAN_ESCAPE:
                    pygame.event.post(pygame.event.Event(QUIT))
    
    # Yönü onaylayın ve ters yönün girilip girilmediğini belirleyin
        if changeDirection == 'right' and not direction == 'left':
            direction = changeDirection
        if changeDirection == 'left' and not direction == 'right':
            direction = changeDirection
        if changeDirection == 'up' and not direction == 'down':
            direction = changeDirection
        if changeDirection == 'down' and not direction == 'up':
            direction = changeDirection
    
    #Yılan kafasını yöne göre hareket ettir
        if direction=='right':
            snake_Head[0]+=20
        if direction=='left':
            snake_Head[0]-=20
        if direction=='up':
            snake_Head[1]-=20
        if direction=='down':
            snake_Head[1]+=20
    Buradaki tırnak içindeki kelimenin, yılanın ilk yönündeki kelimeyle tutarlı olması gerektiğine dikkat edin, aksi takdirde, changeDirection == 'sağ' ve yön == 'sol' değilse, çalışma zamanında sorunlar olacaktır: Bu, şu anlama gelir: Sağ hareketi gerçekleştirmek için "→" veya "D" kullanabilirsiniz, ayrıca changeDirection == 'sağ' ve yön değil == 'sol': Bu, yürürken "A" veya "←" ye basarsanız anlamına gelir doğru, bunun hiçbir etkisi olmaz ve ayrıca, eğer yön==' right':snake_Head[0]+=20 ise bir kare sağa hareket etmek için "→" veya "D"ye tıklamak anlamına gelir, çünkü kare 20'dir *20, yani bir kare 20'dir

    #Yılanın uzunluğunu artırın
        snake_Body.insert(0,list(snake_Head))
    #Yemek yiyip yememeye karar verin
        if snake_Head[0] == food_Postion[0] and snake_Head[1] == food_Postion[1]:
            food_Total = 0
        else:
            snake_Body.pop()
    yılan_Body.pop(), yemek yenmezse yeni yemek eklenmeyecek demektir, böyle bir kod yoksa yılanın yemek yemeden boyunun uzamasına neden olacaktır.

        if food_Total == 0:
            x = random.randrange(1, 32)
            y = random.randrange(1, 24)
            food_Postion = [int(x * 20), int(y * 20)]
            food_Total = 1
    Bu, eğer yiyecek yenirse ve durum 0 ise, rastgele bir yerde üretileceği anlamına gelir.

        if snake_Head[0] > 800 or snake_Head[0] < 0:
            gameover()
        elif snake_Head[0] > 800 or snake_Head[0] < 0:
            gameover()
    # Kendine çarparsan
        for body in snake_Body[1:]:
            if snake_Head[0] == body[0] and snake_Head[1] == body[1]:
                gameover()
    if snake_Head[0] > 800 veya snake_Head[0] < 0: Bu, sınırla karşılaştığında oyundan çıktığı anlamına gelir ve 800 tam olarak ayarlanmış arayüz boyutudur



    Son Ekran


    Tüm Kodlar

    import pygame,sys,random
    from pygame.locals import *
    
    #Pygame kitaplığını başlat
    pygame.init()
    #Oyun arayüzünü başlat
    DISPLAY=pygame.display.set_mode((800,800))
    #Oyun penceresi başlığını ayarla
    pygame.display.set_caption('Yılan')
    
    #Oyun hızını kontrol etmek için bir değişken tanımla
    FPSCLOCK=pygame.time.Clock()
    
    #renk tanımla
    BLACK=pygame.Color(0,0,0)
    WHITE=pygame.Color(255,255,255)
    RED=pygame.Color(255,0,0)
    
    # Yılan kafasının başlangıç konumunu tanımlayın
    snake_Head=[100,100]
    # Bir yılanın başlangıç uzunluğunu tanımlayın, çünkü arayüz 20*20 olduğundan uzunluk 20 azaltılır
    snake_Body=[[80,100], [60,100],[40,100]]
    # # Yılan başlangıç yönü
    direction="right"
    # Yönü değiştirmek için değişkeni tanımlayın, tuşuna basın
    changeDirection = direction
    #başlangıçtaki yemek pozisyonunu tanımlayın
    food_Postion = [300,300]
    # Yemek durumunu tanımlayın, 0 yenilmiş, 1 yenilmemiş anlamına gelir
    food_Total = 1
    
    #yılan çiz
    def drawSnake(snake_Body):
        for i in snake_Body:
            pygame.draw.rect(DISPLAY,WHITE,Rect(i[0],i[1],20,20))
    
    # yemek yerini çiz
    def drawFood(food_Postion):
        pygame.draw.rect(DISPLAY,RED,Rect(food_Postion[0],food_Postion[1],20,20))
    
    def gameover():
    #pygame'den çık
        pygame.quit()
    #programdan çık
        sys.exit()
    
    
    game_flag=True
    while game_flag:
    # arka plan rengini oluştur
        DISPLAY.fill(BLACK)
    #açgözlü yılan çizimi
        drawSnake(snake_Body)
    #yemek yeri çiz
        drawFood(food_Postion)
    #Oyun hızını artır
        game_speed=1+len(snake_Body)//3
    #Görüntü katmanını yenile, yılan ve yiyecek her hareket ettiğinde görüntü katmanı yenilenir
        pygame.display.flip()
        FPSCLOCK.tick(game_speed)
        for event in pygame.event.get():
            if event.type==QUIT:
                pygame.quit()
                sys.exit()
    
            elif event.type == KEYDOWN:
    # Sağ ok veya d ise yılan sağa doğru hareket eder
                if event.key == K_RIGHT or event.key == K_d:
                    changeDirection = 'right'
    # Ok veya a ise yılan sola hareket eder
                if event.key == K_LEFT or event.key == K_a:
                    changeDirection = 'left'
                if event.key == K_UP or event.key == K_w:
                    changeDirection = 'up'
                if event.key == K_DOWN or event.key == K_s:
                    changeDirection = 'down'
    # Çıkmak için esc'ye tıklayın
                if event.key == KSCAN_ESCAPE:
                    pygame.event.post(pygame.event.Event(QUIT))
    
    
        if changeDirection == 'right' and not direction == 'left':
            direction = changeDirection
        if changeDirection == 'left' and not direction == 'right':
            direction = changeDirection
        if changeDirection == 'up' and not direction == 'down':
            direction = changeDirection
        if changeDirection == 'down' and not direction == 'up':
            direction = changeDirection
    
    
        if direction=='right':
            snake_Head[0]+=20
        if direction=='left':
            snake_Head[0]-=20
        if direction=='up':
            snake_Head[1]-=20
        if direction=='down':
            snake_Head[1]+=20
    
        snake_Body.insert(0,list(snake_Head))
    
        if snake_Head[0] == food_Postion[0] and snake_Head[1] == food_Postion[1]:
            food_Total = 0
        else:
            snake_Body.pop()
    
        if food_Total == 0:
            x = random.randrange(1, 32)
            y = random.randrange(1, 24)
            food_Postion = [int(x * 20), int(y * 20)]
            food_Total = 1
    
        if snake_Head[0] > 800 or snake_Head[0] < 0:
            gameover()
        elif snake_Head[0] > 800 or snake_Head[0] < 0:
            gameover()
    
        for body in snake_Body[1:]:
            if snake_Head[0] == body[0] and snake_Head[1] == body[1]:
                gameover()
    elinize sağlık