快速业务通道

25个不错PHP的游戏编程脚本代码分享

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-23

   本文介绍了25个不错PHP的游戏编程脚本代码,包括简单的掷骰器、随机名称生成器、场景生成器、牌组创建器(Deck builder)和装备(shuffler)、简单的扑克发牌器、Hangman游戏、纵横字谜助手、米德里比斯、乐透机等。希望能够对你的工作有所帮助。

  简单的掷骰器

  许多游戏和游戏系统都需要骰子。让我们先从简单的部分入手:掷一个六面骰子。实际上,滚动一个六面骰子就是从 1 到 6 之间选择一个随机数字。在 PHP 中,这十分简单:echo rand(1,6);。

  在许多情况下,这基本上很简单。但是在处理机率游戏时,我们需要一些更好的实现。PHP 提供了更好的随机数字生成器:mt_rand()。在不深入研究两者差别的情况下,可以认为 mt_rand 是一个更快、更好的随机数字生成器:echo mt_rand(1,6);。如果把该随机数字生成器放入函数中,则效果会更好。

  清单 1. 使用 mt_rand() 随机数字生成器函数

  function roll () {

  return mt_rand(1,6);

  }

  echo roll();

  然后可以把需要滚动的骰子类型作为参数传递给函数。

  清单 2. 将骰子类型作为参数传递

  function roll ($sides) {

  return mt_rand(1,$sides);

  }

  echo roll(6); // roll a six-sided die

  echo roll(10); // roll a ten-sided die

  echo roll(20); // roll a twenty-sided die

  从这里开始,我们可以继续根据需要一次滚动多个骰子,返回结果数组;也可以一次性滚动多个不同类型的骰子。但是大多数任务都可以使用这个简单的脚本。

  随机名称生成器

  如果正在运行游戏、编写故事或者一次性创建大批字符,有时会疲于应付不断出现的新名字。让我们看一看可用于解决此问题的一个简单随机名称生成器。首先,让我们创建两个简单数组 — 一个用于名字,一个用于姓氏。

  清单 3. 名字和姓氏的两个简单数组

  $male = array(

  "William",

  "Henry",

  "Filbert",

  "John",

  "Pat",

  );

  $last = array(

  "Smith",

  "Jones",

  "Winkler",

  "Cooper",

  "Cline",

  );

  然后就可以从每个数组中选择一个随机元素:echo $male[array_rand($male)] . '' '' . $last[array_rand($last)];。要一次性提取多个名称,只需混合数组并根据需要提取。

  清单 4. 混合名称数组

  shuffle($male);

  shuffle($last);

  for ($i = 0; $i <= 3; $i++) {

  echo $male[$i] . '' '' . $last[$i];

  }

  基于此基本概念,我们可以创建保存名字和姓氏的文本文件。如果在文本文件的每一行中存放一个名字,则可以轻松地用换行符分隔文件内容以构建源代码数组。

  清单 5. 创建名称的文本文件

  $male = explode(''\n'', file_get_contents(''names.female.txt''));

  $last = explode(''\n'', file_get_contents(''names.last.txt''));

  构建或查找一些好的名字文件(代码归档 中附带了一些文件),此后我们绝不再需要为名字烦恼。

  场景生成器

  利用构建名字生成器使用的相同基本原理,我们可以构建场景生成器。此生成器不但在角色扮演游戏中十分有用,而且在需要用到伪随机环境集合(可用于角 色扮演、即兴创作、写作等情况)的情况下也十分有用。我最喜欢的游戏之一,Paranoia 在其 GM Pack 中包括了 “任务混合器(mission blender)”。任务混合器可用于在快速滚动骰子时整合完整任务。让我们整合自己的场景生成器。

  考虑以下场景:您醒来后发现自己迷失于丛林中。您知道自己必须赶去纽约,但是不知道原因。您可以听到附近的狗

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号