2015-04-19 46 views
-4

我目前正在編寫一個3.2 python蛇和pygame下的過程,但是當我的蛇進步時,我遇到了一個問題。 前進,而不是回來,所以它以某種方式繪製。 如果有錯誤,我會很沮喪,我是法國人。 這裏是源代碼:python和pygame上的蛇3.2

import pygame, time 

    from pygame.locals import * 

    pygame.init() 

    mur = pygame.image.load("carrenoir.jpg") 

    a="mur" 

    b="fond" 

    c="serpent" 

    fenetre = pygame.display.set_mode((900, 900)) 

    fond = pygame.image.load("carrenoir.jpg").convert() 

    serpent = pygame.image.load("carrevert.jpg").convert() 

    mur = pygame.image.load("carreblanc.jpg").convert() 

    pomme = pygame.image.load("pomme.jpg").convert() 



    t=[1]*21 

    for i in range(0,21): 

      t[i]=[1]*21 

    for i in range(0,21): 

      t[0][i]=a 

      t[i][20]=a 

      t[20][i]=a 

      t[i][0]=a 


    t[8][7]=c 

    t[8][8]=c 

    t[8][9]=c 

    queue_i=8 

    queue_j=9 


    tete_i=8 

    tete_j=7 

    sens=1#1 haut2 droite 3 bas et 4 gauche 

    for i in range(0,21): 

      print(t[i]) 


    def affiche(t): 

      for i in range(0,21): 

       for j in range(0,21): 

         if t[i][j]=="mur": 

          fenetre.blit(mur, (40*i+40,40*j+40)) 

         if t[i][j]=="fond": 

          fenetre.blit(fond, (40*i+40,40*j+40)) 

         if t[i][j]=="serpent": 

          fenetre.blit(serpent, (40*i+40,40*j+40)) 

      pygame.display.flip() 

    affiche(t) 



    continuer = 1 

    while continuer: 

      for event in pygame.event.get(): 

       if event.type == QUIT: 

         continuer = 0 

       if event.type == KEYDOWN: 

         if event.key == K_LEFT: 

          if sens==3: 

            sens=4 

          elif sens==4: 
            sens=4 


          elif sens==1: 

            sens=4 

          elif sens==2: 

            sens=2 

         if event.key == K_RIGHT: 

          if sens==3: 

            sens=2 

          elif sens==4: 

            sens=4 

          elif sens==1: 

            sens=2 

          elif sens==2: 

            sens=2 

         if event.key == K_UP: 

          if sens==3: 

            sens=3 

          elif sens==4: 

            sens=1 

          elif sens==1: 

            sens=1 
          elif sens==2: 

            sens=1 

         if event.key == K_DOWN: 

          if sens==1: 

            sens=1 

          elif sens==3: 

            sens=3 

          elif sens==4: 

            sens=3 

          elif sens==2: 

            sens=3 

      if sens==4: 


      if sens==3: 

       tete_j=tete_j+1 



      if sens==2: 

       tete_i=tete_i+1 

      if sens==1: 

       tete_j=tete_j-1 

      time.sleep(0.1) 

      t[queue_i][queue_j]="fond" 

      t[tete_i][tete_j]=c 

      affiche(t) 
    Some french word in english 

    affiche=print 


serpent=snake 


tete=head 
queue=tail 

continuer=continue 

fenêtre=window 

mur=wall 

fond=background 
+0

確保使用格式工具,使您的代碼更好地閱讀。另外,你不需要在每行代碼之間有一個空行! – wrgrs

+0

現在好點了嗎?對不起,我從本網站開始 – SKY

回答

-2

如果SENS == 3:

     sens=4 

       elif sens==4: 
         sens=4 


       elif sens==1: 

         sens=4 

       elif sens==2: 

         sens=2 

這是更好地寫: 如果SENS == 2:SENS = 2個 否則SENS = 4

首先嚐試澄清代碼的這些部分,您應該更清楚地看到它。其次,我認爲英語不會清楚你的問題。

+0

英文,s'il-vousplaît – jonrsharpe

+0

對不起。這是我的第一個答案,我應該先閱讀術語 – MedAl

+0

幫我看看MedAI – SKY