有趣java_有趣的Java
斗地主小游戲
package DouDiZhu;
import java.util.ArrayList;
import java.util.Collections;
/*
* 斗地主案例:
* 1、準(zhǔn)備牌
* 2、洗牌
* 3、發(fā)牌
* 4、看牌
* */
public class demoDouDiZHu {
public static void main(String[] args) {
/*
1、準(zhǔn)備牌
*/
// 定義一個(gè)存儲(chǔ)54張牌的集合ArrayList,泛型使用String數(shù)據(jù)類型
ArrayList poker = new ArrayList<>();
// 定義兩個(gè)數(shù)組,一個(gè)用來存儲(chǔ)牌的花色,一個(gè)用來存儲(chǔ)牌的序號(hào)
String[] colors = {"?","?","?","?"};
String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
// 先將大王和小王存儲(chǔ)poker集合中
poker.add("大王");
poker.add("小王");
// 循環(huán)嵌套兩個(gè)數(shù)組,組裝成52張牌(使用增強(qiáng)for循環(huán))
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)使用默認(rèn)隨機(jī)源對(duì)指定列表進(jìn)行置換
* */
Collections.shuffle(poker);
// System.out.println(poker);
/*
3、發(fā)牌
*/
// 定義4個(gè)集合存儲(chǔ)玩家的牌和底牌
ArrayList player01 = new ArrayList<>();
ArrayList player02 = new ArrayList<>();
ArrayList player03 = new ArrayList<>();
ArrayList dipai = new ArrayList<>();
/*
* 遍歷poker集合,獲取每一張牌
* 使用poker集合的索引%3給3個(gè)玩家輪流發(fā)牌
* 剩余3張牌給底牌
* 注意:
* 1、先判斷底牌(i>=51),否則牌就沒了
* */
for (int i = 0; i
//獲取每一張牌
String p = poker.get(i);
//輪流發(fā)牌
if (i >= 51){
//給底牌發(fā)牌
dipai.add(p);
}else if (i % 3 == 0){
//給玩家1發(fā)牌
player01.add(p);
}else if (i % 3 == 1){
//給玩家2發(fā)牌
player02.add(p);
}else if (i % 3 == 2){
//給玩家3發(fā)牌
player03.add(p);
}
}
/*
4、看牌
* */
System.out.println("劉德華" + player01);
System.out.println("周潤發(fā)" + player02);
System.out.println("周星馳" + player03);
System.out.println("底牌" + dipai);
}
}
計(jì)算一個(gè)字符串中字符出現(xiàn)的次數(shù)
package test4Map;
import java.util.HashMap;
import java.util.Scanner;
/*
練習(xí):
計(jì)算一個(gè)字符串中每個(gè)字符出現(xiàn)次數(shù)
分析:
1、使用Scanner獲取用戶輸入的字符串
2、創(chuàng)建Map集合。其中key是字符串中的字符,value是字符個(gè)數(shù)
3、遍歷字符串,獲取每一個(gè)字符
4、使用獲取到的每一個(gè)字符,去Map集合判斷key是否存在
key存在:
通過字符(key),獲取value(字符個(gè)數(shù))
value++
put(key,value)把新的value存儲(chǔ)到Map集合中
key不存在:
put(key,1)
5、遍歷Map集合,輸出結(jié)果
*/
public class demoMapTest {
public static void main(String[] args) {
// 1、使用Scanner獲取用戶輸入的字符串
Scanner sc = new Scanner(System.in);
System.out.println("請(qǐng)輸入一個(gè)字符串:");
String str = sc.next();
// 2、創(chuàng)建Map集合。其中key是字符串中的字符,value是字符個(gè)數(shù)
HashMap map = new HashMap<>();
// 3、遍歷字符串,獲取每一個(gè)字符
//使用增強(qiáng)for循環(huán)遍歷
for (char c : str.toCharArray()) {
// 4、使用獲取到的每一個(gè)字符,去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集合,輸出結(jié)果
//使用增強(qiáng)for循環(huán)遍歷集合
for (Character key : map.keySet()) {
Integer value = map.get(key);
System.out.println(key + "--->" + value);
}
}
}
總結(jié)
以上是生活随笔為你收集整理的有趣java_有趣的Java的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql5.0源码安装_linux小白
- 下一篇: Halide Mark II 应用更新: