java大神解答

Alpacadh 2017-11-17 11:05:33
如何用反射机制来使下面这个游戏(炸金花)作弊取胜
游戏如下

牌的程序如下
public class Poker implements Comparable<Poker>{

private Suit suit;
private Point point;

public Poker(Suit suit, Point point) {
this.suit = suit;
this.point = point;

}

public Suit getSuit() {
return suit;
}

public Point getPoint() {
return point;
}

@Override
public String toString() {
return suit.desc + point.toString();
}

@Override
public int compareTo(Poker o) {
return -(point.getNum() - o.getPoint().getNum());
}


public enum Suit {
SPADE(""), CLUB(""), HEART(""),DIAMOND("");

String desc;

Suit(String desc) {
this.desc = desc;
}
}



public enum Point {
_2(2), _3(3), _4(4), _5(5), _6(6), _7(7), _8(8), _9(9), _10(10), J(11), Q(12), K(13), A(14);


Point(int num) {
this.num = num;
}

int num;

public int getNum(){return num; }
}
}
玩家的程序如下
public interface Player {

/**
* 实现这个方法,返回你的姓名,eg:王尼
* @return
*/
String getName();

/**
* 实现这个方法,返回你的编号
* @return
*/
String getStuNum();

default String getInformation() {
return getName() + getStuNum();
}

/**
* 游戏开始,告诉你玩家数量和管理员
*
* @param manager 荷官
* @param totalPlayer 总玩家人数
*/
void onGameStart(Manager manager, int totalPlayer);

/**
* 下注
*
* @param time 第几局
* @param round 每局游戏会有多轮,当前轮数,最多会有5轮
* @param lastPerson 还没有弃牌的玩家数
* @param moneyOnDesk 桌上的筹码数量
* @param moneyYouNeedToPayLeast 你本次最小需要下注的数量,
* @param pokers 你的手牌,三张
* @return 你的下注数量,小于这个最小下注数量或者大于最小下注数量的三倍,都会被当作弃牌处理。
*/
int bet(final int time, final int round, final int lastPerson, final int moneyOnDesk,
final int moneyYouNeedToPayLeast,
List<Poker> pokers) throws IllegalAccessException, NoSuchFieldException, ClassNotFoundException;

/**
void onResult(int time, boolean isWin, List<Poker> pokers);
}

...全文
160 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱写Bug的麦洛 2017-11-18
  • 打赏
  • 举报
回复
动机不纯

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧