用Python写一个贪吃蛇

该代码定义了一个贪吃蛇游戏的函数,游戏在一个4x4的地图上进行,蛇的初始位置和地图由二维列表表示。游戏通过判断蛇的移动是否合法(不会超出边界且不撞到自己)来推进,根据不同的移动方向更新蛇的位置。当蛇吃到食物(地图上的*)时,蛇增长,否则蛇会缩短。函数返回蛇的新状态和游戏是否继续的标志。
摘要由CSDN通过智能技术生成

用Python写一个贪吃蛇


map = [['*','*','*','*'], ['*','*','*','*'], ['*','*','*','*'], ['*','*','*','*']]
snake = [[1,2], [1,1], [2,1]]

def snake_game(snake, map, pos):
    def isvalid(next_pos, snake, map):
        if 0 <= next_pos[0] <= len(map) and 0 <= next_pos[1] <= len(map[0]) and next_pos not in snake:
            return True
        return False

    dx = [0,0,1,-1]
    dy = [1,-1,0,0]
    flag = True

    snake_head = snake[0]
    next_pos = [snake_head[0] + dx[pos], snake_head[0] + dy[pos]]
    if map[next_pos[0]][next_pos[1]] == '*':
        snake.insert(0, next_pos)
    elif isvalid(next_pos, snake, map):
        snake.insert(0, next_pos)
        snake.pop()
    else:
        flag = False

    return snake, flag

snake_game(snake,map,1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值