一个VB6.0做的简易网络中国象棋程序

这是我这段时间忙着做的东西,通信原理课的作业……
班里交这个作业的人一共四五个人,其中自己编的大概也就两三个人罢了,大学啊,哎……
另外,我们学校貌似有人用类似的“网络五子棋”程序做毕业设计,可悲的二本学校。

[img][attach]284[/attach][/img]

程序使用VB6.0做的,好吧,我承认我VC不会用……
我曾试图把这个程序转成VB.NET的,虽然大致上是成功了,但是由于VB.NET没有Image控件,只有PictureBox控件,因此程序界面看起来惨不忍睹。棋子的透明效果都没了。
而且我惊讶的发现,转换成VB.NET的程序占用的内存竟然是VB6.0版本的3倍
[img][attach]281[/attach][/img]

本程序支持局域网、外网(服务器端)对内网(客户端)、外网对外网、内网(开放端口)对内网(开放端口)的两人象棋对战。
主要有以下功能:
走棋信息实时传递
即时消息发送
断线检测功能
计时功能
走棋提示功能
游戏音效
胜负信息记录功能
用户昵称、胜率信息交换
颜色交换、单步悔棋、认输、求和及重开新局功能
棋谱记录及保存功能
只做了照将和将军两种输赢判断,长打长将什么的没做。

程序信息传递采用TCP协议,使用了winsock、commdialog、richtextbox控件。
P.S.:控件文件包括在了已编译好的程序压缩包里,源代码包里没有,你要是用到源代码,那八成是装了VB6.0的,就不需要单独安装控件了。

使用Windows 7的同学,请以管理员模式运行文件夹里那个“Win7请以管理员身份运行此文件.BAT”即可。

[b]关于棋谱记录[/b]
棋谱记录的方法基本上符合中国象棋的传统记法
一般情况,如:
砲五进三
代表红方第五列上的砲前进三格
车2平3
代表黑方第2列上的车平移到第3列
当一列上有两个相同的棋子时,以前后区分
前车进二
代表红方前面的车进两格

特殊情况(传统记录方法无明确规定):
当一列上有三个或三个以上相同的棋子(兵或卒)时,以一二三四五(12345)分别称呼,如
一兵进一,2兵平3
这种记录方法保持了象棋中四字记录的简洁,又不会造成歧义。
如一列有三个红方兵,另一列有两个红方兵。
则分别称为一兵、二兵、三兵以及前兵、后兵。

[b]关于版权[/b]
程序中的源代码及算法都是本人原创。象棋的图片和声音是从腾讯的游戏大厅里扒来的,仅为学习交流之用。
这个程序在此公开源代码,但你必需遵守以下规定:
你可以免费使用、修改、二次开发本程序,但请保留程序中的原作者信息。
不可将此程序用于商业用途。

[b]可执行程序:[/b]
[file][attach]285[/attach][/file]

[b]源代码:[/b]
[file][attach]286[/attach][/file]

2 comments — post a comment

Yang

人才啊

Yang


迅速确定下一个目标~
over

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注