前言
🚀感谢大家一直以来对我的相信和支持,以后的我一定会产出更为高质量的博客的!现在让我们一起学习如何实现模拟斗地主的操作吧!
一,模拟斗地主效果展示
一想到斗地主,大家脑海中一定会浮现出🔥花花绿绿🔥的页面:,何况我们马上要模拟斗地主的实现,但是身为初学者,要开始面对idea的控制栏了( ̄_, ̄ )
让我们先来观察一下每个人的牌的好坏(x_x;)(bushi ᕕ( ᐛ )ᕗ )
二,模拟斗地主实现前准备
要实现上图模式,首先要克服如此三个问题:
1,如何让四个字符与数字相匹配
2,如何把牌打乱
3,如何把牌分为三份并给与三个人
如何解决:
- 我们首先可以创建字符串集合
- 然后使用ArrayList集合来解决第一个匹配问题
由于**ArrayList的特性**
我们可以遍历集合把字符和数字拼接到一起放入集合中
- 为了解决第二个问题,我们就要引入Collections类
Collection类是针对集合操作的工具类
Collections的使用方法如下:
//Collections的使用方法:
public static <T extends Comparable <?super T>> void sort(List<T>list)
//将指定的列表按升序排列
public static void reverse(List<?>list)
//翻转指定列表中元素的顺序
public static void shuffle(List<?>list)
//使用默认随机源,随机排列指定列表
- 为了解决第三个问题,我们要创建多个不同集合,然后分别给集合添加拼接到一起的元素
有了如此解决方法,我们就可以开始着手实现项目的搭建了!(´ー∀ー`)
三,模拟斗地主的实现
直接使用ArrayList实现问题的解决方法:
import java.util.ArrayList
public class PlayPoker {
public static void main(String[] args) {
ArrayList<String> Poker = new ArrayList<String>();
//创建Poker集合用来存放拼接好的字符
String[] colors = {"♥", "♣", "♦", "♠"};//字符串实现花色
String[] numbers = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};//字符串实现数字
for (String color : colors) {
for (String number : numbers) {
//使用嵌套循环让字符和数字拼接到一起放入集合中
Poker.add(color + number);
}
}
Poker.add("大王");
Poker.add("小王");
Collections.shuffle(Poker);//使用默认随机源,随机排列指定列表
ArrayList<String> zsarray = new ArrayList<>();//张三
ArrayList<String> lsarray = new ArrayList<>();//李四
ArrayList<String> wwarray = new ArrayList<>();//王五
ArrayList<String> dparray = new ArrayList<>();//底牌
//分别创建各自的集合
for (int i = 0; i < Poker.size(); i++) {
//循环遍历后分别放入各自的集合
String pokers = Poker.get(i);
if (i >= Poker.size() - 3) {
//底牌的判断方法
dparray.add(pokers);
} else if (i % 3 == 1) {
zsarray.add(pokers);
} else if (i % 3 == 2) {
lsarray.add(pokers);
} else {
wwarray.add(pokers);
}
}
//因为每个人的查看牌的方式相同,定义一个方法来实现看牌
lookpoker("张三", zsarray);
lookpoker("李四", lsarray);
lookpoker("王五", wwarray);
lookpoker("底牌", dparray);
}
public static void lookpoker(String name, ArrayList<String> Pokers){
System.out.println(name + "的牌是" + Pokers);
}
}
四,知识点总结
Collection类
***Collection类***是针对集合操作的工具类
使用方法:
1,public static <T extends Comparable <?super T>> void sort(Listlist):将指定的列表按升序排列
2,public static void reverse(List<?>list):翻转指定列表中元素的顺序
3,public static void shuffle(List<?>list):使用默认随机源,随机排列指定列表
各位大佬们,如果发现什么不对的地方,需要修改的地方,还请在评论区指出。
一起学习,共同进步!( ̄▽ ̄)~■干杯□~( ̄▽ ̄)