java 洗牌 面向对象_2020-03-30Android-面向对象实现发牌项目

编程所涉及到的知识点已经在后面做了注释

(1)poker类,管理一张牌的信息(点数和花色)

/**

*点数2 3 4 5 6 7 8 9 10 j Q K A

*/

public class poker {

String dot;

String pic;

//提供构造方法

public poker (String dot,String pic){

this.dot=dot;

this.pic=pic;

}

//set和get方法

public String getDot() {

return dot;

}

public void setDot(String dot) {

this.dot = dot;

}

public String getPic() {

return pic;

}

public void setPic(String pic) {

this.pic = pic;

}

//重写toString方法便于调试

@Override

public String toString() {

return dot+pic;

}

public static void main(String[] args) {

Calendar now=Calendar.getInstance();

int year=now.get(Calendar.MONTH);

System.out.println(year);

}

}

(2)pokermanger类,管理一副牌的所有操作(生成 显示 洗牌)

public class pokermanger {

//保存一副牌

private ArrayList pokers;

//重写构造方法

public pokermanger(){

//初始化数组

pokers =new ArrayList<>();

}

//生成一副牌

public void genersteonepackofcards(){

for (int i=0;i

//取出i对应的点数

String dot=constabts.POKER_DOTS[i];

//为这个点数创建4种花色

for(int j=0;j

//取出j对应的花色

String pic =constabts.POKER_PICS[j];

//创建一张牌

poker poker=new poker(dot,pic);

//保存这张牌

int index=i*4+j;

pokers.add(poker);

}

}

}

//显示一副牌

public void show(){

int index=0;

for(poker poker:pokers){

System.out.print(poker);

if ((index+1)%4==0){

System.out.println(" ");

}

index++;

}

}

//洗牌

public void shuffle(){

Collections.shuffle(pokers);//其替换规则就是取最后的一个数和前面随机的数进行替换,换了之后又使得

//前一位数和前面的随机的一位数进行替换,直到换到第一位

}

}

(3)constabts类,寄存牌的花色和点数

public class constabts { //准备一个数组保存所有的点数

public static final String[]POKER_DOTS= new String[]{//由于有static来修饰,则可直接用类来表示

"2", "3", "4", "5",

"6", "7", "8", "9"

, "10", "J", "Q",

"K", "A"};

//花色

public static String[] POKER_PICS= new String[]{"♣", "♠", "♥", "♦"};

/**

*这里的static表示的是此成员变量属于这个类

* 优先于对象被创建

* 可以直接使用此类来进行调用

* 利用final修饰此成员变量 表示此成员为常量 不能被更改

* 通常用大写的字母表示

*/

}

(4)myclass类,实现main函数,作为实现的类

public class Myclass {

public static void main(String[] args) {

//创建管理器

pokermanger manger=new pokermanger();

//生成一副牌

manger.genersteonepackofcards();

//洗牌

manger.shuffle();

//显示

manger.show();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值