小诺爷 发表于 2020-6-9 20:16:22

本代码中已经写有包含展示界面的代码,运行之后也没有报错提醒,但是最后结果是不....

本帖最后由 小诺爷 于 2020-6-10 18:32 编辑

import pygame,sys,random #pip install pygame安装pygame模块命令
from pygame.locals import *
#1定义颜色变量(目标方块,贪吃蛇,背景)
#根据rgb值选择颜色
redcolor = pygame.Color(255,0,0)#根据rgb值选择颜色
#目标方块颜色
whitecolor = pygame.Color(255,255,255)#根据rgb值选择颜色
#背景颜色
blackcolor = pygame.Color(0,0,0)#根据rgb值选择颜色
#2定义游戏结束函数
def gameover():
    pygame.quit()#pygame模块结束
    sys.exit()
#3实现工作
def main():
    #分一pygame初始化
    pygame.init()
    #分二控制速度
    fpsclock = pygame.time.clock()#速度控制
    #分三创建pygame的显示层
    playsurface = pygame.display.set_mode((640,480))#界面大小
    pygame.display.set_caption('贪食蛇')#定义游戏名字
    #分四 初始化变量
    snakeposition = #贪食蛇起始位置
    snakebody = [,,]#贪食蛇初始长度
    targetposition = #方块初始位置
    targetflag = 1#方块的标记,判断吃掉了方块
    direction = 'right'#初始化方向为右
    changeDirection = direction#方向变量,人为控制,并与键盘联系
    #分五pygame中的事件要实时循环
    while True:
      for event in pygame.event.get():#获取所有事件可能
            if event.type == QUIT:#如果事件不符合,退出
                pygame.quit()#退出pygame
                sys.exit()
            elif event.type == KEYDOWN:#判断按键事件
                if event.key == K_RIGHT:#key值为右,那么目标值为右
                  changeDirection ='right'
                if event.key == K_LEFT:#key值为左,那么目标值为左
                  changeDirection = 'left'
                if event.key == K_UP:#key值为上,那么目标值为上
                  changeDirection = 'up'
                if event.key == K_DOWN:#key值为下,那么目标值为下
                  changeDirection = 'down'
      #分六确定方向
      if changeDirection == 'left' and not direction == 'right':#判断方向为左
         direction = changeDirection#确定
      if changeDirection == 'right'and not direction == 'left':#判断方向为右
            direction = changeDirection#确定
      if changeDirection == 'up'and not direction == 'down':#判断方向为上
            direction = changeDirection#确定
      if changeDirection == 'down'and not direction == 'up':#判断方向为下
            direction = changeDirection#确定


      #分七根据方向移动蛇头的坐标
      if direction =='right':
            snakeposition += 20
      if direction =='left':
            snakeposition += 20
      if direction == 'up':
            snakeposition += 20
      if direction == 'down':
            snakeposition += 20


      #分八增加蛇的长度
      snakebody.insert(0,list(snakeposition))
      #如果贪食蛇和方块重合,成功,标记为0
      if snakeposition ==targetposition and snakeposition == targetposition:
            targetflag = 0
      else:
             snakebody.pop()
             targetflag == 0
      x = random.randrange(1,25)
      y = random.randrange(1,25)
      targetposition =


      playsurface.fill(blackcolor)
      for position in snakebody:
             pygame.draw.rect(playsurface,redcolor,Rect(position,position,20,20))
             pygame.draw.rect(playsurface,whitecolor,Rect(targetposition,targetposition,20,20))


      pygame.display.flip()

      if snakeposition > 480 or snakeposition < 0:
             gameover()
      elif snakeposition >480 or snakeposition < 0:
             gameover()



      fpsclock.tick(6)

if __name__ == '_main_':
    main()

Twilight6 发表于 2020-6-9 20:17:08

代码缩进爆了,重新编辑下发吧

小诺爷 发表于 2020-6-10 12:07:22

本帖最后由 小诺爷 于 2020-6-10 16:26 编辑

求大佬检查代码,为什么运行不出来界面
页: [1]
查看完整版本: 本代码中已经写有包含展示界面的代码,运行之后也没有报错提醒,但是最后结果是不....