JAVA控制台版斗地主

Posted 夏日浅笑丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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                    转载需授权!

 

二、效果截图:

 

以上是关于JAVA控制台版斗地主的主要内容,如果未能解决你的问题,请参考以下文章

[“斗地主”的技巧:扑克游戏指导].孔维民.扫描版

vijos p1980斗地主/luogu p2540斗地主增强版

luogu2540 斗地主增强版

HTML小游戏19 —— html5版开心斗地主小游戏(附完整源码)

插入排序java版

上班划水神器:一个可以在控制台玩斗地主项目!