结对-贪吃蛇-开发过程

项目名称:贪吃蛇

小组成员:邵瀚庆、徐宏璇

码云地址:https://gitee.com/nothingbigger/snake/tree/master

————————————————————————————————————————————

阶段一:熟悉Python,pygame,能够熟练操作Python

阶段二:

  功能分析:

    1、玩家只能在屏幕上固定的区域内玩游戏

    2、蛇的身体由一个个小方块来构成,蛇头由两个小方块构成;

    3、食物由一个方块构成,食物要随机出现在游戏区域

    4、玩家可用键盘上的↑、↓、←、→四个方向键来控制蛇的运行方向;

    5、当蛇在移动过程中,吃到了食物,蛇身增长一节,当前食物消失,并且在另一处游戏区内随机出现一个食物;

    6、蛇每增长一节,计分板分数相应增加;

    7、得分实时显示在屏幕顶部

    8、蛇在移动的过程中,蛇头不能撞上蛇身、不能撞上窗口边框,若这两种情形发生任意一种,则认为蛇已死,在游戏区域内显示“GAME OVER”信息,并在顶部显示所得分数,游戏结束;

  项目开发:

    1、首先需要调用pygame模块

    2、设置一个640 × 480的游戏窗口

1 width,height=640,480
2 screen=pygame.display.set_mode((width,height))

    3、绘制蛇身、食物、并设置控制蛇方向的按键

1 snake = [pygame.Rect(10, 10, 10, 10), pygame.Rect(10, 20, 10, 10)]
    if food is None:
        food = pygame.Rect(randrange(48) * 10, randrange(48) * 10, 10, 10)
    pygame.draw.rect(screen, (0, 0, 0), food)
1     if event.type == pygame.KEYDOWN:
2         if event.key == pygame.K_UP and dir != down:
3             dir = up
4         if event.key == pygame.K_DOWN and dir != up:
5             dir = down
6         if event.key == pygame.K_LEFT and dir != right:
7             dir = left    
8         if event.key == pygame.K_RIGHT and dir != left:
9             dir = right    

    4、添加时钟用于计时、设置计分板用以计算并显示当前玩家分数

    5、判断蛇是否吃到食物、是否碰到自己身体和触碰墙壁、最后判断是否死亡

1     if node in snake or node.left > width or node.top > height or node.left < 0 or node.top < 0:
2         dead = True
3         continue
4 
5     if node == food:
6         food = None
7         score += 10
8     else:
9         del snake[0]

    6、吃到食物、蛇身加长游戏继续;碰壁以及碰到身体、游戏结束

posted @ 2017-09-30 23:56  nothingisimpossible  阅读(254)  评论(0编辑  收藏  举报