public class DiceGame {
public static Map<Integer,Integer> getMaxMoney(Map<Integer, Integer> map) {
Map<Integer,Integer> result = new TreeMap<>();
List<Map.Entry<Integer, Integer>> list = new ArrayList<Map.Entry<Integer, Integer>>(
(Collection<? extends Entry<Integer, Integer>>) map.entrySet());
// 然后通过比较器来实现排序
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
// 升序排序
public int compare(Entry<Integer, Integer> o1, Entry<Integer, Integer> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
Map.Entry<Integer, Integer> mapping = list.get(list.size() - 1);
result.put(mapping.getKey(), mapping.getValue());
return result;
}
public static void main(String[] args) {
int totalMoney = 1000;
int max = 6;
int gameCount = 1;
Random rand = new Random();
Map<Integer, Integer> map = new TreeMap<>();
while (totalMoney >= 100) {
System.out.println("--------------第" + (gameCount++) + "局游戏--------------");
int bet = rand.nextInt(1);
int betMoney = (int)(totalMoney*((0.51*1 - 0.49)/1));
//int betMoney = 100;
if (betMoney > totalMoney) {
betMoney = totalMoney;
}
int point1 = rand.nextInt(max) + 1;
int point2 = rand.nextInt(max) + 1;
int point3 = rand.nextInt(max) + 1;
System.out.print("开奖结果:" + point1 + " " + point2 + " " + point3 + " ");
System.out.print(" 和值:" + (point1 + point2 + point3) + " ");
if (point1 == point2 && point2 == point3) {
System.out.println("围骰");
if (bet == 2) {
totalMoney += betMoney * 24;
System.out.println("恭喜你赢了" + betMoney * 24 + ",现在总金额为" + totalMoney);
} else {
totalMoney -= betMoney;
System.out.println("你输了" + betMoney + ",现在总金额为" + totalMoney);
}
} else {
int sum = point1 + point2 + point3;
if (sum <= 10) {
System.out.println("小");
if (bet == 0) {
totalMoney += betMoney;
System.out.println("恭喜你赢了" + betMoney + ",现在总金额为" + totalMoney);
} else {
totalMoney -= betMoney;
System.out.println("你输了" + betMoney + ",现在总金额为" + totalMoney);
}
} else {
System.out.println("大");
if (bet == 1) {
totalMoney += betMoney;
System.out.println("恭喜你赢了" + betMoney + ",现在总金额为" + totalMoney);
} else {
totalMoney -= betMoney;
System.out.println("你输了" + betMoney + ",现在总金额为" + totalMoney);
}
}
}
map.put(gameCount - 1, totalMoney);
System.out.println();
}
Map<Integer,Integer> result = getMaxMoney(map);
Set<Map.Entry<Integer, Integer>> set = result.entrySet();
Iterator<Entry<Integer, Integer>> it = set.iterator();
while(it.hasNext()) {
Entry<Integer, Integer> entry = it.next();
Integer key = entry.getKey();
Integer value = entry.getValue();
System.out.println("最大金额" + value + ",出现在第" + key + "局游戏");
}
}
}
输出结果:
......
--------------第3749局游戏--------------
开奖结果:4 5 6 和值:15 大
你输了2,现在总金额为99
最大金额1413,出现在第121局游戏