php脚本游戏,25个PHP游戏编程脚本代码

米德里比斯

米德里比斯是一款文字游戏,玩家在游戏中得到一个简短的故事并用同一类型的不同单词替换主要类型的单词,从而创建同一个故事的更无聊的新版本。阅读以下文本:“I was walking in the park when I found a lake. I jumped in and swallowed too much water. I had to go to the hospital.” 开始用其他单词标记替换单词类型。开始和结束标记带有下划线用于阻止意外的字符串匹配。

清单 20. 用单词标记替换单词类型

$text = "I was _VERB_ing in the _PLACE_ when I found a _NOUN_.

I _VERB_ed in, and _VERB_ed too much _NOUN_. I had to go to the _PLACE_.";

接下来,创建几个基本单词列表。对于本例,我们也不会做得太复杂。

清单 21. 创建几个基本单词列表

$verbs = array('pump', 'jump', 'walk', 'swallow', 'crawl', 'wail', 'roll');

$places = array('park', 'hospital', 'arctic', 'ocean', 'grocery', 'basement',

'attic', 'sewer');

$nouns = array('water', 'lake', 'spit', 'foot', 'worm',

'dirt', 'river', 'wankel rotary engine');

现在可以重复地评估文本来根据需要替换标记。

清单 22. 评估文本

while (preg_match("/(_VERB_)|(_PLACE_)|(_NOUN_)/", $text, $matches)) {

switch ($matches[0]) {

case '_VERB_' :

shuffle($verbs);

$text = preg_replace($matches[0], current($verbs), $text, 1);

break;

case '_PLACE_' :

shuffle($places);

$text = preg_replace($matches[0], current($places), $text, 1);

break;

case '_NOUN_' :

shuffle($nouns);

$text = preg_replace($matches[0], current($nouns), $text, 1);

break;

}

}

echo $text;

很明显,这是一个简单而粗糙的示例。单词列表越精确,并且花在基本文本上的时间越多,结果就越好。我们已经使用了文本文件创建名称列表及基本单词列表。使用相同原则,我们可以创建按类型划分的单词列表并使用这些单词列表创建更加变化多端的米德里比斯游戏。乐透机

全部选中乐透的六个正确号码 —— 退一步说 —— 在统计学上是不可能的。不过,许多人仍然花钱去玩,而且如果您喜欢号码,则查看趋势图可能很有趣。让我们构建一个脚本,该脚本将允许跟踪赢奖号码并在列表中提供选择次数最少的 6 个号码。

(免责声明:这不会帮助您中乐透奖,因此请不要花钱购买奖券。这只是为了娱乐)。

把赢奖的乐透选择保存到文本文件中。用逗号分隔各个号码并把每组号码放在单独一行中。使用换行符分隔文件内容并使用逗号分隔行后,可以得到类似清单 23 的内容。

清单 23. 把选择的赢奖乐透保存到文本文件中

$picks = array(

array('6', '10', '18', '21', '34', '40'),

array('2', '8', '13', '22', '30', '39'),

array('3', '9', '14', '25', '31', '35'),

array('11', '12', '16', '24', '36', '37'),

array('4', '7', '17', '26', '32', '33')

);

很明显,这不足以成为绘制统计数据的基本文件。但是它是一个开端,并且足以演示基本原理。

设置一个基本数组以保存选择范围。例如,如果选择 1 到 40 之间(例如,$numbers = array_fill(1,40,0);)的号码,则遍历我们的选择,递增相应的匹配值。

清单 24. 遍历选择

foreach ($picks as $pick) {

foreach ($pick as $number) {

$numbers[$number]++;

}

}

最后,根据值将号码排序。此操作应当会把最少选择的号码放在数组的前部。

清单 25. 根据值将号码排序

asort($numbers);

$pick = array_slice($numbers,0,6,true);

echo implode(',', array_keys($pick));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值