经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 游戏设计 » 查看文章
简单的骰子游戏
来源:cnblogs  作者:YancyMauno  时间:2018/10/12 9:24:40  对本文有异议

偶尔看到的了一个需求,闲来无事就简单写了一下,仅供学习娱乐,欢迎指正交流。

骰子数:3个

奖励倍数:1-9倍

奖励结果 = 赌注 * 奖励倍数

游戏玩法选择:  猜和值,猜和值大小单双,猜点数,猜点数两同,猜点数三同且猜中点数,猜点数三同不猜点数

游戏玩法步骤: 

        1. 运行程序

        2. 控制台输入玩法标识  1--猜和值 2--猜和值大小 3--猜和值单双 4--猜点数 5--猜两同 6--猜点数三同且猜中点数 7--猜点数三同 不猜点数

        3. 控制台输入竞猜(和值3-18/大小00,01/单双10,11/点数 1-3个以逗号隔开的数字/三同点数 1-6).注 猜两同 猜三同不猜点数 可随意输入

        4. 控制台输入赌注(数字)

        5. 回车查看奖励

CODE:

  1. //骰子游戏
  2. public static void diceGame() {
  3. //初始化奖励倍数
  4. int times1=1;//猜中和值的奖励倍数
  5. int times2=2;//猜中和值大小的奖励倍数
  6. int times3=3;//猜中和值单双的奖励倍数
  7. int times4=4;//猜中点数的个数为1个的奖励倍数
  8. int times5=5;//猜中点数的个数为2个的奖励倍数
  9. int times6=6;//猜中点数的个数为3个的奖励倍数
  10. int times7=7;//猜中点数两同的奖励倍数
  11. int times8=8;//猜中点数三同的奖励倍数
  12. int times9=9;//猜中点数三同通选的奖励倍数
  13. //生成三个 1-6 随机数 a,b,c
  14. int a=(int) (Math.random()*6+1);
  15. int b=(int) (Math.random()*6+1);
  16. int c=(int) (Math.random()*6+1);
  17. System.out.println(a+","+b+","+c);
  18. //最终奖励倍数 times 初始化为0
  19. int times = 0;
  20. //三个随机数的玩法组合结果 result: 和值,和值大小单双,猜中点数的个数,点数两同,点数三同,点数三同通选
  21. String resultFlag = null;//标识选择的玩法(输入1,2,3,4....)
  22. String result= null;//用户的竞猜结果
  23. String beans= null;//用户竞猜的金豆数
  24. Scanner s = new Scanner(System.in);
  25. do {
  26. resultFlag = s.nextLine();
  27. }while(resultFlag.length()==0);
  28. do {
  29. result = s.nextLine();
  30. }while(result.length()==0);
  31. do {
  32. beans = s.nextLine();
  33. }while(beans.length()==0);
  34. //猜和值
  35. if(resultFlag.equals("1")) {//猜和值
  36. if(a+b+c==Integer.parseInt(result)) {
  37. System.out.println("猜中和值");
  38. times = times1;
  39. }
  40. }
  41. //猜和值大小
  42. if(resultFlag.equals("2")) {
  43. if(a+b+c<=10&&result.equals("00")) {//字符串标识 "00" 大 "01"小
  44. System.out.println("猜中和值小");
  45. times = times2;
  46. }else if((a+b+c)%2==1&&result.equals("01")){
  47. System.out.println("猜中和值大");
  48. times = times2;
  49. }
  50. }
  51. //猜和值单双
  52. if(resultFlag.equals("3")) {
  53. if((a+b+c)%2==1&&result.equals("10")) {//字符串标识 "10" 单 "11"双
  54. System.out.println("猜中和值单数");
  55. times = times3;
  56. }else if((a+b+c)%2==0&&result.equals("11")){
  57. System.out.println("猜中和值双数");
  58. times = times3;
  59. }
  60. }
  61. //猜点数
  62. if(resultFlag.equals("4")) {
  63. String[] res = result.split(",");//猜点数玩法 用户输入一行1-3个数以逗号隔开
  64. if(res.length==1) {//猜一个数
  65. if(a==Integer.parseInt(res[0])||b==Integer.parseInt(res[0])||c==Integer.parseInt(res[0])) {
  66. System.out.println("猜中三个随机数中含有某一个点数");
  67. times = times4;
  68. }
  69. }
  70. if(res.length==2) {//猜两个数
  71. if(a==Integer.parseInt(res[0])&&b==Integer.parseInt(res[1])
  72. ||a==Integer.parseInt(res[1])&&b==Integer.parseInt(res[0])) {
  73. times = times5;
  74. }
  75. if(a==Integer.parseInt(res[0])&&c==Integer.parseInt(res[1])
  76. ||a==Integer.parseInt(res[1])&&c==Integer.parseInt(res[0])) {
  77. times = times5;
  78. }
  79. if(b==Integer.parseInt(res[0])&&a==Integer.parseInt(res[1])
  80. ||b==Integer.parseInt(res[1])&&a==Integer.parseInt(res[0])) {
  81. times = times5;
  82. }
  83. if(b==Integer.parseInt(res[0])&&c==Integer.parseInt(res[1])
  84. ||b==Integer.parseInt(res[1])&&c==Integer.parseInt(res[0])) {
  85. times = times5;
  86. }
  87. if(c==Integer.parseInt(res[0])&&a==Integer.parseInt(res[1])
  88. ||c==Integer.parseInt(res[1])&&a==Integer.parseInt(res[0])) {
  89. times = times5;
  90. }
  91. if(c==Integer.parseInt(res[0])&&b==Integer.parseInt(res[1])
  92. ||c==Integer.parseInt(res[1])&&b==Integer.parseInt(res[0])) {
  93. times = times5;
  94. }
  95. }
  96. if(res.length==3) {//猜三个数
  97. if(a==Integer.parseInt(res[0])&&b==Integer.parseInt(res[1])&&c==Integer.parseInt(res[2])) {
  98. times = times6;
  99. }
  100. if(a==Integer.parseInt(res[0])&&b==Integer.parseInt(res[2])&&c==Integer.parseInt(res[1])) {
  101. times = times6;
  102. }
  103. if(a==Integer.parseInt(res[1])&&b==Integer.parseInt(res[0])&&c==Integer.parseInt(res[2])) {
  104. times = times6;
  105. }
  106. if(a==Integer.parseInt(res[1])&&b==Integer.parseInt(res[2])&&c==Integer.parseInt(res[0])) {
  107. times = times6;
  108. }
  109. if(a==Integer.parseInt(res[2])&&b==Integer.parseInt(res[0])&&c==Integer.parseInt(res[1])) {
  110. times = times6;
  111. }
  112. if(a==Integer.parseInt(res[2])&&b==Integer.parseInt(res[1])&&c==Integer.parseInt(res[0])) {
  113. times = times6;
  114. }
  115. }
  116. }
  117. if(resultFlag.equals("5")) {//猜两同
  118. if(a==b||a==c||b==c) {
  119. System.out.println("猜中两同");
  120. times = times7;
  121. }
  122. }
  123. if(resultFlag.equals("6")) {//猜三同
  124. if(a==b&&b==c&&a==Integer.parseInt(result)) {
  125. System.out.println("猜三同且猜中数字");
  126. times = times8;
  127. }
  128. }
  129. if(resultFlag.equals("7")) {//猜三同通选
  130. if(a==b&&b==c) {
  131. System.out.println("猜中三同");
  132. times = times9;
  133. }
  134. }
  135. //打印输出 奖励数=金豆数*倍数
  136. System.out.println(Integer.parseInt(beans)*times);
  137. }

 运行截图:

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号