逍遥一派 发表于 2015-1-18 11:13:33

发布一篇Java完成扑克发牌算法

他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。
扑克发牌算法是棋牌游戏中经常使用的基本算法,也是游戏开辟职员必要熟习的基本算法之一。上面先容一下该算法的一种完成体例。
起首给扑克牌中每张牌设定一个编号,上面算法完成的编号划定规矩以下:
u 红桃依照从小到年夜顺次为:1-13
u 方块依照从小到年夜顺次为:14-26
u 黑桃依照从小到年夜顺次为:27-39
u 梅花依照从小到年夜顺次为:40-52
u 小王为53,年夜王为54
算法完成以下:
u 起首依照以上编号划定规矩初始化一个包括108个数字的数组
u 每次随机从该数组中抽取一个数字,分派给保留玩家数据的数组
完成该功效的代码以下所示:
importjava.util.*;
/**
*发牌算法的完成
*请求:把2副牌,也就是108张,发给4团体,留6张底牌
*/
publicclassExec{
   publicstaticvoidmain(String[]args){
       //存储108张牌的数组
       int[]total=newint;
       //存储四个玩家的牌
       int[][]player=newint;
       //存储以后残剩牌的数目
       intleftNum=108;
       //随机数字
       intranNumber;
       //随机对象
       Randomrandom=newRandom();
       //初始化数组
       for(inti=0;i<total.length;i++){
          total=(i+1)%54;
          //处置巨细王编号
          if(total==0){
              total=54;
          }
       }
       //轮回发牌
       for(inti=0;i<25;i++){
          //为每一个人发牌
          for(intj=0;j<player.length;j++){
              //天生随机下标
              ranNumber=random.nextInt(leftNum);
              //发牌
              player=total;
              //挪动已发过的牌
              total=total;
              //可发牌的数目削减1
              leftNum--;
          }
       }
       //轮回输入玩家手中的牌
       for(inti=0;i<player.length;i++){
          for(intj=0;j<player.length;j++){
              System.out.print(" "+player);
          }
          System.out.println();
       }
       //底牌
       for(inti=0;i<8;i++){
          System.out.print(" "+total);
       }
       System.out.println();
   }
}
出自:http://blog.csdn.net/Mailbomb/archive/2006/05/14/728176.aspx

C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)

再现理想 发表于 2015-1-20 17:29:01

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

分手快乐 发表于 2015-1-26 22:21:01

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

飘灵儿 发表于 2015-1-29 06:18:00

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

飘飘悠悠 发表于 2015-1-30 19:22:11

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

愤怒的大鸟 发表于 2015-2-6 15:15:03

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

冷月葬花魂 发表于 2015-2-9 05:39:29

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

若相依 发表于 2015-2-9 23:54:47

是一种将安全性(Security)列为第一优先考虑的语言

变相怪杰 发表于 2015-2-18 19:14:44

是一种为 Internet发展的计算机语言

活着的死人 发表于 2015-2-27 01:29:59

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

小魔女 发表于 2015-3-8 18:50:53

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

不帅 发表于 2015-3-16 11:14:16

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

老尸 发表于 2015-3-22 22:10:49

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
页: [1]
查看完整版本: 发布一篇Java完成扑克发牌算法