import curses


def create_map():
    ' 创建一个空的地图矩阵 '
    map = [[' ' for _ in range(20)] for _ in range(20)]
    return map


def draw_map(stdscr, map, turtle_pos, dog1_pos, dog2_pos):
    for row in range(20):
        for col in range(20):
            if (row, col) == turtle_pos:
                map[row][col] = '乌'
            elif (row, col) == dog1_pos or (row, col) == dog2_pos:
                map[row][col] = '狗'
            stdscr.addch(row, col, map[row][col])
    stdscr.refresh()


def move_turtle(turtle_pos, direction):
    new_row, new_col = turtle_pos
    if direction == curses.KEY_UP:
        new_row -= 1
    elif direction == curses.KEY_DOWN:
        new_row += 1
    elif direction == curses.KEY_LEFT:
        new_col -= 1
    elif direction == curses.KEY_RIGHT:
        new_col += 1
    return new_row, new_col


def main(stdscr):
    curses.curs_set(0)
    stdscr.nodelay(1)
    stdscr.timeout(100)

    turtle_pos = (10, 10)
    dog1_pos = (5, 15)
    dog2_pos = (15, 5)
    map = create_map()

    while True:
        stdscr.clear()

        draw_map(stdscr, map, turtle_pos, dog1_pos, dog2_pos)
        stdscr.addstr(20, 0, '请使用方向键控制乌龟移动,按 Q 退出')

        key = stdscr.getch()

        if key == ord('q') or key == ord('Q'):
            break
        elif key in {curses.KEY_UP, curses.KEY_DOWN, curses.KEY_LEFT, curses.KEY_RIGHT}:
            new_turtle_pos = move_turtle(turtle_pos, key)

            if new_turtle_pos[0] < 0 or new_turtle_pos[0] >= 20 or new_turtle_pos[1] < 0 or new_turtle_pos[1] >= 20:
                stdscr.addstr(21, 0, '乌龟撞墙了,游戏结束!')
                stdscr.refresh()
                break

            if new_turtle_pos == dog1_pos or new_turtle_pos == dog2_pos:
                stdscr.addstr(21, 0, '乌龟被狗抓住了,游戏结束!')
                stdscr.refresh()
                break

            turtle_pos = new_turtle_pos

    stdscr.getch()


curses.wrapper(main)

游戏玩法:

  • 使用方向键控制乌龟移动。
  • 躲避两条狗。
  • 如果乌龟撞到墙壁或被狗抓住,游戏结束。

代码说明:

  • 使用 curses 库实现游戏界面。
  • create_map() 函数创建游戏地图,用空格填充。
  • draw_map() 函数绘制地图,将乌龟和狗的坐标绘制到地图上。
  • move_turtle() 函数根据方向键移动乌龟坐标。
  • main() 函数是游戏主函数,控制游戏循环和事件处理。

运行游戏:

  1. 保存代码为 .py 文件。
  2. 运行该文件。
  3. 使用方向键控制乌龟移动,躲避两条狗。

注意:

  • 该游戏比较简单,可以根据需要进行扩展。
  • 可以在游戏开始前设置乌龟和狗的初始位置。
  • 可以添加游戏难度等级,比如增加狗的数量或速度。
  • 可以添加分数系统,记录玩家得分。

希望您玩得愉快!


原文地址: https://www.cveoy.top/t/topic/CUJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录