C#基于TCP协议的网络对弈象棋软件设计与实现(3)
时间:2021-04-19 23:06 来源:毕业论文 作者:毕业论文 点击:次
象:走田字格,田字格中间有棋子不能走,另外不能超出河界。 马:走日字格,竖日在当前棋的上面有棋子不能走。 车:横竖方向任意走,不过中间隔棋子不能走。 炮:吃棋子隔一个棋走,随意行走同车规则。 兵:在自家只可以往前走一步,过了河界也可以左右行走一步。 输赢判断:按规则走各个棋子,能降对方的将(帅)吃掉就算赢。 1.3研究现状及发展趋势 互联网时代到来,各类软件很多,系统软件,应用软件,游戏软件等等,给人们提供了极大地便利,大家可以在网络上弥补现实的距离,而中国象棋的软件发展也越来越完善。从早期的外出可以带着的小电子棋盘,然后出现了可以跟电视机相连的,最后电脑上的手机上的越来越完善,可玩度越来越高,人们常用的通讯软件QQ也附带了中国象棋游戏。而本文正是自行研究一款象棋软件。 随着计算机的不断前进,人工智能不断发展,市面上已经出现了不少象棋辅助软件,人机对弈,但是终究是没有完美的软件,下赢国手的概率并不大,不久的将来,象棋人工智能软件将会不断完善。 1.4课题开发环境及目标 本软件利用C#语言开发,在Windows系统下,在VS2012上运行,能实现用户登录,具有游戏大厅,选座位,聊天,双方对弈等功能。 2 网络编程储备 2.1 多线程 进程指的是一个可执行的程序动态运行的过程,然后一个进程又可以分为多个不同的执行任务,不同的执行流,称这样的执行流为线程,执行主函数的也就是main函数的叫做主线程,其他所有的线程都称为辅助线程,辅助线程可以根据自己的需求创建。用到服务器端的程序必须得用到多线程的概念,因为服务器需要不断的监听客户端发来的数据,服务器需要不断地循环接受客户端发来的消息,不可能只有一个客户端,因此不能只为一个客户端死循环在那里,正是因为这样 ,多线程的概念应运而生。 有个注意点,多线程访问同一控件时,需要委托访问,防止出现两个进程争夺资源出现死锁情况。文献综述 2.2 通信模型 通信模型不断发展,为了统一管理计算机资源,采用的通信模型主要有分散式,集中式,分布式。 分散式:每台计算机自己管理自己的资源,各个系统之间不存在数据通信与交互,这种通信模型,缺点很多,不利于统一管理数据,大量数据重复存储,严重浪费时间空间,造成数据的不一致性,还浪费各种硬件资源成本,因此很早它就被人们pass了。 集中式:就是所有的后台数据都放在一台计算机上管理,其他用户通过连接到这台计算机与他进行数据通信,从而访问数据。集中式有一定的优点:成本低,方便共享,减小冗余性,但是缺点也是有的:所有数据都在一台,假如出了故障全都消失了,而且用户访问数据的速度可能会比较慢,因为这台计算机承受的能力有限。 分布式:分布式继承了分散式跟集中式,相当于两者的结合,由很多独立的计算机系统组成。 例如,企业需要管理人,分散式就是每个人自己管自己,集中式是老总来管所有人,分布式是老总来管部门,部门然后再来管个人,很显然分布式最有效率。 C/S模型:这种模型在前三者的基础上演变发展而来,目前很多系统都是这模型,他将事务处理分为两部分,第一是客户端,它负责为用户提供跟服务器端连接的接口,第二是服务器端,负责接收客户端发来的连接请求,并将数据传给客户端。本质上C/S模型是服务器端与客户端之间在打交道,服务器端启动服务进程,等待接收客户端连接请求,而客户端执行客户进程与其服务器进行通信。本软件正是这种模型。 (责任编辑:qin) |