21小游戏点用集合实现完整版
21小游戏点用集合实现完整版
集合比数组写着爽多了啊啊 啊!!!!!!!源码源码 拿走不谢
//21点双人小游戏,在21点的范围内谁的点数大谁获胜
public class Demo21collection {
public static void main(String[] args) {
System.out.println("21点双人小游戏,每个人的点数不能超过21点超过了之后就输了");
//创建一个集合存放21点
ArrayList<Integer> al = new ArrayList<>();
//创建玩家一的集合
ArrayList<Integer> one = new ArrayList<>();
//创建玩家二的集合
ArrayList<Integer> two = new ArrayList<>();
//把21个数字放入总集合中
for (int i = 1; i <= 21; i++) {
al.add(i);
}
//常见键盘录入对象
Scanner scanner = new Scanner(System.in);
//创建随机数对象
Random r = new Random();
int onenum = 0;//定义两个初始化变量
int twonum = 0;
while (true) {
System.out.println("输入Y发牌输入N不发牌了");
System.out.println("第一个人开始要牌");
while (true) {
String next = scanner.next();
if (next.equals("Y")) {
//随机生成al的集合的索引
Integer i = r.nextInt(al.size());
//把随机生成的al的索引找到具体的数后添加到one集合中
one.add(al.get(i));
//然后在al集合中删除这个索引防止出现重复
al.remove(i);
System.out.println("抽到的牌为:" + one.get(onenum));
//初始化变量自增一
onenum++;
}
//输入n不要牌了
if (next.equals("N")) {
break;
}
}
System.out.println("请第二个人开始要牌");
while (true) {
String next1 = scanner.next();
if (next1.equals("Y")) {
int i = r.nextInt(al.size());
two.add(al.get(i));
al.remove(i);
System.out.println("抽到的牌为:" + two.get(twonum));
twonum++;
}
if (next1.equals("N")) {
break;
}
}
//如果两个人都不要牌了那就结束输出谁的大
int sum1 = 0;
int sum2 = 0;
for (Integer integer : one) {
//遍历one集合拿到里面的的数的和
sum1 += integer;
}
System.out.println("第一个人的总点数为:" + sum1);
for (Integer integer : two) {
//遍历two集合拿到里面的的数的和
sum2 += integer;
}
System.out.println("第二个人的总点数为:" + sum2);
//判断两个人的总点数是不是大于21点
if (sum1 < 21 && sum2 < 21) {
if (sum1 > sum2) {
System.out.println("第一个人获胜");
break;
} else if (sum1 < sum2) {
System.out.println("第二个人获胜");
break;
} else {
System.out.println("两个人的点数相同");
break;
}
} else if (sum1 > 21 && sum2 > 21) {
System.out.println("两人都大于21本次结果不算数");
break;
} else if (sum1 > 21) {
System.out.println("第一个人的点数大于21啦");
System.out.println("第二个人获胜");
break;
} else if (sum2 > 21) {
System.out.println("第二个人的点数大于21啦");
System.out.println("第一个人获胜");
break;
}
}
}
}
