Java小案例之Girl与斗地主发牌
在项目实战之前,写了两个小项目重温java
关于软件及其环境
软件使用的是2020.1版本的IDEA
jdk使用版本为1.8.0
一、Girl
本案例使用对身高和体重进行判断出girl是否为美女
首先写一个Girl的类 对其进行封装`
public class Girl {
private int high;
private int wigh;
public int getHigh() {
return high;
}
public void setHigh(int high) {
this.high = high;
}
public int getWigh() {
return wigh;
}
public void setWigh(int wigh) {
this.wigh = wigh;
}
@Override
public String toString() {
return "Girl{" +
"high=" + high +
", wigh=" + wigh +
'}';
}
通过输入数据进行判别
public class MeiNv {
public static void main(String[] args){
//输入身高体重
List<Girl> girlList=new ArrayList<>();
Scanner scanner=new Scanner(System.in);
for (int i=1;i<4;i++){
Girl girl=new Girl();
System.out.println("请输入第"+i+"位的身高");
int h=scanner.nextInt();
girl.setHigh(h);
System.out.println("请输入第"+i+"位的体重");
int w=scanner.nextInt();
girl.setWigh(w);
girlList.add(girl);
}
//对其进行求和
int sumH=0;
int sumW=0;
for(Girl g:girlList){
sumH=sumH+g.getHigh();
sumW=sumW+g.getWigh();
}
//显示和
System.out.println(sumH);
System.out.println(sumW);
//求平均值
int aveH=sumH/girlList.size();
int aveW=sumW/girlList.size();
System.out.println(aveH);
System.out.println(aveW);
//进行判断
if(aveH>=160 && aveW <=50){
System.out.println("是美女");
}else {
System.out.println("不是美女");
}
}
}
效果图
二、斗地主之发牌
主要实现了牌类的生成与发牌功能、并且留下三张底牌给地主,实现如下。
生成的牌有颜色 花色 数字三种属性
//生成牌
List<String> pokes=new ArrayList<>();
List<String> colors=new ArrayList<>();
List<String> numbers=new ArrayList<>();
colors.add("♠");
colors.add("♥");
colors.add("♣");
colors.add("♦");
numbers.add("A");
for(int i=2;i<=10;i++){
numbers.add(i+"");
}
numbers.add("J");
numbers.add("Q");
numbers.add("K");
for(String c:colors){
for(String n:numbers){
String pai=c+n;
pokes.add(pai);
}
}
pokes.add("大鬼");
pokes.add("小鬼");
System.out.println(pokes);
重新洗牌
//洗牌
Collections.shuffle(pokes);
System.out.println(pokes);
进行三人发牌并且留出三张底牌
ArrayList<String> a=new ArrayList<>();
ArrayList<String> b=new ArrayList<>();
ArrayList<String> c=new ArrayList<>();
ArrayList<String> dipai=new ArrayList<>();
for(int i=0;i<pokes.size();i++){
String pai=pokes.get(i);
if(i>=51){
dipai.add(pai);
}else {
if(i%3==0){
a.add(pai);
}else if(i%3==1){
b.add(pai);
}else {
c.add(pai);
}
}
}
对牌进行大小排序
Comparator sortPK = new Comparator<String>() {
String numorder = "3,4,5,6,7,8,9,10,J,Q,K,A,2,小,大";
public int compare(String o1,String o2){
o1=o1.replaceAll("[^a-zA-Z0-9小大]","");
o2=o2.replaceAll("[^a-zA-Z0-9小大]","");
int i1=numorder.indexOf(o1);
int i2=numorder.indexOf(o2);
return i1-i2;
}
};
Collections.sort(dipai,sortPK);
Collections.sort(a,sortPK);
Collections.sort(b,sortPK);
Collections.sort(c,sortPK);
System.out.println(dipai);
System.out.println(a);
System.out.println(b);
System.out.println(c);