论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

[源码] 猜数字算法 [一] (as2.0)

文章类别:Flash AS编程 | 发表日期:2008-10-6 18:14:13


[源码] 猜数字算法 [一]  (as2.0)            [源码] 猜数字算法 [二]  (as2.0)

猜数字是我初中时在课堂上最喜欢玩的游戏....游戏平台嘛.........我的文曲星PC260........

这个游戏的规则比较简单,一般两个人玩,一方出数字,一方猜。出数字的人要想好一个没有重复数字的4位数,不能让猜得人知道。猜的人就可以开始猜。 每猜一个数字,出数者就要根据这个数字给出几A几B,其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。

如正确答案为5234,而猜的人猜5346,则是1A2B,其中有一个5的位置对了,记为1A,而3和4这两个数字对了,而位置没对,因此记为2B,合起来就是1A2B。

接着猜的人再根据出题者的几A几B继续猜,直到猜中为止。

次数限制
有的时候,这个游戏有猜测次数上的限制。根据计算机测算,这个游戏,如果以最严谨的计算,任何数字可以在7次之内猜出。而有些地方把次数限制为6次或更 少,则会导致有些数可能猜不出来。而有些地方考虑到人的逻辑思维难以达到计算机的那么严谨,故设置为8次甚至10次。也有的没有次数上的限制。

首先我们先来完成对游戏的实现,反过来再为游戏完成算法反猜...[游戏预览]

游戏的实现必没有什么难度,只是一些简单的算法而已,首先生成一个各不相同的四位数,可以向用一个项为0~9的数组,然后每次从数组里随机取出一个数字并删除该位置的数字,这样便可以保证四位数在各个位上互不相同..代码实现为:

view plaincopy to clipboardprint?
  1. function getRandomNum()//生成四位不相同數字  
  2. {  
  3.     var strArray = new Array(0,1,2,3,4,5,6,7,8,9);  
  4.     var s="";  
  5.     for(var i=0;i<4;i++)  
  6.     {  
  7.         s += strArray.splice(parseInt(strArray.length *Math.random()),1)  
  8.     }  
  9.     return s;  
  10. }  
  11. function chkSameNum(s)//檢查數字中是否有相同數字  
  12. {  
  13.     for(var i=0;i<s.length;i++)  
  14.     {  
  15.         for(var j=i+1;j<s.length;j++)  
  16.         {  
  17.             if(s.substr(i,1) == s.substr(j,1))  
  18.             {  
  19.                 return true;                  
  20.             }  
  21.         }  
  22.     }  
  23.     return false;  
  24. }  
view plaincopy to clipboardprint?
  1. function getRandomNum()//生成四位不相同數字  
  2. {  
  3.     var strArray = new Array(0,1,2,3,4,5,6,7,8,9);  
  4.     var s="";  
  5.     for(var i=0;i<4;i++)  
  6.     {  
  7.         s += strArray.splice(parseInt(strArray.length *Math.random()),1)  
  8.     }  
  9.     return s;  
  10. }  
  11. function chkSameNum(s)//檢查數字中是否有相同數字  
  12. {  
  13.     for(var i=0;i<s.length;i++)  
  14.     {  
  15.         for(var j=i+1;j<s.length;j++)  
  16.         {  
  17.             if(s.substr(i,1) == s.substr(j,1))  
  18.             {  
  19.                 return true;                  
  20.             }  
  21.         }  
  22.     }  
  23.     return false;  
  24. }  

 

完整代码可以进入游戏,通过右键,查看源文件得到.

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058