斗地主小游戏
package DouDiZhu;
import java.util.ArrayList;
import java.util.Collections;
/*
* 斗地主案例:
* 1、准备牌
* 2、洗牌
* 3、发牌
* 4、看牌
* */
public class demoDouDiZHu {
public static void main(String[] args) {
/*
1、准备牌
*/
// 定义一个存储54张牌的集合ArrayList,泛型使用String数据类型
ArrayList<String> poker = new ArrayList<>();
// 定义两个数组,一个用来存储牌的花色,一个用来存储牌的序号
String[] colors = {"♠","♥","♣","♦"};
String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
// 先将大王和小王存储poker集合中
poker.add("大王");
poker.add("小王");
// 循环嵌套两个数组,组装成52张牌(使用增强for循环)
for (String number : numbers){
for (String color : colors) {
// System.out.println(color + number);
poker.add(color + number);
}
}
// System.out.println(poker);
/*
* 2、洗牌
* 可以使用集合的工具类Collections中的方法
* static void shuffle(list <?> list)使用默认随机源对指定列表进行置换
* */
Collections.shuffle(poker);
// System.out.println(poker);
/*
3、发牌
*/
// 定义4个集合存储玩家的牌和底牌
ArrayList<String> player01 = new ArrayList<>();
ArrayList<String> player02 = new ArrayList<>();
ArrayList<String> player03 = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();
/*
* 遍历poker集合,获取每一张牌
* 使用poker集合的索引%3给3个玩家轮流发牌
* 剩余3张牌给底牌
* 注意:
* 1、先判断底牌(i>=51),否则牌就没了
* */
for (int i = 0; i <poker.size() ; i++) {
//获取每一张牌
String p = poker.get(i);
//轮流发牌
if (i >= 51){
//给底牌发牌
dipai.add(p);
}else if (i % 3 == 0){
//给玩家1发牌
player01.add(p);
}else if (i % 3 == 1){
//给玩家2发牌
player02.add(p);
}else if (i % 3 == 2){
//给玩家3发牌
player03.add(p);
}
}
/*
4、看牌
* */
System.out.println("刘德华" + player01);
System.out.println("周润发" + player02);
System.out.println("周星驰" + player03);
System.out.println("底牌" + dipai);
}
}
计算一个字符串中字符出现的次数
package test4Map;
import java.util.HashMap;
import java.util.Scanner;
/*
练习:
计算一个字符串中每个字符出现次数
分析:
1、使用Scanner获取用户输入的字符串
2、创建Map集合。其中key是字符串中的字符,value是字符个数
3、遍历字符串,获取每一个字符
4、使用获取到的每一个字符,去Map集合判断key是否存在
key存在:
通过字符(key),获取value(字符个数)
value++
put(key,value)把新的value存储到Map集合中
key不存在:
put(key,1)
5、遍历Map集合,输出结果
*/
public class demoMapTest {
public static void main(String[] args) {
// 1、使用Scanner获取用户输入的字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.next();
// 2、创建Map集合。其中key是字符串中的字符,value是字符个数
HashMap<Character,Integer> map = new HashMap<>();
// 3、遍历字符串,获取每一个字符
//使用增强for循环遍历
for (char c : str.toCharArray()) {
// 4、使用获取到的每一个字符,去Map集合判断key是否存在
if (map.containsKey(c)){
//key存在
Integer value = map.get(c);
value++;
map.put(c,value);
}else{
//key不存在
map.put(c,1);
}
}
// 5、遍历Map集合,输出结果
//使用增强for循环遍历集合
for (Character key : map.keySet()) {
Integer value = map.get(key);
System.out.println(key + "--->" + value);
}
}
}