基于C#的网络五子棋游戏设计_基于c

2020-02-27 其他范文 下载本文

基于C#的网络五子棋游戏设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“基于c”。

基于C#的网络五子棋游戏设计

摘 要:文章是应用C#语言来完成网络五子棋的设计实现,其中完成了网络五子棋的界面设计、网络通信类的设计实现,以及游戏胜负的设计实现等主要功能模块。

关键词:C#;网络;五子棋

五子棋起源于中国古代的黑白棋种之一,经过多年的一系列变化,使得这一简单游戏变得复杂化、规范化,最终成为今天的职业连珠五子棋,同时也是一项国际比赛项目。五子棋不仅能增强思维能力,提高智力,并且富有哲理,有助于修身养性;既具有简单易学的特性,又有深奥的技巧和高水平的国际比赛。而随着网络的普及,网络游戏迅猛发展,一些小型的网络游戏受到用户的热衷,如五子棋、围棋、象棋等。文章主要应用C#语言完成网络五子棋游戏的设计实现。网络五子棋游戏的功能需求

网络五子棋游戏需要具备如下基本功能:

1.1 该游戏能够在局域网上运行,游戏双方具有相同的界面。

1.2 “选择白棋”或“选择黑棋”,然后查找局域网中的在线玩家进行连接。

1.3 黑棋先行,黑白棋子交替进行,任何一方不可以连下两步棋。

1.4 程序能够判断哪方获胜,一旦某方获胜,程序结束,开始下一局。界面设计

五子棋游戏规定,任何一方棋子落下后是不需要再动的,所以棋盘可以采取一张棋盘图片,其中方格的大小为20*20像素,黑子和白子也分别使用20*20的图片。在程序中应用ImageList控件的Draw方法来实现对黑子和白子的管理,即在指定位置显示指定的图像。该方法在本程序中的使用格式如下:

public void Draw(Graphics g,int x,int y,int width,int height,int index){ }监听类和发送类设计

监听类主要监听对方发过来的消息,然后交给信息处理方法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);

AddCheEventArgs arg=new AddCheEventArgs();

arg.site=msg; OnAddChe(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(); }......消息出来方法设计

设计一个信息处理方法DoInformation,用来处理Listener对象收到对方发送过来的消息,该方法会根据字符串中包含的CONN(连接)、SITE(对方下棋)或QUIT(对方退出),来进行相应不同的处理。主要功能代码如下所示:

public void InformationDo(object sender,AddCheEventArgs 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 = false; }

else { str = “black”; type = BLACK; rdoBlack.Enabled = false;}

AddChe(p,type); DrawNextPlayerMark();......游戏的胜负设计实现

根据五子棋的游戏规则,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

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

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

网络五子棋游戏是被广大用户熟识的益智小游戏,文章主要应用C#语言来实现了该游戏的界面设计、网络通信等主要功能框架。

参考文献

[1]吕尚榕,基于flash的五子棋软件的设计与实现[D].复旦大学,2012.[2]陈青华.C#网络开发项目教程[M].电子工业出版社,2012.

《基于C#的网络五子棋游戏设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
基于C#的网络五子棋游戏设计
点击下载文档
相关专题 基于c 设计 五子 网络 基于c 设计 五子 网络
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文