仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 487|回复: 12
打印 上一主题 下一主题

[学习教程] 发布一篇Java完成扑克发牌算法

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:13:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
他们对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[108];
       //存储四个玩家的牌
       int[][]player=newint[4][25];
       //存储以后残剩牌的数目
       intleftNum=108;
       //随机数字
       intranNumber;
       //随机对象
       Randomrandom=newRandom();
       //初始化数组
       for(inti=0;i<total.length;i++){
          total[i]=(i+1)%54;
          //处置巨细王编号
          if(total[i]==0){
              total[i]=54;
          }
       }
       //轮回发牌
       for(inti=0;i<25;i++){
          //为每一个人发牌
          for(intj=0;j<player.length;j++){
              //天生随机下标
              ranNumber=random.nextInt(leftNum);
              //发牌
              player[j][i]=total[ranNumber];
              //挪动已发过的牌
              total[ranNumber]=total[leftNum-1];
              //可发牌的数目削减1
              leftNum--;
          }
       }
       //轮回输入玩家手中的牌
       for(inti=0;i<player.length;i++){
          for(intj=0;j<player[i].length;j++){
              System.out.print(" "+player[i][j]);
          }
          System.out.println();
       }
       //底牌
       for(inti=0;i<8;i++){
          System.out.print(" "+total[i]);
       }
       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、数据中心、游戏控制台
飘飘悠悠 该用户已被删除
5#
发表于 2015-1-30 19:22:11 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-6 15:15:03 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
冷月葬花魂 该用户已被删除
7#
发表于 2015-2-9 05:39:29 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
若相依 该用户已被删除
8#
发表于 2015-2-9 23:54:47 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
变相怪杰 该用户已被删除
9#
发表于 2015-2-18 19:14:44 | 只看该作者
是一种为 Internet发展的计算机语言
活着的死人 该用户已被删除
10#
发表于 2015-2-27 01:29:59 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
小魔女 该用户已被删除
11#
发表于 2015-3-8 18:50:53 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
不帅 该用户已被删除
12#
发表于 2015-3-16 11:14:16 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
老尸 该用户已被删除
13#
发表于 2015-3-22 22:10:49 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 15:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表