999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C#的網絡五子棋游戲設計

2014-04-29 00:00:00梁紅碩
科技創新與應用 2014年17期

摘 要:文章是應用C#語言來完成網絡五子棋的設計實現,其中完成了網絡五子棋的界面設計、網絡通信類的設計實現,以及游戲勝負的設計實現等主要功能模塊。

關鍵詞:C#;網絡;五子棋

五子棋起源于中國古代的黑白棋種之一,經過多年的一系列變化,使得這一簡單游戲變得復雜化、規范化,最終成為今天的職業連珠五子棋,同時也是一項國際比賽項目。五子棋不僅能增強思維能力,提高智力,并且富有哲理,有助于修身養性;既具有簡單易學的特性,又有深奧的技巧和高水平的國際比賽。而隨著網絡的普及,網絡游戲迅猛發展,一些小型的網絡游戲受到用戶的熱衷,如五子棋、圍棋、象棋等。文章主要應用C#語言完成網絡五子棋游戲的設計實現。

1 網絡五子棋游戲的功能需求

網絡五子棋游戲需要具備如下基本功能:

1.1 該游戲能夠在局域網上運行,游戲雙方具有相同的界面。

1.2 “選擇白棋”或“選擇黑棋”,然后查找局域網中的在線玩家進行連接。

1.3 黑棋先行,黑白棋子交替進行,任何一方不可以連下兩步棋。

1.4 程序能夠判斷哪方獲勝,一旦某方獲勝,程序結束,開始下一局。

2 界面設計

五子棋游戲規定,任何一方棋子落下后是不需要再動的,所以棋盤可以采取一張棋盤圖片,其中方格的大小為20*20像素,黑子和白子也分別使用20*20的圖片。在程序中應用ImageList控件的Draw方法來實現對黑子和白子的管理,即在指定位置顯示指定的圖像。該方法在本程序中的使用格式如下:

public void Draw(Graphics g, int x, int y, int width,int height, int index) { }

3 監聽類和發送類設計

監聽類主要監聽對方發過來的消息,然后交給信息處理方法DoInformation,該方法會根據不同的消息內容作出相應處理。發送類主要完成數據發送,如客戶IP信息,連接信息,下棋信息,退出信息等信息的發送。其中監聽類的主要功能代碼如下:

private void Listener() //監聽方法

{ try { tcpLisn=new TcpListener(5858); tcpLisn.Start();

while(listenerRun)

{ Socket sk=tcpLisn.AcceptSocket(); tring remote=sk.RemoteEndPoint.ToString();

Byte[] stream=new Byte[80]; int i=sk.Receive(stream);

string msg=System.Text.Encoding.UTF8.GetString(stream);

AddChessEventArgs arg=new AddChessEventArgs();

arg.site=msg; OnAddChess(this,arg) }......

發送類的主要功能代碼如下:

public void Send(string stream) { try { TcpClient tcpclt = new TcpClient(obj,5858);

NetworkStream netStream = tcpclt.GetStream();

StreamWriter streamwrite = new StreamWriter(netStream);

streamwrite.Write(stream); streamwrite.Flush();

streamwrite.Close(); tcpclt.Close(); }......

4 消息出來方法設計

設計一個信息處理方法DoInformation,用來處理Listener對象收到對方發送過來的消息,該方法會根據字符串中包含的CONN(連接)、SITE(對方下棋)或QUIT(對方退出),來進行相應不同的處理。主要功能代碼如下所示:

public void InformationDo(object sender, AddChessEventArgs e)

{ ...... switch (sp)

{ case \"SITE\": x = Convert.ToInt32(sp[1]) / 100;

y = Convert.ToInt32(sp[1]) % 100; Point p = new Point(x,y);

if (Convert.ToInt32(sp[2]) == 0)

{ str = \"white\"; type = WHITE; rdoWhite.Enabled = 1; }

else { str = \"black\"; type = BLACK; rdoBlack.Enabled = 1;}

AddChess(p,type); DrawNextPlayerMark(); ......

5 游戲的勝負設計實現

根據五子棋的游戲規則,5個同色棋子先連成一條線的一方獲勝,其中連線方式有四種:橫、豎、左對角線、右對角線。所以在程序設計時,需要以剛下的棋子為中心,分別檢查其所在行、列、左對角線、右對角線四個方向有沒有連成5個同色的棋子。

nt x, y,n, LastPlayer=(nextPlayer==WHITE)?BLACK:WHITE;

n=1; //查看該行有沒有5個同色棋子 y = LastPoint.Y;

for (x = LastPoint.X - 1; x >= 0; x--)

{ if (GameBoard[y, x] == LastPlayer) n++; else break; }

for (x = LastPoint.X + 1; x < 15; x++)

{ if (GameBoard[y, x] == LastPlayer) n++; else break; }

if (n >= 5) { WhoWin(LastPlayer); return; }

6 結束語

網絡五子棋游戲是被廣大用戶熟識的益智小游戲,文章主要應用C#語言來實現了該游戲的界面設計、網絡通信等主要功能框架。

參考文獻

[1]呂尚榕,基于flash的五子棋軟件的設計與實現[D].復旦大學, 2012.

[2]陳青華.C#網絡開發項目教程[M].電子工業出版社,2012.

主站蜘蛛池模板: 最近最新中文字幕在线第一页 | 三级毛片在线播放| 国产在线一区视频| 国产午夜无码专区喷水| 在线亚洲小视频| 免费高清a毛片| 色综合网址| 日本人妻一区二区三区不卡影院| 四虎亚洲精品| 九九久久精品国产av片囯产区| 亚洲一区二区精品无码久久久| 精品无码国产一区二区三区AV| 91精品国产综合久久香蕉922| 亚洲国产精品无码久久一线| 秘书高跟黑色丝袜国产91在线| 国产精品va| 国产又爽又黄无遮挡免费观看| 国产成人免费| 国产亚洲高清在线精品99| 视频在线观看一区二区| 日韩av在线直播| 国产极品美女在线观看| 都市激情亚洲综合久久| 国产91成人| 日韩欧美网址| 18禁影院亚洲专区| 少妇高潮惨叫久久久久久| 成人无码一区二区三区视频在线观看 | 亚洲啪啪网| 最新国产成人剧情在线播放| 亚洲欧美国产五月天综合| 国产精品99久久久| 18禁高潮出水呻吟娇喘蜜芽| 欧洲熟妇精品视频| 丰满少妇αⅴ无码区| 99精品热视频这里只有精品7| 狠狠亚洲五月天| 四虎永久免费在线| 亚洲AV无码精品无码久久蜜桃| 国产视频久久久久| 最新精品久久精品| 国产精品三区四区| 一级毛片免费播放视频| 毛片网站观看| 少妇被粗大的猛烈进出免费视频| 国产在线自乱拍播放| 欧美视频在线播放观看免费福利资源| 青青草原国产一区二区| 久久网欧美| 日韩在线影院| 国产美女91视频| 91视频首页| 91色综合综合热五月激情| 国产地址二永久伊甸园| 午夜免费小视频| 国产精品无码翘臀在线看纯欲| 日本三级精品| 国内精品自在自线视频香蕉| 国内精品小视频在线| 久久久久国产一级毛片高清板| 强奷白丝美女在线观看| 亚洲三级影院| 亚洲精品男人天堂| 992Tv视频国产精品| 日韩免费无码人妻系列| 午夜视频免费一区二区在线看| 午夜啪啪网| 国产91av在线| 国产手机在线小视频免费观看| 国产精品久久精品| 国产成人无码Av在线播放无广告| 全色黄大色大片免费久久老太| 久久久精品无码一二三区| 国产av剧情无码精品色午夜| 日韩一二三区视频精品| 精品欧美一区二区三区在线| 欧美国产综合视频| 欧美在线一二区| 国产流白浆视频| 亚洲开心婷婷中文字幕| 热伊人99re久久精品最新地| 婷婷综合亚洲|