background image

Pack 

中包括了 任务混合器(mission blender ”

) 。任务混合器可用于在快速滚动骰子时整

合完整任务。让我们整合自己的场景生成器。
考虑以下场景:您醒来后发现自己迷失于丛林中。您知道自己必须赶去纽约,但是不知道
原因。您可以听到附近的狗叫声及清晰的敌方搜寻者的声音。您浑身发冷、不住颤抖,而且
没有武器。该场景中的每一句话都介绍场景的特定方面:

” — 

您醒来后发现自己迷失于丛林中

这句话将建立设置。

” — 

您知道自己必须赶去纽约

这句话将描述目标。

” — 

您可以听到狗叫声

这句话将介绍敌人。

” — 

您浑身发冷、不住颤抖,而且没有武器

这句话将添加复杂度。

就像创建名字和姓氏的文本文件一样,首先分别创建设置、目标、敌人和复杂度的文本文
件。代码归档中附带了样例文件。在拥有这些文件后,生成场景的代码与生成名称的代码
基本相同。

 

清单 6. 生成场景

  $settings = explode("\n", file_get_contents('scenario.settings.txt'));
  $objectives = explode("\n", file_get_contents('scenario.objectives.txt'));
  $antagonists = explode("\n", file_get_contents('scenario.antagonists.txt'));
  $complicati**** = explode("\n", file_get_contents('scenario.complicati****.txt'));
  shuffle($settings);
  shuffle($objectives);
  shuffle($antagonists);
  shuffle($complicati****);
  echo $settings[0] . ' ' . $objectives[0] . ' ' . $antagonists[0] . ' '
  . $complicati****[0] . "<br />\n"; 
我们可以通过添加新文本文件向场景中添加元素,也可能希望添加多重复杂度。添加到基
本文本文件中的内容越多,场景随时间的变化就越多。
牌组创建器(Deck builder)和装备(shuffler)

如果您要玩纸牌并且要处理与纸牌相关的脚本,我们需要用装备中的工具整合一副牌组

 — 

构建器。首先,让我们构建一副标准纸牌。需要构建两个数组

一个用于保存同花色的组

牌,而另一个用于保存牌面。如果稍后需要添加新组牌或牌类型,则这样做将获得很好的
灵活性。

 

清单 7. 构建一副标准扑克牌

  $suits = array (
  "Spades", "Hearts", "Clubs", "Diamonds"
  );
  $faces = array (
  "Two", "Three", "Four", "Five", "Six", "Seven", "Eight",
  "Nine", "Ten", "Jack", "Queen", "King", "Ace"
  ); 

 

然后构建一副牌数组来保存所有纸牌值。只需使用一对 foreach 循环即可完成此操作。

 

清单 8. 构建一副牌数组