斗地主小游戏

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 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 player01 = new ArrayList<>();

ArrayList player02 = new ArrayList<>();

ArrayList player03 = new ArrayList<>();

ArrayList dipai = new ArrayList<>();

/*

* 遍历poker集合,获取每一张牌

* 使用poker集合的索引%3给3个玩家轮流发牌

* 剩余3张牌给底牌

* 注意:

* 1、先判断底牌(i>=51),否则牌就没了

* */

for (int i = 0; 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 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);

}

}

}

有趣java_有趣的Java相关推荐

  1. 有趣现象:同一个java文件中有2个类,一个public,一个无类修饰符,各有一个main函数,谁在前先执行谁!

    发现一有趣现象:同一个java文件中有2个类,一个public,一个无类修饰符,个有一个main函数,谁在前先执行谁! //Detergent.java //Class:Detergent,Clean ...

  2. 细数GitHub上既有趣又有用的Java项目Top14

    转载:http://news.51cto.com/art/201901/591528.htm 细数GitHub上既有趣又有用的Java项目Top14 在 GitHub 上有很多项目,能够帮我们优化手头 ...

  3. 这是一个有趣的问题,Java 8 Lambda 表达式被编译成了什么?

    在了解了Java 8 Lambda的一些基本概念和应用后, 我们会有这样的一个问题: Lambda表达式被编译成了什么? 这是一个有趣的问题,涉及到JDK的具体的实现.本文将介绍OpenJDK对Lam ...

  4. java做比较有趣的_初学java可以用来做什么有趣的事

    思显露学的java可能后成立些什么乐趣的步伐呢,大神们研习的时刻都写过什么步伐呢? 初学英语,可能写什么乐趣的作品呢? 大学那会学Java,写过黑乎乎的闲话步伐,也写过花哨的博客网站,总之众折腾,找找 ...

  5. 有趣的游戏,Java版斗地主游戏实现

    近日,使用Java编写了斗地主单机小游戏,作为经典小游戏,它也给大家带来不少乐趣,通过对这款游戏的简单实现,加深了我对对Java基础算法的理解. 一.思路: 1.首先要了解斗地主的游戏规则,针对游戏整 ...

  6. 有趣的java代码_【有趣】这段java代码太古怪

    首先呢,来一段java代码来开点胃.等等等等,耍我呢,这是java代码? \u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0063\u006c\u0061\u0 ...

  7. 【有趣的实验】JAVA 遍历数组的几种方式的耗时对比

    一.前言 出于对遍历方式的耗时想法,是普通for循环.fori.foreach.迭代器 iterator.还是steam流的形式哪种耗时更少呢? 首先添加一个List 集合,这边采用ArraryLis ...

  8. try catch语句 java_深入剖析java的try…catch…finally语句

    一.前言 前些天参加面试的时候有一道题: public classtest { public static voidmain(String[] args){try{return; }finally{ ...

  9. 口袋妖怪 java_简单的Java口袋妖怪扑灭模拟器

    我已经写了一个类创建和战斗口袋妖怪,但我不知道如何调用测试类中的战斗方法,以测试我写的类.简单的Java口袋妖怪扑灭模拟器 我的任务是编写和测试模拟两个口袋妖怪之间的战斗模拟.每个口袋妖怪都有一个健康 ...

最新文章

  1. java建立_利用Java创建Windows服务
  2. 深度学习果实即将摘尽?11位大牛谈AI的当下(2018)与未来(2019)
  3. phpcms发布新闻到数据库_Phpcms V9网站从本地上传到服务器需要修改的地方小结
  4. 单步调试时遇到cout和cin会自动跳到ostream文件中的解决方案
  5. 不分大小写的Strstr
  6. python 小说 云_python小说网站
  7. 推荐系统之CTR预估-FNN模型解析
  8. 数建--LINGO软件介绍
  9. 5G接入网学习:什么是C-RAN、D-RAN?
  10. 串口收 程序FPGA
  11. uniapp 密码显示隐藏
  12. 三针风扇接法_三针和四针CPU风扇有什么区别?
  13. 计算机变式教学,试论大学公共计算机网络课程变式练习.pdf
  14. 抖音电商的带货情况究竟如何,抖音电商带货前景如何
  15. 关于matlab中矩阵的运算
  16. B4A +GoLang 实现手机端webserver
  17. 线性回归(Linear Regression)和最小二乘法(ordinary least squares)
  18. Java解惑 电子书
  19. 写给程序猿的把妹指南:概述篇
  20. 《20年后,你靠什么生存(孙继滨)》讲座观后感 转

热门文章

  1. Android recyclerView/listview的点击变色、点击换背景颜色
  2. Android开发之部分字符串可实现超链接点击事件的方法
  3. 把 JavaScript 放置到何处
  4. linux查询所建文件夹,linux中的文件和文件夹的新建、查询、删除
  5. [Linux]NIS: 集中化认证服务
  6. 初识面向对象(理论1)
  7. JSI2性能测试报告
  8. Mybatis官方文档——入门
  9. 如何生成.p12文件
  10. kill掉占用端口程序