python 小游戏《2048》字符版非图形界面

warning: 这篇文章距离上次修改已过196天,其中的内容可能已经有所变动。



# 2048 游戏的字符版实现
import random
import sys
 
# 游戏板的初始化
def init_board():
    return [[0 for _ in range(4)] for _ in range(4)]
 
# 打印游戏状态
def print_board(board):
    for row in board:
        print(' '.join(map(str, row)))
 
# 生成新的数字(2或4)
def new_number():
    return 2 if random.randint(0, 1) else 4
 
# 移动处理
def move(board, direction):
    def move_row_left(row):
        row = [i for i in row if i != 0]
        row += [0 for _ in range(4 - len(row))]
        if 2048 in row:
            return True
        for i in range(len(row) - 1):
            if row[i] == row[i + 1] and row[i] != 0:
                row[i] *= 2
                row[i + 1] = 0
                return True
        return False
    
    if direction == 'left':
        for row in board:
            if move_row_left(row):
                return True
        return False
    elif direction == 'right':
        for row in board:
            row.reverse()
            if move_row_left(row):
                row.reverse()
                return True
            row.reverse()
        return False
    elif direction == 'up':
        transposed = [list(row) for row in zip(*board)]
        for row in transposed:
            if move_row_left(row):
                return True
        return False
    elif direction == 'down':
        transposed = [list(row) for row in zip(*board)]
        for row in transposed:
            row.reverse()
            if move_row_left(row):
                row.reverse()
                return True
            row.reverse()
        return False
 
# 游戏主循环
def play_game():
    board = init_board()
    board[1][1] = new_number()
    board[1][2] = new_number()
    game_over = False
    
    print_board(board)
    while not game_over:
        direction = input("请输入移动方向(左'left', 右'right',
最后修改于:2024年08月16日 14:16

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日