下面我们再来看看ClientModel类,这个类负责保存游戏中的一些数据,这些数据可能需要Control类去更改然后需要由View类去呈现的,说白了,它就是一个包含有很多setter/getter的类.它的代码如下:
/*
* ClientModel.java
*
* Created on 2007年10月2日, 下午2:02
* 此类封装了一些公共的数据,为视图类提供模型
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package com.hadeslee.apple.client;
/**
*
* @author lbf
*/
import com.hadeslee.apple.common.Bet;
import com.hadeslee.apple.common.INFO;
import java.awt.Image;
import java.util.Vector;
import static com.hadeslee.apple.common.Constants.*;
public class ClientModel {
private Image bg;//表示背景图片的对象
private Image table;//表示下注桌面的对象
//private Image runA,runB;//表示跑动的图像,A表示正在跑的,B表示跑停了的,仅当火车的时候B才有用,其余为null
// private PP[] p;//表示当前的位置枚举表现形式,当长度为一时,则为普通情况,其余为特殊情况
private Vector<PP> v;//表示当前的位置枚举表现形式,当长度为一时,则为普通情况,其余为特殊情况
private Bet bet;//表示当前或者上一局下注的对象
private INFO info;//表示当前的INFO对象,里面封装了要全速走的步数,大彩金,小彩金数
private int allMoney,winMoney;//表示当前用户所有的钱和本局赢的钱
private int id;//表示当前用户的ID号
private Image[] number,winNumber;//表示数字的图像普通数组和赢了的数组
private volatile boolean Running,Betting,hasRunB;//表示现在是否正在跑或者正在加时赌,是否有RunB
private Image pkA,pkB;//表示两张正在PK的图
private int ratioA,ratioB;//表示A和B国的陪率
private RatioA ra;//表增添A或B的枚举
private RatioB rb;
private Image pk;//表示PK的背景图
private String infos;//表示跑马灯的文字信息
/** Creates a new instance of ClientModel */
public ClientModel() {
v=new Vector<PP>();
ra=RatioA.A_20;
rb=RatioB.B_10;
}
public Image getPKBG(){
return pk;
}
public void setPKBG(Image bg){
pk=bg;
}
public Image getBg() {
return bg;
}
public int getRatioA(){
return ratioA;
}
public int getRatioB(){
return ratioB;
}
public void setRatioA(int a){
ratioA=a;
}
public void setRatioB(int b){
ratioB=b;
}
public void setBg(Image bg) {
this.bg = bg;
}
public Image getTable() {
return table;
}
public void setTable(Image table) {
this.table = table;
}
/* public Image getRunA() {
return runA;
}
public void setRunA(Image run) {
this.runA = run;
}
public Image getRunB(){
return runB;
}
public void setRunB(Image run){
runB=run;
}
*/
public Vector<PP> getP() {
Vector<PP> vec=new Vector<PP>();
for(PP p: v){
vec.add(p);
}
return vec;
}
public void addP(PP p){
v.add(p);
}
public void setP(PP p){
if(v.size()>0){
v.remove(v.size()-1);
}
v.add(p);
}
public void clearP(){
v.removeAllElements();
}
public Bet getBet() {
return bet;
}
public void setBet(Bet bet) {
this.bet = bet;
}
public INFO getInfo() {
return info;
}
public void setInfo(INFO info) {
this.info = info;
}
public int getAllMoney() {
return allMoney;
}
public void setAllMoney(int allMoney) {
this.allMoney = allMoney;
}
public int getWinMoney() {
return winMoney;
}
public void setWinMoney(int winMoney) {
this.winMoney = winMoney;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Image[] getNumber() {
return number;
}
public void setNumber(Image[] number) {
this.number = number;
}
public Image getNumber(int i){
return number[i];
}
public void setWinNumber(Image[] winNumber){
this.winNumber=winNumber;
}
public Image getWinNumber(int i){
return winNumber[i];
}
public Image[] getWinNumber(){
return winNumber;
}
public boolean isRunning() {
return Running;
}
public void setRunning(boolean Running) {
this.Running = Running;
}
public boolean isBetting() {
return Betting;
}
public void setBetting(boolean Betting) {
this.Betting = Betting;
}
public void setHasRunB(boolean b){
hasRunB=b;
}
public boolean getHasRunB(){
return hasRunB;
}
public Image getPkA() {
return pkA;
}
public void setPkA(Image pkA) {
this.pkA = pkA;
}
public Image getPkB() {
return pkB;
}
public void setPkB(Image pkB) {
this.pkB = pkB;
}
public RatioA getRa() {
return ra;
}
public void setRa(RatioA ra) {
this.ra = ra;
}
public RatioB getRb() {
return rb;
}
public void setRb(RatioB rb) {
this.rb = rb;
}
//得到A国是否中奖
public boolean isAWin(){
for(PP p:v){
if(p.country==COUNTRY_A)
return true;
}
return false;
}
public boolean isBWin(){
for(PP p:v){
if(p.country==COUNTRY_B)
return true;
}
return false;
}
}
多它的好处就是,一个改一个呈现,分工明确,并且它里面也可以包含一些简单的逻辑,这一点就是仁者见仁了:)
尽管千里冰封
依然拥有晴空
你我共同品味JAVA的浓香.
posted on 2007-11-12 09:31
千里冰封 阅读(1484)
评论(0) 编辑 收藏 所属分类:
JAVASE