扑克牌的基本原理代码
package com.zhongruan.demo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class Dome1 {
public static void main(String[] args){
/*
* 功能:
* 1.准备一幅牌(54张)
* 2.洗牌(打乱牌序)
* 3.发牌(三个人)
* 4.留三张底牌
* 5.每个人拿到牌后,对牌进行排序
*/
//1.准备一幅牌(54张)
List<String> poker = new ArrayList<>();
String[] color = {"黑桃", "红桃", "方片", "梅花"};
String[] nums = {"2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3"};
for (String c : color){
for(String num : nums){
String p = c + num;
poker.add(p);
}
}
poker.add("大王");
poker.add("小王");
//2.洗牌
Collections.shuffle(poker);
//3.先留底牌
List<String> dipai = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < 3; i++){
int index = random.nextInt(poker.size());
String pai = poker.remove(index);
dipai.add(pai);
}
System.out.println(dipai);
//4.发牌
List<String> you = new ArrayList<>();
List<String> me = new ArrayList<>();
List<String> he = new ArrayList<>();
for (int i = 0; i < poker.size(); i++){
String pai = poker.get(i);
int j = i % 3;
if(j == 0){
you.add(pai);
}else if(j == 1){
me.add(pai);
}else{
he.add(pai);
}
}
System.out.println(you);
System.out.println(me);
System.out.println(he);
}
}
Java三大特性
继承,多态,封装,抽象
数组
容器的概念
是将多个数据存储到一起,每个数据称之为容器的元素
//水杯,衣柜,教室
数组
就是用来存储固定长度的容器,并且保障所有元素的类型统一
数组的定义方式
1.静态绑定
2.动态绑定
思考
面向对象, 面向过程
java,c#; c语言
-
数组是不是对象吗
高级一点:现实世界的抽象,有一些属性(实例域),有一些行为(方法) 不是某类具体的事物
低级一点:内存中的一块空间,里面存放数据 是对象
数组就是对象
-
数组是什么类型(强类型,弱类型)
类型分两种
1. 基本数据类型: byte,int,short,long,boolean,double,float, char
2. 引用数据类型: String
jvm(java虚拟机) 创建数组类型[I,于八大基本数据类型一样,是我们的内建类型
- 数组的继承
Object是所有类的超类
特例:
数组类型可以向上转型为Object[],但是真实父类其实是Object。