java:作业一创建一Pai类包含属性 价格 int price 材料 String cl 包含52张扑克的集合 ListPuke pks ;1 定义方法 comparePriceTo可以与其他另一副牌比较价格返回差价2 定义方法 isAll 返回这幅牌是否是一副完整的牌52张每张牌都是正确的3 定义方法createAllPuke创建一副完整的牌52张4 定义方法random3从一幅扑克牌中随机抽
Pai类代码如下:
import java.util.ArrayList; import java.util.Collections; import java.util.List;
public class Pai {
private int price;
private String cl;
private List
public Pai(int price, String cl, List<Puke> pks) {
this.price = price;
this.cl = cl;
this.pks = pks;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getCl() {
return cl;
}
public void setCl(String cl) {
this.cl = cl;
}
public List<Puke> getPks() {
return pks;
}
public void setPks(List<Puke> pks) {
this.pks = pks;
}
// 比较价格
public int comparePriceTo(Pai otherPai) {
return this.price - otherPai.getPrice();
}
// 判断是否是一副完整的牌
public boolean isAll() {
if (pks.size() != 52) {
return false;
}
for (int i = 0; i < pks.size(); i++) {
Puke puke = pks.get(i);
if (puke.getNum() < 1 || puke.getNum() > 13) {
return false;
}
if (!"黑桃".equals(puke.getHuaSe()) && !"红桃".equals(puke.getHuaSe())
&& !"方块".equals(puke.getHuaSe()) && !"梅花".equals(puke.getHuaSe())) {
return false;
}
}
return true;
}
// 创建一副完整的牌
public void createAllPuke() {
pks = new ArrayList<>();
for (int i = 1; i <= 13; i++) {
pks.add(new Puke("黑桃", i));
pks.add(new Puke("红桃", i));
pks.add(new Puke("方块", i));
pks.add(new Puke("梅花", i));
}
}
// 随机抽出三张扑克
public List<Puke> random3() {
List<Puke> randomPukes = new ArrayList<>();
Collections.shuffle(pks);
for (int i = 0; i < 3; i++) {
randomPukes.add(pks.get(i));
}
return randomPukes;
}
// 获取所有红桃
public List<Puke> getHongtaos() {
List<Puke> hongtaos = new ArrayList<>();
for (Puke puke : pks) {
if ("红桃".equals(puke.getHuaSe())) {
hongtaos.add(puke);
}
}
return hongtaos;
}
// 将牌中的扑克顺序打乱
public void shuffle() {
Collections.shuffle(pks);
}
// 获取当前Pai中所有牌面大小是num的Puke
public List<Puke> getPukesByNum(int num) {
List<Puke> pukes = new ArrayList<>();
for (Puke puke : pks) {
if (puke.getNum() == num) {
pukes.add(puke);
}
}
return pukes;
}
// 将当前Pai中的Puke按照牌面大小排序
public void sortByNum() {
Collections.sort(pks);
}
}
测试类代码如下:
import java.util.List;
public class TestPai { public static void main(String[] args) { // 创建一幅牌 Pai pai = new Pai(100, "木头", null); pai.createAllPuke(); System.out.println("是否是一副完整的牌:" + pai.isAll());
// 比较价格
Pai otherPai = new Pai(50, "塑料", null);
int diff = pai.comparePriceTo(otherPai);
System.out.println("两幅牌价格差:" + diff);
// 随机抽出三张扑克
List<Puke> randomPukes = pai.random3();
System.out.println("随机抽出的三张扑克:");
for (Puke puke : randomPukes) {
System.out.println(puke);
}
// 获取所有红桃
List<Puke> hongtaos = pai.getHongtaos();
System.out.println("当前牌中所有红桃:");
for (Puke puke : hongtaos) {
System.out.println(puke);
}
// 将牌中的扑克顺序打乱
pai.shuffle();
System.out.println("打乱后的牌:");
for (Puke puke : pai.getPks()) {
System.out.println(puke);
}
// 获取当前Pai中所有牌面大小是num的Puke
int num = 8;
List<Puke> pukesByNum = pai.getPukesByNum(num);
System.out.println("当前牌中所有牌面大小是" + num + "的Puke:");
for (Puke puke : pukesByNum) {
System.out.println(puke);
}
// 将当前Pai中的Puke按照牌面大小排序
pai.sortByNum();
System.out.println("按照牌面大小排序后的牌:");
for (Puke puke : pai.getPks()) {
System.out.println(puke);
}
}
原文地址: https://www.cveoy.top/t/topic/fxh4 著作权归作者所有。请勿转载和采集!