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

基于C#的網(wǎng)絡(luò)五子棋游戲設(shè)計(jì)

2014-04-29 00:00:00梁紅碩
科技創(chuàng)新與應(yīng)用 2014年17期

摘 要:文章是應(yīng)用C#語(yǔ)言來(lái)完成網(wǎng)絡(luò)五子棋的設(shè)計(jì)實(shí)現(xiàn),其中完成了網(wǎng)絡(luò)五子棋的界面設(shè)計(jì)、網(wǎng)絡(luò)通信類的設(shè)計(jì)實(shí)現(xiàn),以及游戲勝負(fù)的設(shè)計(jì)實(shí)現(xiàn)等主要功能模塊。

關(guān)鍵詞:C#;網(wǎng)絡(luò);五子棋

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

1 網(wǎng)絡(luò)五子棋游戲的功能需求

網(wǎng)絡(luò)五子棋游戲需要具備如下基本功能:

1.1 該游戲能夠在局域網(wǎng)上運(yùn)行,游戲雙方具有相同的界面。

1.2 “選擇白棋”或“選擇黑棋”,然后查找局域網(wǎng)中的在線玩家進(jìn)行連接。

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

1.4 程序能夠判斷哪方獲勝,一旦某方獲勝,程序結(jié)束,開(kāi)始下一局。

2 界面設(shè)計(jì)

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

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

3 監(jiān)聽(tīng)類和發(fā)送類設(shè)計(jì)

監(jiān)聽(tīng)類主要監(jiān)聽(tīng)對(duì)方發(fā)過(guò)來(lái)的消息,然后交給信息處理方法DoInformation,該方法會(huì)根據(jù)不同的消息內(nèi)容作出相應(yīng)處理。發(fā)送類主要完成數(shù)據(jù)發(fā)送,如客戶IP信息,連接信息,下棋信息,退出信息等信息的發(fā)送。其中監(jiān)聽(tīng)類的主要功能代碼如下:

private void Listener() //監(jiān)聽(tīng)方法

{ 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) }......

發(fā)送類的主要功能代碼如下:

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 消息出來(lái)方法設(shè)計(jì)

設(shè)計(jì)一個(gè)信息處理方法DoInformation,用來(lái)處理Listener對(duì)象收到對(duì)方發(fā)送過(guò)來(lái)的消息,該方法會(huì)根據(jù)字符串中包含的CONN(連接)、SITE(對(duì)方下棋)或QUIT(對(duì)方退出),來(lái)進(jìn)行相應(yīng)不同的處理。主要功能代碼如下所示:

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 游戲的勝負(fù)設(shè)計(jì)實(shí)現(xiàn)

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

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

n=1; //查看該行有沒(méi)有5個(gè)同色棋子 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 結(jié)束語(yǔ)

網(wǎng)絡(luò)五子棋游戲是被廣大用戶熟識(shí)的益智小游戲,文章主要應(yīng)用C#語(yǔ)言來(lái)實(shí)現(xiàn)了該游戲的界面設(shè)計(jì)、網(wǎng)絡(luò)通信等主要功能框架。

參考文獻(xiàn)

[1]呂尚榕,基于flash的五子棋軟件的設(shè)計(jì)與實(shí)現(xiàn)[D].復(fù)旦大學(xué), 2012.

[2]陳青華.C#網(wǎng)絡(luò)開(kāi)發(fā)項(xiàng)目教程[M].電子工業(yè)出版社,2012.

主站蜘蛛池模板: 99久久国产综合精品女同| 亚洲国产看片基地久久1024| 日本午夜影院| 欧美黑人欧美精品刺激| 亚洲视频免费在线看| 亚洲天堂网在线播放| 99青青青精品视频在线| 国产精品原创不卡在线| 色综合中文| 2020精品极品国产色在线观看| 国产午夜人做人免费视频中文| 亚洲swag精品自拍一区| 久久天天躁狠狠躁夜夜2020一| 欧美日韩激情在线| 国产福利微拍精品一区二区| 久久 午夜福利 张柏芝| 无码AV动漫| 永久毛片在线播| 色悠久久久久久久综合网伊人| 国产欧美精品专区一区二区| 2021国产在线视频| 欧美激情成人网| 欧美成一级| 尤物精品视频一区二区三区| 亚洲色图另类| 色窝窝免费一区二区三区| 在线国产91| 中文无码精品a∨在线观看| 女人天堂av免费| 色综合天天综合| 国产高清又黄又嫩的免费视频网站| 92午夜福利影院一区二区三区| 中文无码毛片又爽又刺激| 国产一区在线观看无码| 日韩精品一区二区三区免费| 久久婷婷综合色一区二区| 久久亚洲中文字幕精品一区| 色综合久久无码网| 午夜日b视频| 蝴蝶伊人久久中文娱乐网| 免费国产黄线在线观看| 人人91人人澡人人妻人人爽| 美女潮喷出白浆在线观看视频| 2021国产乱人伦在线播放| 在线中文字幕日韩| 久久鸭综合久久国产| A级毛片高清免费视频就| 91丝袜在线观看| 日本伊人色综合网| 91精品人妻一区二区| 亚洲欧美自拍中文| 四虎成人在线视频| 国产va视频| 老司机久久99久久精品播放| 色综合激情网| 国产日韩欧美在线视频免费观看| 999精品视频在线| 美女高潮全身流白浆福利区| 少妇精品久久久一区二区三区| 亚洲男人的天堂久久香蕉网| 国产精品任我爽爆在线播放6080 | 久久这里只有精品国产99| 日韩av电影一区二区三区四区| 日韩精品欧美国产在线| 国产自无码视频在线观看| 久久精品免费看一| 国产成年女人特黄特色毛片免| 久久人体视频| 欧美日韩专区| 一级爱做片免费观看久久| 欧美成人怡春院在线激情| 久久久久青草大香线综合精品| 亚洲欧美日韩中文字幕在线| 九九久久精品免费观看| 国产亚洲精久久久久久无码AV| 精品欧美一区二区三区久久久| 免费一级毛片在线观看| 亚洲码一区二区三区| 国产色网站| 日本道综合一本久久久88| 日韩精品资源| 在线毛片免费|