【问题标题】:How to "style" a text based hangman game如何“设计”基于文本的刽子手游戏
【发布时间】:2011-05-27 04:08:04
【问题描述】:

我的问题很简单,刽子手游戏是这样的:

我正在以一种我认为不太好的方式进行缩进。

我只有var = "\t" 并在每次打印时添加它,这似乎不切实际且难以维护。

你还有其他方法吗?这一般是如何管理的?

提前致谢!

【问题讨论】:

  • @belisarius:呵呵,不错,有人偷了我的业力!!只要你在身边就告诉我,我不想告诉你相关的事情。

标签: python terminal text-based


【解决方案1】:

问题:

print('\tthis')
print('\tis')
print('\tan')
print('\texample')

解决方案 = 抽象!:

def echo(string, indent=1):  # name it whatever you want, e.g. p
    print('\t'*indent + string)

echo('this')
echo('is')
echo('an')
echo('abstraction')

更好的解决方案 = 模板:

template = """
{partial}
 ______
{hangman}
|_________

Your points so far: {points}
You've entered (wrong): {wrong}

Choose a letter:
"""

print(
    template.format(
        partial=..., 
        hangman='\n'.join('|'+line for line in hangmanAscii(wrong=2).splitlines()), 
        points=..., 
        wrong=', '.join(...)
    )
)

【讨论】:

    【解决方案2】:

    Templates 不只是 用于 HTML。

    【讨论】:

    • 嗯,有趣,我真的不知道我正在检查它,谢谢!!
    【解决方案3】:

    帮助函数可以快速解决您当前的问题:

    def put(text): print "\t" + text
    

    对于更多有趣的东西,有一个基于终端的“图形”类应用程序库。它被称为“诅咒”,在 python 中也可用:http://docs.python.org/library/curses.htmlhttp://docs.python.org/howto/curses.html这里有教程,你可以在网上找到更多。

    Curses 使得无需太多努力就可以制作更有趣的基于文本的 UI。为了复制你所拥有的,你可能会创建一个大小和位置正确的窗口(使用newwin),然后在没有任何缩进的情况下打印文本(使用addstr)。 Curses 提供了很多选项和几种操作模式。它学起来并不快,因此只有在您打算使用基于终端的应用程序做更多事情时才有意义。

    【讨论】:

    • 我会 +1 用于辅助功能,但建议某人使用 curses 只是意味着.. :-)
    【解决方案4】:

    我可能会修正“你的词看起来像这样”中的错字。然后看printf的样式格式,如here所述。

    【讨论】:

    • 嘿,谢谢你的错字警告,printf 你在说什么?我知道格式化字符串是什么,但做 "%sYour word looks like this"%"\t" 或多或少是一样的。我不明白!谢谢!
    • 一个好的做法是将格式和数据分开,这是这样做的一种机制。例如print "\tYour points so far: %d" % points - 格式集中在一处,数据集中在一处。我不会将选项卡放在变量中。
    • PS:模板(由 Ignacio 建议)提供了不同的机制来实现相同的结果。使用适合您的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多