收集耐心纸牌游戏。

pytience的Python项目详细描述


PyPI versionBuild StatuscodecovLicense

Pytience-Python中的耐心纸牌游戏集合

这个项目的目标是建立在一个共同的框架上的小型控制台纸牌游戏集合。第一个这样的 游戏是克朗代克(或“经典纸牌”)。需要Python 3.7+。要安装,请运行pip install pytience。在

克朗代克

根据标准rules,游戏通过文本命令进行。在

开始游戏

在终端中运行klondike。屏幕将被清除,并被替换成基础、表格和视图。 游戏统计。如果你以前玩过,它会自动加载最后一个状态。画面显示为扇形 下一堆,在列的顶部有一个“底部”卡片,下面的每一张卡片都建立在前一个卡片的顶部。这个 基础桩是方形的。在

前一个命令将显示在提示中,单击return将再次执行该命令。在

Score: 0
Stock: 24
Waste: []
Foundation: [♠]  [♦]  [♣]  [♥]
Tableau:
0    1    2    3    4    5    6
---  ---  ---  ---  ---  ---  ---
6♣   #    #    #    #    #    #
     A♦   #    #    #    #    #
          4♠   #    #    #    #
               5♦   #    #    #
                    7♥   #    #
                         4♦   #
                              8♠

klondike[type ? for help]>

从股票中发一张卡

要处理一张卡,运行deal(或只运行d)。将从最上面取出一张卡片,并从中取出一张 在垃圾堆上扇形。库存数量将减少1。如果你在股票空置前交易 废物将被退回库存并回收利用。在

^{pr2}$

移动表格卡

要使用tableau(或t)命令选择一张卡片(或一堆卡片):

tableau <from_pile> [<card_num> [to_pile]]

桩号和卡号的参数是零索引的。如果一张牌上面有牌,那张牌和牌 上面是一起移动的。如果card_num被省略,则假定它是这堆牌中的头牌。如果to_pile 如果省略,它会尝试把单张卡片放在基础上,然后在表格中寻找一堆。在

tableaut命令可以完全省略,整数将被假定为tableau参数。在

一些例子:

  • tableau 2 2 3-将第三张牌从第三堆移到第四堆。4♠将移动到5♦下方,然后是下一张牌 将被揭露。在
  • < L> {< CD16> } -将顶部卡片从第三个桩移动到第一个可用的基础或表桩。A♦将是 移动到基金会,下一张牌就会被揭开。把卡片从桌面移到基础 为您赢得15分。在
  • 0-从第一堆移走最上面的一张牌。6♣将在7♥下面找到一个原点,第一列将是 空的。只有国王才能被安置在那里。在
  • 4 4-从第五列移动第五张牌。7♥(以及上面的任何牌)将移动到8♠的下方

如果按顺序运行上述所有命令,则表格可能如下所示:

Score: 15
Stock: 23
Waste: [8♥]
Foundation: [♠]  A♦  [♣]  [♥]
Tableau:
0    1    2    3    4    5    6
---  ---  ---  ---  ---  ---  ---
[ ]  2♥   #    #    #    #    #
          J♦   #    #    #    #
               #    #    #    #
               5♦   A♣   #    #
               4♠        #    #
                         4♦   #
                              8♠
                              7♥
                              6♣

klondike[tableau 4 4]>

移动废卡

使用waste(或w)命令从废纸牌中选择顶卡:

waste [<tableau pile>]

如果表桩参数被省略,它将试图将顶部废纸牌放入地基(价值10点), 或者是画面(值5分)。如果在基础^ {EM1}$和表中有一个点,它将是有利的。 指定表桩,并从表到基础第二步,赚取20点组合。在

< H3>移动基础卡< EH3> 有时你可能需要把一张基础卡移到屏幕上,打开一张废纸牌的位置或另一个移动。在

foundation <c(lubs)|d(diamonds|s(pades)|h(earts)> [<tableau pile num>]

指定要从基础上拔出基础卡的套件,以及可选的表桩编号。如果桩号为 省略,它将寻找合适的。从基金会的举动将惩罚你15分。在

开始新游戏

扔掉当前游戏,用newn创建一个新游戏。在

撤消

你的一举一动都会被记录下来。您可以使用undo(或u)命令撤消所有这些操作,一次一个。在

求解

如果库存和废料都是空的,所有的o如果显示了tableau卡,solve将移动一张卡到 为你奠基。这是一个方便,因为没有任何移动可以使游戏无法解决。在

保存

你的每一步都会将当前游戏保存到~/.pytience/klondike.save。您可以使用以下命令指定自己的保存文件:

save [filename]

负载

使用命令load [filename],您可以加载先前保存的游戏。在

帮助

使用help或{},您可以看到上面所有的命令、它们的语法和它们的描述。在

退出

使用quitqctrl-d退出游戏。在

查看游戏状态

唯一未记录的命令是_dump(以前是_state)。使用它可以查看游戏状态的JSON表示。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
加密如何在Java中使用Skipjack(skip32)将数据库中的顺序整数随机化   java Android在两个活动之间传递数据获取NullPointerException   在构造函数中传递的java上下文显示错误   java将密钥添加到选定的密钥集   javascript为什么带有特殊字符的字符串在GET和POST方法中的行为不同?   java将反射。方法创建一个函数接口   设置Javasocket的端口   java通过一次按键调用MenuItem   java和引擎加载图形:为什么我的背景纹理很小,而且是颠倒的   如何将UV纹理从blender加载到opengl 安卓 java   跨Java虚拟机实现的jvm Java toString表示?   spring在Java服务器页面的上下文中这叫什么?