基于TCP的网络游戏黑白棋系列教程开篇
来源:互联网 发布:chart.js官方文档 编辑:程序博客网 时间:2024/06/07 03:15
看过网上很多的类似系列教程(博客园包包版网络大厅的+桥牌系统),写的很深入,感觉比较复杂,初学者不宜上手。我是在学习WCF的时候,发现自己对底层的传输原理都没有搞明白,于是又回头学习网络传输的一些知识,自己写了一个简单的网络游戏黑白棋,因此也想把学习的一个过程记录下来和初学者们一块交流。我的只是小儿科,还请网友多多包涵,高手们也不要吝惜你们的砖头。
第一次写系列教程,心里没底,本来自己水平就一般,却要完成这个命题作文,难煞我了。好歹程序写的差不多了(不过还没有最终完成),这里先把完成的部分分章介绍一下,程序我在慢慢补。
本系列源代码TCP网络传输参考《C#网络应用高级编程》人民邮电出版社,马骏编,黑白棋游戏部分为本人(http://www.basilwang.net/)编写。
写这个游戏只是为了我个人理解基于TCP网络游戏编程的基本思路,算法部分写的比较乱,没有优化,不过我都做了注释,方便大家阅读。
先说一下黑白棋,又叫反棋(Reversi)、奥赛罗棋(Othello),苹果棋,翻转棋。黑白棋在西方和日本很流行。但是这个游戏在中国目前还不够推广,下棋的水平还不高。黑白棋规则很简单,只要肯花点脑筋,新手也能玩得很好。因为棋盘小,下一局棋所花的时间也不多。对于黑白棋,有一种说法是:只需要几分钟学会它,却需要一生的时间去精通它(a minute to learn, a lifetime to master)。
早些年文曲星里面带的游戏就喜欢它了,我这个人脑子不开窍,很多游戏连电脑AI都打不过,好容易整了个能打败AI的游戏,还不往死里玩,嘿嘿。不过我写的这个黑白棋只是供网络对战使用,不涉及AI算法部分(我还不知道怎么做呢),斗胆发到网上,权作抛砖引玉,废话少说,进入正题。
系列的介绍打算以我学习TCP网络编程的过程为顺序,每一篇教程都能够完成功能,附上的源代码能够独立运行,我会把代码中碰到的相关知识做相应的介绍,使初学者能有直观的认识。
游戏完成的部分
1 网络大厅,可自定义桌数,人数 (完全参照《C#网络应用高级编程》,马老师应该不介意吧)
2 黑白棋游戏客户端
2.1 吃子
2.2 奇偶数统计
2.3 轮流下子
2.4 终局胜负提示
未完成部分
1 黑白棋游戏客户端
1.1 下子时间限制
1.2 甲方无子可下时,程序判定由乙方下子,甲方丢掉一次机会
1.3 判定任一方无子可下的程序(思路:需要计算盘中空子的列表,然后调用已完成的吃子程序,看能否下子,但并不真正下子)
第一次写系列教程,心里没底,本来自己水平就一般,却要完成这个命题作文,难煞我了。好歹程序写的差不多了(不过还没有最终完成),这里先把完成的部分分章介绍一下,程序我在慢慢补。
本系列源代码TCP网络传输参考《C#网络应用高级编程》人民邮电出版社,马骏编,黑白棋游戏部分为本人(http://www.basilwang.net/)编写。
写这个游戏只是为了我个人理解基于TCP网络游戏编程的基本思路,算法部分写的比较乱,没有优化,不过我都做了注释,方便大家阅读。
先说一下黑白棋,又叫反棋(Reversi)、奥赛罗棋(Othello),苹果棋,翻转棋。黑白棋在西方和日本很流行。但是这个游戏在中国目前还不够推广,下棋的水平还不高。黑白棋规则很简单,只要肯花点脑筋,新手也能玩得很好。因为棋盘小,下一局棋所花的时间也不多。对于黑白棋,有一种说法是:只需要几分钟学会它,却需要一生的时间去精通它(a minute to learn, a lifetime to master)。
早些年文曲星里面带的游戏就喜欢它了,我这个人脑子不开窍,很多游戏连电脑AI都打不过,好容易整了个能打败AI的游戏,还不往死里玩,嘿嘿。不过我写的这个黑白棋只是供网络对战使用,不涉及AI算法部分(我还不知道怎么做呢),斗胆发到网上,权作抛砖引玉,废话少说,进入正题。
系列的介绍打算以我学习TCP网络编程的过程为顺序,每一篇教程都能够完成功能,附上的源代码能够独立运行,我会把代码中碰到的相关知识做相应的介绍,使初学者能有直观的认识。
游戏完成的部分
1 网络大厅,可自定义桌数,人数 (完全参照《C#网络应用高级编程》,马老师应该不介意吧)
2 黑白棋游戏客户端
2.1 吃子
2.2 奇偶数统计
2.3 轮流下子
2.4 终局胜负提示
未完成部分
1 黑白棋游戏客户端
1.1 下子时间限制
1.2 甲方无子可下时,程序判定由乙方下子,甲方丢掉一次机会
1.3 判定任一方无子可下的程序(思路:需要计算盘中空子的列表,然后调用已完成的吃子程序,看能否下子,但并不真正下子)
源程序写的很简单,界面比较简陋,只是为了帮助大家更好的理解基于TCP的网络游戏传输的基本原理,还请大家多包涵。
- 基于TCP的网络游戏黑白棋系列教程开篇
- 基于TCP的网络游戏黑白棋系列(二):数据传输
- 基于TCP的网络游戏黑白棋系列(一):建立连接
- 基于TCP的网络游戏黑白棋系列(三):游戏大厅
- 基于TCP的网络游戏黑白棋系列(四):游戏棋盘
- 基于VC++的黑白棋
- 我的黑白棋
- 黑白棋的问题
- 黑白棋的落子
- 基于Ubuntu下的QT制作黑白棋游戏
- 【9702】黑白棋的移动
- 控制台上的黑白棋
- 黑白棋的基础程序
- 黑白棋
- 黑白棋
- 黑白棋
- 黑白棋
- 黑白棋
- C# 实现屏幕键盘 (ScreenKeyboard)
- /dev/zero和/dev/null
- oracle prifile
- poj1656作为新手我都觉得水!!
- ant部署详解
- 基于TCP的网络游戏黑白棋系列教程开篇
- Django:我是怎么做到使用django动态定义表单(form)的
- Windows用户界面编程中的界面闪烁问题
- 《深入理解计算机系统》(第二版)第二章练习题5
- 基于TCP的网络游戏黑白棋系列(一):建立连接
- 由于 ip 改变,导致 oracle dbconsole 无法启动
- Win32程序开发流程
- 查看当前数据库的性能数据
- 基于TCP的网络游戏黑白棋系列(二):数据传输