You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Python终端中为文字冒险游戏添加星号边框

如何在Python终端中为文字冒险游戏添加星号边框

嘿,这个需求太贴合文字冒险游戏的氛围感了!我来给你几个从零开始的简单方案,完全不用担心和现有代码冲突(毕竟你还没写呢😉),挑一个适合你游戏风格的用就行:

基础固定宽度边框(适合统一布局)

如果你想让游戏界面保持统一尺寸(比如固定用80字符宽的终端窗口),这个方案稳得一批。先定义好边框宽度,再生成上下边框和内容行:

# 确定边框总宽度,这里用终端常用的80字符
BORDER_WIDTH = 80

# 生成上下边框:80个连续的*
top_bottom_border = "*" * BORDER_WIDTH

# 空白内容行:左右是*,中间留足空格
empty_line = "*" + " " * (BORDER_WIDTH - 2) + "*"

# 打印完整框架(带示例游戏内容)
print(top_bottom_border)
print(empty_line)
# 用ljust方法让内容左对齐,补全空格保证右边的*对齐
print(f"* {'欢迎来到文字冒险游戏!'.ljust(BORDER_WIDTH - 4)} *")
print(f"* {'你站在一个陌生的村庄入口,面前有两条岔路...'.ljust(BORDER_WIDTH - 4)} *")
print(empty_line)
print(top_bottom_border)

解释:ljust(BORDER_WIDTH -4)会把内容左对齐,剩下的位置自动补空格,不管内容长短,右边的星号都能完美对齐,不会歪歪扭扭。你可以按需调整内容行数,加剧情描述或选项都很方便。

自适应内容的边框(灵活适配长短文本)

如果游戏剧情内容长短不一(比如有时候是短选项,有时候是长场景描述),自适应边框会自动根据最长内容调整宽度,灵活性拉满:

def draw_adaptive_border(content_lines):
    # 找出所有内容里最长的那一行的长度
    max_content_length = max(len(line) for line in content_lines)
    # 上下边框长度 = 最长内容长度 + 4(左右各留2个空格边距)
    border = "*" * (max_content_length + 4)
    
    # 打印边框和内容
    print(border)
    for line in content_lines:
        # 每行内容左对齐,补空格到最长长度,再加上左右边框
        print(f"* {line.ljust(max_content_length)} *")
    print(border)

# 调用函数,传入你的游戏内容列表即可
game_scene = [
    "你进入了布满蛛网的密室",
    "墙角有个发光宝箱,旁边是打开的骷髅头骨",
    "你的选择:1. 打开宝箱  2. 检查骷髅头骨  3. 原路返回"
]
draw_adaptive_border(game_scene)

这个函数可以反复调用,每次切换场景时传入新剧情内容,它会自动生成适配的边框,超级省心。

带标题的氛围感边框

想让界面更有仪式感?可以给边框加个居中的场景标题,瞬间提升代入感:

def draw_bordered_scene(scene_title, content_lines):
    # 固定边框宽度为80,也可以改成自适应逻辑,这里先固定方便演示
    border_width = 80
    top_bottom_border = "*" * border_width
    
    # 生成居中标题行:用center方法让标题居中,两边自动补空格
    title_line = f"* {scene_title.center(border_width - 4)} *"
    # 标题和内容之间加分隔线,用-代替空格更醒目
    separator_line = "*" + "-" * (border_width - 2) + "*"
    
    # 打印完整场景
    print(top_bottom_border)
    print(title_line)
    print(separator_line)
    for line in content_lines:
        print(f"* {line.ljust(border_width - 4)} *")
    print(top_bottom_border)

# 调用示例:暗黑城堡场景
draw_bordered_scene(
    "暗黑城堡·大厅",
    [
        "厚重的木门在你身后缓缓关上,发出沉闷的声响",
        "大厅中央的烛台上,火焰诡异跳动着",
        "前方选择:[1]走上楼梯  [2]查看右侧盔甲  [3]检查壁炉"
    ]
)

一些锦上添花的小技巧

  • 跨平台清屏:每次切换场景前清屏,界面更干净。Windows用cls,Linux/macOS用clear,用下面的代码自动适配:
    import os
    os.system('cls' if os.name == 'nt' else 'clear')
    
  • 彩色边框:想让边框更显眼?可以用colorama库加颜色。先安装pip install colorama,再修改边框代码:
    from colorama import Fore, Style
    top_bottom_border = Fore.RED + "*" * BORDER_WIDTH + Style.RESET_ALL
    
    红色边框瞬间让游戏氛围拉满!
  • 自定义边框字符:看腻了*?可以换成#、=或者其他符号,只要把代码里的"*"替换成你想要的字符就行。

这些方案都很容易修改,你可以根据游戏风格调细节——比如加更多边距、换分隔线样式。要是有具体场景或新需求,随时喊我!

火山引擎 最新活动