• JAVA控制台版斗地主


    一、核心思路:

    1.首先分析流程

    A>B>C>A>B>C>A>B>C

    等于  while(true){

                     A>B>C

                  }

     然后完善细节

          发牌();

       while(true){

                     A出牌();

          if(A出完了){

          break; 
          }

          B出牌();

          if(B出完了){

          break;

          }

          C出牌();

          if(C出完了){

          break;

          }

                  }

    2.外层架构好了,进入发牌这层   //我是喜欢按层来架构,层与层直接尽量低耦合,进入了一层就只要思考当前这一层,不用考虑上一层或下一层。这里强烈安利Xmind,基础功能免费

    首先,声明一个字符串数组,里面包含54张牌,通过随机0·53的数,得到ABC的牌,当然要判断是否是重复的随机数。

    还有,得留3张底牌!

    3.退出发牌这层,进入到打牌这层

    》1. 出牌分为三种:

    第一种我打的牌没人要,从小开始打, //我称为人机优先出牌方法

    第二种前面的要不起,传入前面的前面的出牌和自己的牌,通过比较puke字符串的下标大小,来返回出什么牌,要不起就返回“不要”  //我称为人机后续出牌方法

    第三种接着前面打,方法和前面一样,不过传入的是前面的出牌而不是前面的前面  //我称为人机后续出牌方法

    》2. 出完牌需要把牌从手里的牌去掉:很明显是一个传参方法,传入出的牌,和出牌人手里所有的牌,用遍历找到,并且变为空(删除)

    》3. 去掉之后进行牌排序以便下次出牌:传入手里的牌,遍历出在puke字符串里的下标,下标越大牌就越大,然后用Array.sort()方法排序,再通过下标找到对应的牌

    4.接下来就是把自己的出牌写一下

    用scanner接受输入值,再通过一个方法判断自己出的牌是否合法,是:删牌,排序 否:提示,并且重新输入

    //原文地址:http://www.cnblogs.com/summertime-wu                    转载需授权!

    二、效果截图:

  • 相关阅读:
    http://blog.csdn.net/steveguoshao/article/details/38414145
    http://www.tuicool.com/articles/EjMJNz
    http://jingyan.baidu.com/article/7f41ecec1b7a2e593d095ce6.html
    Linux 查看当前时间和修改系统时间
    http://m.blog.csdn.net/article/details?id=49132747
    http://www.cnblogs.com/nick-huang/p/4848843.html
    javaScript事件(一)事件流
    jQuery选择器
    超链接a的target属性
    html基础总结版
  • 原文地址:https://www.cnblogs.com/summertime-wu/p/6664074.html
Copyright © 2020-2023  润新知