设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

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

2011-3-30 14:00| 发布者: joejoe0332| 查看: 8864| 评论: 0|原作者: 开源中国社区|来自: 开源中国社区

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

  本文介绍了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() 随机数字生成器函数

  1. function roll () {  
  2. return mt_rand(1,6);  
  3. }  
  4. echo roll(); 

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

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

  1. function roll ($sides) {  
  2. return mt_rand(1,$sides);  
  3. }  
  4. echo roll(6);  // roll a six-sided die  
  5. echo roll(10);  // roll a ten-sided die  
  6. echo roll(20);  // roll a twenty-sided die 

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

  随机名称生成器

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

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

  1. $male = array(  
  2. "William",  
  3. "Henry",  
  4. "Filbert",  
  5. "John",  
  6. "Pat",  
  7. );  
  8. $last = array(  
  9. "Smith",  
  10. "Jones",  
  11. "Winkler",  
  12. "Cooper",  
  13. "Cline",  
  14. ); 

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

  清单 4. 混合名称数组

  1. shuffle($male);  
  2. shuffle($last);  
  3. for ($i = 0; $i <= 3; $i++) {  
  4. echo $male[$i] . ' ' . $last[$i];  

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

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

  1. $male = explode('\n'file_get_contents('names.female.txt'));  
  2. $last = explode('\n'file_get_contents('names.last.txt')); 

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


酷毙

雷人

鲜花

鸡蛋

漂亮

相关阅读

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部