六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

對于拖拉機游戲的類設計

[摘要]我不會拖拉機這種玩法,只能就一般牌類的玩法來談談我對這個的看法。首先,既然我們要用oo的設計方法,那么就必須從頂至下來設計。讓我們先來分析一下聯眾這個游戲的流程,首先,我們進入游戲大廳,然后選定一個...
我不會拖拉機這種玩法,只能就一般牌類的玩法來談談我對這個的看法。首先,既然我們要用oo的設計方法,那么就必須從頂至下來設計。
讓我們先來分析一下聯眾這個游戲的流程,首先,我們進入游戲大廳,然后選定一個牌桌,人湊齊后就可以玩了,可以玩很多局,直至這桌全

部人離開。這樣的話從頂至下分析就可以構造一下類:
一、大廳類(Hall class)
這個類并不復雜,可以這樣定義
public class Hall
{
 //私有成員變量
//大廳本身屬性
private String m_strName ; //大廳名稱
private String m_strDescription ; //大廳描述
private String m_strServerIP ; //大廳主機ip,聯網訪問的ip,具體協議看需要
......... //其它需要的屬性

//大廳包含的對象
private ArrayList m_arrUsers ; //用戶數組
private ArrayList m_arrConnections; //對應每個用戶的連接,可以是udp或tcp,看需要。
pirvate ArrayList m_arrTables ; //桌子類數組
private ArrayList m_arrMatchs ;//每局游戲類,對應每一局游戲
 
//屬性
public String Name ....
....

//以下為方法
//construction
public Hall()
{
起服務器winservice...
}

///為每一個用戶建立一條socket連接
///主要作用是取得user的ip建立socket然后把這個user加入到在線用戶數組
///<parameter>a_objUser , 一個User對象,</parameter>
public void Connect(User a_objUser)
{
 ...
 }

///和上面方法相反,踢出用戶或用戶自然斷線
public void Disconnect(User a_objUser)
{
 。。。。。
 }


//還有很多這種方法,略過……
}

二、棋桌類 (Table class)
大廳類構造好了,現在來看棋桌(Table)類。
public class Table
{
//私有成員變量
 private int m_intTableNo ;//棋桌號,唯一標志
 private String m_strName ; //棋桌名稱,如果有必要
 .....其它類似變量

 private ArrayList m_arrUsers ; //現在在這桌的用戶,包括正在玩的和觀戰的

 privateMatch m_objMatch ; //當前進行的一局游戲

 private bool m_bPlayingFlag ;//標志,說明是否牌局正在進行中

 //method
 //加入這桌 , 根據m_bPlayingFlag來決定是否可以加入
 public void Join(User a_objUser) 
 {
//把這個用戶加入到m_arrUsers中,并且根據m_arrUsers中玩家的多少決定該用戶的屬性,是上、下、左、右那一家或觀戰
 }

 ///如果人夠了,就可以開始一局游戲了
 public void StartMatch()
 {
m_objMatch.Play() ;
}

///暫停游戲,如有用戶斷線或用戶共同協議封牌
///保存棋局
 public void PauseMatch()
 {
 m_objMatch.Pause() ;
 m_objMatch.Save() ;
 }

 ///繼續游戲,用戶重新連線或協議繼續進行已封的牌
 public void ResumeMatch()
 {
m_objMatch.Load() ;
m_objMatch.Resume() ;
 }

///停止游戲,如有用戶斷線超過規定時間或一方勝利或協議結束
public void ResumeMatch()
{
m_objMatch.Save() ;
m_objMatch.Stop() ;
}
}//end class declaretion


三,比賽類(Match class)
public Class Match
{
//成員變量
 privateint m_intMatchNo ;//唯一標志
 private User a_objTop ; //上家
 private User a_objDown ;//下家
 private User a_objLeft ; //左家
 private User a_objRight ;//右家
 
 private DateTime m_datBegin ; //開始時間
 private DateTime m_datEnd ;//結束時間

private int m_intPoints ; //比分,可以根據正負來決定那方領先

private ArrayList m_arrSets ;//牌局數組,一場比賽可能有多局,m_intPoints就是多局之和
 。。。。
 
 ///方法,見table類中調用的那些,我就不祥述了
 .......
}

四,牌局類(Set class)
public class Set
{
//成員變量
 private DateTime m_datBegin ; //開始時間
 private DateTime m_datEnd ;//結束時間
 
 private int m_intPoints ;//這局的比分

 private ArrayList m_arrInializeCards ; //牌局中初始發牌數組
 
 private ArrayList m_arrPlayCards ;//游戲中出牌數組,對規則我不了解,所以不知一次出多少張牌,
//所以這個數組的每個元素都是一個每手出的牌數組,

 //方法
 public void GenerateCards()
 {
//利用隨機函數產生開始發牌的順序,填充到m_arrInializeCards數組中
 }

//出牌
 public void SendCard()
{
 // 根據用戶出牌構造一個臨時牌數組,添加到m_arrPlayCards數組中
}

//算分,牌出完后根據規則來算分。
public void Caculation()
{
m_intPoints = ??? ;
}
 
}//end class


五、牌類(Card)
public class Card()
{
//先定義一個枚舉變量,代表花色
 public enum CardType
 {
 方片,草花 , 黑桃 , 紅心 ;//用英語吧,我不會,呵呵
 }

 //成員變量
private int m_intPoint ;//牌點,1-15
private CardTypem_intCardType ;//牌花色

//方法
沒有什么特殊的方法,set,get一類的 
}//end class


六、用戶類(User)
public Class User()
{
成員變量
private string m_strName ;//姓名
.......很多諸如此類的屬性。

//方法
.....沒有什么特殊的方法,set,get一類的
}



好了,看看,是不是已經完成了?要注意的是不要在這些類中加入比如畫圖、操作數據庫一類的操作,而應該繼承以后再和具體的系統環境結

合。










主站蜘蛛池模板: 亚洲福利区 | 自拍偷拍 欧美日韩 | 天天翘夜夜洗澡天天做 | 亚洲第一在线播放 | 最新欧美伦禁片在线观看 | 四虎最新永久在线精品免费 | 五月婷婷激情在线 | 青草影院在线观看免费版 | 四虎精品免费永久在线 | 青青草原在线播放 | 日本黄页网站在线观看 | 伊人蕉| 亚洲成a人片在线观看中文!!! | 日韩免费视频观看 | 日韩在线视频网址 | 四虎影院在线免费播放 | 日韩精品视频在线 | 日日摸夜夜添夜夜添毛片 | 亚洲 欧美 中文字幕 | 日韩手机看片福利精品 | 日韩毛片在线看 | 亚洲欧美在线免费观看 | 天天干夜夜欢 | 青青草色 | 网站在线观看免费 | 欧美透逼视频 | 三级黄色在线视频 | 色婷婷伊人 | 在线观看中文字幕第一页 | 中文在线免费视频 | 午夜视频在线播放 | 伊人网视频在线观看 | 亚洲人成网站看在线播放 | 午夜在线观看视频在线播放版 | 欧美性色欧美a在线播放 | 日本一道dvd在线播放 | 色综合天天综合给合国产 | 中文字幕亚洲一区婷婷 | 日产精品一区二区 | 天天噜夜夜操 | 中文国产日韩欧美视频 |