当前位置:文档之家› 四国军棋论文

四国军棋论文

四国军棋论文
四国军棋论文

毕业设计(论文)

题目基于MFC的网络四国军棋

英文题目Army Chess Game On MFC

学生姓名xxxxxx

学号0811xx37

指导教师xxxxxxxxxxx 职称副教授,高级工程师

专业软件工程

二零一二年四月

摘要

随着Internet的普及,网络游戏已经成为大家耳濡目染的新生事物。网络游戏从出现到现在的发展的时间很短,但是其发展速度却非常之快。网络四国军棋也就这样应运而生。

网络游戏的体系结构,包括客户机程序、服务器程序、数据库服务器。网络游戏通常的运行方式有一个或多个游戏服务器启动特定游戏服务。游戏者到游戏网站上下载客户端程序并且申请游戏账号ID。然后启动客户端程序通过某种网络协议连接游戏服务器。

本系统就是基于VC++语言MFC库的简单网络游戏,系统包括客户端和服务端,使用SQL Server2005和VC++开发工具开发,并运用了TCP/IP协议,网络通信,STL 及图形矩阵转换算法等技术,界面简洁大方,操作方便,给玩家一个不一样的操作体验。

关键字:网络四国军棋; TCP/IP;STL;MFC

ABSTRACT

With the popularity of the Internet, online games have become a new thing of all monasteries. Online games appear to the present development time is very short, but its development speed is very fast. Network Army Chess also came into being.

The architecture of the network game, including the client program, server program and the database server. The online games are usually run one or more of the game server to start a specific game. The player to the game site, download the client program and apply for a game account ID. Then start the client program to connect game server through a network protocol.

The system is a si mple network games. It’s based on C+ + Program Language and MFC library. The system include customer side and service side , use SQL Server2005 and VC development tool , and use the TCP / IP protocols , network communications , the STL and graphical matrix conversion algorithm technology , interface is simple and elegant , easy to operate , to give the players a different operating experience!

Key word: Network Army Chess; TCP/IP; STL; MFC

目录

绪论·······························- 1 -

问题的来源 (1)

背景和意义 (1)

国内外研究现状 (1)

1.可行性分析···························- 3 -

1.1市场需求 (3)

1.2业务难点分析 (3)

1.3系统可行性 (3)

2. 相关的知识和工具························- 5 -

2.1解决问题的知识基础 (5)

2.1.1 TCP/IP协议·······················- 5 -

2.1.2 网络通信·························- 6 -

2.1.3 MFC ...........................- 7 - 2.2开发平台 (8)

2.3数据库 (8)

3. 概要设计····························- 9 -

3.1功能模块的框架 (9)

3.2模块功能概述 (9)

3.3模块间关系概述 (10)

3.3.1 注册流程(客户端):··················- 10 -

3.3.2 游戏命令处理流程(服务器):··············- 12 -

4. 详细设计···························- 13 -

4.1模块结构 (13)

4.1.1 服务器端类图······················- 13 -

4.1.2 客户端类图.......................- 13 - 4.2重要模块详述 (14)

4.3关键技术 (18)

5. 实现及测试··························- 22 -

5.1数据结构 (22)

5.2主要功能实现 (23)

5.2.1 游戏协议及消息通信的实现···············- 23 -

5.2.2 游戏界面初始化的实现·················- 24 -

5.2.3 注册及登陆的实现···················- 29 -

5.2.4 游戏过程的实现....................- 29 - 5.3测试. (35)

结论·····························- 37 -

特色与成功 (37)

问题与展望 (37)

致谢 (38)

参考文献····························- 39 -

绪论

问题的来源

随着Internet的普及,网络游戏已经成为大家耳濡目染的新生事物。网络游戏从出现到现在的发展的时间很短,但是其发展速度却非常之快。现在,可以说网络游戏已经成为人们休闲、娱乐的有效方式。国内比较有名气的网络游戏有联众网络游戏世界(https://www.doczj.com/doc/f710314395.html,)、qq游戏中心(https://www.doczj.com/doc/f710314395.html,)、中国游戏中心(https://www.doczj.com/doc/f710314395.html,) 以及这几年受玩家亲睐的DNF、魔兽世界等。

背景和意义

网络游戏产业是一个新兴的朝阳产业,经历了20世纪末的初期形成期阶段,及近几年的快速发展,现在中国的网络游戏产业处在成长期,并快速走向成熟期的阶段。在中国整个网络经济的发展过程中从无到有,发展到目前成为中国网络经济的重要组成部分。网络游戏产业之所以可以打破在原来中国整个网络经济中的平衡,主要缘于在20世纪末中国网络经济泡沫破灭整个网络经济大受打击的时候,网络游戏却异军突起成为整个网络经济发展的领头羊,得到迅猛的发展。

对当今网络游戏的设计、架构进行分析、探索和实践,研究出更好的网络游戏设计模式及架构。提供友好的客户操作界面,使用户的操作体验得到进一步的提升,通过客户端与服务器之间的网络传递数据,实现了多人协同游戏的目的。分析现今网络游戏体系结构及设计模式的优缺点,及对网络游戏的发展给予分析和展望。改善国内外游戏

国内外研究现状

网络游戏与以往的游戏发展演变之路是不同的,已不再单单表现为游戏终端设备的差异,进而体现了游戏传输载体和游戏参作方式的变革。纵观目前全球游戏产业,网络游戏走向成熟和深化,“娱乐随时随地”正在梦想成真;技术融合带来游戏的跨平台发展,通过网络,个人电脑,大型游戏机,家用游戏机,交互电视,手机都可以进行互动交流,不同设备可以通过网络运行同一个游戏,而像四国军棋这样的随玩随了的游戏,正成为一种潮流。而基于C/S架构的网络游戏占市场比例高达百分之八十以上,如图0-1即为时下流行之C/S体系架构:

图0-1 网络游戏体系结构

1.可行性分析

1.1市场需求

首先要建立底层的网络通信类,利用网络通信类连接构建客户服务器之间的TCP/IP连接,然后在该连接的基础上利用自设定的协议进行客户端登录、进行游戏等操作。在以上协议的基础上,根据不同的游戏编写不同的游戏逻辑处理类,在该逻辑处理类中实现了对应的游戏逻辑,如实例中的军棋,则实现相互之间的对弈等功能。同时在服务器端还需要和数据库服务器交互,用于读取或保存客户信息(如用户积分、密码、个人资料等数据)。

1.2 业务难点分析

(1)、有一个或多个游戏服务器启动特定游戏服务。

(2)、游戏者到游戏网站上下载客户端程序并且申请游戏账号ID。然后启动客户端程序通过某种网络协议连接游戏服务器。

(3)、客户端程序负责处理客户端显示和操作界面,具有简单的逻辑处理功能,同时负责接收发送与服务器端交互的数据包。

(4)、服务器程序负责处理服务器端逻辑、游戏逻辑、客户之间的网络信息传递,以及数据库之间的数据读取保存工作。同时服务器端还要承担客户端数据的接收、转发工作。

1.3 系统可行性

四国军棋的游戏运行方式(见图1-1)。

图1-1 网络游戏交互图

2. 相关的知识和工具

2.1 解决问题的知识基础

2.1.1 TCP/IP协议

网络游戏常用的网络协议有适用于Internet的TCP/IP协议、适用局域网(比如星际)的IPX协议。

(一) TCP/IP协议

TCP/IP协议(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是Internet中计算机进行通信的标准,其命名起源于该组协议中最重要的两个协议TCP和IP。任何关于Internet协议的讨论必须由TCP/IP开始,它也是其他所有协议的基础。TCP/IP协议是Internet网络的共同语言,主机之间必须利用TCP/IP互通信息。

TCP/IP协议目前已经成为发展最成功的通信协议之一,它起源于20世纪60年代末美国政府资助的一个分级交换网络研究项目,允许分布在各地的使用不同操作系统的网络进行通信。随着世界范围个人电脑的普及,日常无论收发邮件、访问网页和文件传输都已经离不开TCP/IP协议,TCP/IP协议已经成为Internet的基础。

(二) TCP/IP结构

TCP/IP实际上就是在物理网上的一组完整的协议。其核心部分是传输层协议(TCP/UDP)、网络层(IP)和物理接口层,这三层通常在操作系统内核中实现。TCP/UDP 层提供了传输层服务,而IP协议提供了网络层服务。

TCP/IP协议是一个四层协议,其结构如图2-1所示。

图2-1 TCP/IP协议体系结构图

应用程序与TCP/IP可靠传输之间接口具有五大特性:

面向数据流当两个用户进程传输大量数据时,我们把这些数据当做可划分为八位组(octer,字节)的比特流,在目的机器上运行的数据流投递服务软件提给接收方的八位组与信源机上发送方送出来的完全相同。

虚电路连接数据流的传输与电话相似,使用“虚电路”这个术语来描述这种连接是因为在应用程序看来这种连接像是一条专用的硬件电路,这种可靠连接的错觉是由数据流投递服务提供。

有缓冲的传送使用虚电路服务来发送数据流的应用程序不断向协议软件递交数据八位组。为了提高效率以及减少网络延迟,协议软件在实现时都会从数据流中收集到足够多的数据,组成大小合理的数据包后再送到网络上传输。

无结构的数据TCP/IP协议并不区分结构化的数据流。使用数据流的应用程序必须在开始连接之前就了解数据流的内容并对其格式进行协商。

这点很重要,在程序中表现为send函数只能发送字符串,这就需要将接收的字符串转化需要的结构化的数据。

全双工连接TCP/IP流服务所提供的功能是双向的全双工连接。其中包括了两个独立、流向相反的数据流,而这两个数据流之间不进行显式的交互。

常用协议主要包括TCP/UDP层协议和IP层协议。TCP和UDP都是传输层协议,都使用IP协议作为网络层协议。使用UDP协议的应用程序必须承担可靠性的工作,包括报文的丢失、重复、乱序以及连接失效等问题,而程序员编程时则容易疏忽。

2.1.2 网络通信

Windows Socket (简称WinSock)是在Win32平台上访问基层网络协议的接口。在不同的Win32平台上,Windows Socket以不同的方式存在着,作为网络编程接口而不是协议存在。

套接字(Socket)概念,套接字是从英文单词Socket翻译而来,它是网络通信的基本操作单元,是应用层到传输层的接口,可以将套接字看作不同主机间的进程进行双向通信的端点。

Windows Socket组成部分,Windwos Sockets实现一般都由两部分组成:开发组件和运行组件。开发组件是供程序员开发Windows Sockets应用程序使用的,主要是WinSock.h头文件。对于Windows Sockets应用程序的源文件来说,只要包括WinSock.h就可以了。除此之外,在使用WinSock的项目中还需要加入WinSock API 引入库wsock32.lib。运行组件是Windows Sockets应用程序接口的动态连接库(DLL),文件名为WinSock.dll,应用程序在执行时通过装入它实现网络通信功能。

Windows Sockets编程的基本模式,要通过互联网进行通信,你至少需要一对套接字,其中一个运行于客户端,我们称之为ClientSocket,另一个运行于服务器

端,我们称之为ServerSocket。使用Socket进行网络通信一般有两种方式:基于面向连接的流方式和基于无连接的数据报方式。面向连接的的流方式调用过程如图3-6所示。

图2-2 面向连接的流方式调用过程

2.1.3 MFC

概述:

微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

发展:

MFC是在1992年随微软的Microsoft C/C++ 7.0编译器发布的,用于面向16位元Windows的软件开发。起初,MFC是作为一个应用程序框架开发的,所以定名为Application Framework eXtensions(AFX)。[4]

随着Visual Basic和Visual Studio .NET的发布,曾经一度被微软重点推荐的MFC 被Visual Basic .NET、C#、Windows Forms抢走了不少市场份额,但是MFC继续在非托管软件开发中占据重要地位。在托管开发方面,MFC中也包括对Windows Forms和托管/非托管互操作的封装。微软在Windows Vista和Windows 7发布之后在MFC中增加了对新的Windows API支持。

MFC的优点:

MFC的主要优点是可以用面向对象的方法来调用Windows API,以及应用程序开发的便捷。MFC将很多应用程序开发中常用的功能自动化,并且提供了文档框架视图结构和活动文档这样的便于自定义的应用程序框架。同时,在Visual C++内部也内建了很多对MFC的例如类向导这样的支持以减少软件开发的时间,使用类向导可以生成从hello world这样的简单程序到活动文档服务器这样的复杂程序。MFC 的消息映射机制也避免了使用性能较低的庞大虚函数表。

2.2 开发平台

操作系统Win7, 开发工具Visual Studio 2010。

2.3 数据库

SQL Server 2005,是一个全面的数据库平台,引擎为关系型数据和结构化数据提供了安全可靠的存储功能。

3. 概要设计

3.1 功能模块的框架

四国军棋游戏客户端功能结构,如图3-1所示:

图3-1 功能结构图-客户端四国军棋游戏服务器端功能结构,如图3-2所示:

图3-2 功能结构图-服务器3.2 模块功能概述

客户端类的划分:

游戏基本控件模块:负责处理游戏中一些完成基本功能的类,如处理声音类、处理动画图标,图形按钮等类,基本类的特点是被其他类在特定处所调用,并不动生成对象。

游戏框架模块:负责处理游戏中客户端用于显示程序界面和绘制游戏界面以及显示用户信息和广告信息等处理任务。

游戏通信模块:负责处理游戏中客户服务器之间的网络传输细节,从而在编程中不用考虑网络通信细节,达到客户和服务器之间的透明的效果。

游戏应用处理模块:主要负责处理应用程序中各种设置显示对话框、程序主线程处理、程序中基本的运行类框架的管理,以及游戏中图形的处理和显示等任务的处理。

游戏逻辑处理模块:主要用于处理游戏简单逻辑、负责解析和处理与服务器端交互的游戏数据,以及在游戏运行中维护游戏中的各种数据,同时维护处理游戏主线程逻辑等功能。

服务器类的划分:

游戏通信模块:负责处理游戏中客户服务器之间的网络传输细节,从而在编程中不用考虑网络通信细节,达到客户和服务器之间透明传输的效果。

游戏应用处理模块:负责处理游戏中客户服务器之间交互所传递的数据,并且对该数据格式进行打包和解包,同时根据该包中所包含的指令串进行相应的操作。

游戏逻辑处理模块:负责处理游戏逻辑,如军棋游戏中用于维护军棋逻辑,判断下棋,得分等处理类。

用户管理模块:用于管理用户资料,在用户登录后通过数据库验证用户名和密码,通过验证后从数据库读取用户的详细资料。同时在程序中维护用户数据,在用户游戏结束和退出游戏时将用户数据保存到数据库中。

服务器主框架模块:用于管理游戏大厅的数据,包括一些数据的列表。

数据库管理模块:用于网络游戏的服务器端在处理大量的客户资料时,使用数据库进行大量数据的存储和查询所调用的类方法。

3.3 模块间关系概述

3.3.1 注册流程(客户端):

如图3-3所示,客户端的注册流程是这样的:

首先是用户点击大厅界面的注册按钮,触发用户注册事件并弹出注册窗口,

用户填写注册信息后,应用处理模块将注册信息进行处理后调用逻辑层处理封装注册消息,最后通知通信模块发送注册消息给服务器。

接着是服务器解析注册消息,将用户信息保存到数据库中,并生成和封装用户名回发给客户端。

最后客户端收到用户名消息后进行解析,上传给应用处理层,由应用处理层处理,最终触发生成游戏桌面。

图3-3 注册流程图

3.3.2 游戏命令处理流程(服务器):

如图3-4所示,游戏命令处理流程是这样的:

(1). 服务器端起动服务并开启消息的监听任务,随机准备接收来自客户端的游戏命令消息。

(2). 收到客户端的消息,触发逻辑处理层提供给通信层的回调函数,判断是否是游戏命令消息,如果是,那么进行相应的处理后上报给应用处理层。

(3). 应用处理层一方面将数据信息上报给用户管理层,并存入数据库,另一方面得出处理结果,并下发给逻辑处理层处理。

(4). 逻辑处理层将处理结果封装成消息,并通知通信层发送消息。

(5). 通信层将消息发出给每一个参与消息的客户端,客户端根据这一消息进行相应的游戏操作。

图3-4游戏命令处理流程图

4. 详细设计

4.1模块结构

4.1.1 服务器端类图

服务端有8个类,以CCServerFrameApp和CCServerFrameDoc,以及CmainFrame 为MFC框架类,CCServerFrameView是个控制类,主要功能的实现就在这个类里面,另外的四个类是配合控制类实现各模块功能的功能类,为使用关系,最终都是由控制类来调用,8个类相互配合实现了服务器端的各种功能:

图4-1服务端类图

4.1.2 客户端类图

客户端的实现相对复杂一点,一共14个类,其中ChtmlViewEx,CRegister1,

CaboutDlg,Clogin,CtableView,CgameDlg,Cwave,CGameDlg是控制类,在这其中完成和控件有关的各种操作,CCGameHallFrameApp,CCGameHallFrameDoc,CmainFrame是MFC的框架类,CCGameHallFrameView是主要的操作控制类,服务器消息的传递及注册,登陆等操作都是在这种类的基础上完成的,CgameDlg类是所有游戏操作的处理类,游戏界面的生成,游戏规则的判断等都是在这里面完成的:

图4-2 客户端类图

4.2 重要模块详述

客户端模块:

CBorderButton 类是带有边框的图片按钮类,CClockObject 类是时钟类,CWave 是用来播放声音的类,当游戏用户下棋,吃子,起身或坐下时要播放声音,选择在程序中调用API函数PlaySound直接播放在资源中的声音文件。模块描述如图4-3。

图4-3 游戏基本类模块描述

CMainFrame类是游戏窗口中的游戏大厅框架类,其中包括构架广告显示窗口,可玩的游戏类、工具栏、游戏桌的信息、显示信息等,CCGameHallFrameView类是用来在游戏大厅窗口左侧显示可以玩的游戏以及游戏室,采用树状结构显示。

CHtmlViewEx类用于构造广告显示窗口,用于游戏框架中显示广告页。CTableView 显示包含游戏桌的游戏大厅,在大厅中多人在等待开始游戏。模块描述如图4-4。

图4-4 游戏框架类模块描述

游戏通信类,CClient,功能为建立和服务器的连接,能及处理通信,采用异步机制,以自定义消息事件处理通信等功能。采用自定义消息:WM_USER + 101。模块描述如图4-5。

图4-5 游戏通信类模块描述

军棋口诀攻略

军棋口诀攻略 下面给你介绍军棋口诀攻略,欢迎阅读。 军棋口诀棋虽曲艺,义颇精微,必专心然后有得,必合法然后能超。 令欲明必吃大子;早明则亏。 敌令不明军不冲,除非快攻。 师旅三战生令相,碰炸最宜。 明令最忌左右藏,难运它棋。 攻缺令者,双方配合,多出子,切救援线路,先军后师;灭无炸方,司令狂扫,少迟疑,大子排成序,一鼓作气。 棋少联手双明,重判断配合,方显功底。 固定对家行棋,轻变化风格,棋路狭窄。 能闪能盘,棋风多变,敌难抵抗。 闪如水银泻地,令拔寨亦可;盘如蛟龙戏水,敌自生败相。 布阵宜常变,时正时奇,效果方佳。 行棋莫太明,兵不厌诈,敌难明察。 开局亏子,不要自弃,明敌配置,塞瓮失马。 对家失误,切莫埋怨,积极配合,力挽狂澜。 己遇闪电,心莫慌张,竭力周旋,耗尽资源,对家尚能以一待二;伙遭闪电,围魏救赵,打开封锁,灭敌工兵,敌人攻防不能兼顾。 小子救援莫下底,以利增兵;大棋拯救到棋旁,能解危情。

拦子不移,为忠其守;弃子不顾,以殉其职。 三角雷,切防双飞;直角雷,底营莫让。 出子流畅,道上常备兵,能出奇招;形势危急,何妨博一把,偶能取巧。 四国军棋攻守平衡攻略这是单人作战能力的一种体现,这与合理布局是紧密相联的,有的棋友们通常会摆一些与棋理相克的阵法,通常这类阵型会被人称为"变态阵"。 这种阵型所追求的就是奇效,但损失必然会比合理的布阵要多,我不推崇这样的布阵方式,投机性的胜利不但机率小,而且也会给自己造成行棋的障碍。 仔细想一想是不是这样呢?靠运气成份取胜也会使自己得不到进步,这是我的一个建议,也算是给那些爱投机取巧的棋友们一点启示吧。 转入正题,怎样叫攻守平衡呢?其实无外乎一个"稳"字,将自己行棋后的后顾之忧降到最低,"攻亦有攻,守亦易守"不给对手钻空子的机会,无论是出子进攻,还是协助对家防守,都要视自己的阵型考虑,分析后几步将可能形成的局面,当然是以我方利益为重,切勿焦躁,稳重行棋,无论局式怎样,冷静的头脑、清晰的思路都能将损失降到最低,相对于敌我来说,就是使其承受更大的打击。 根据个人行棋、布阵的风格,我所推崇的是大子靠前,方便出击,或者是大子蓄势待发,可以随时给敌人以打击,尽量减少由于出子不

四国军旗规则

军棋是我国深受欢迎的棋类游戏之一。QQ军棋游戏可以支持两国对拼也可支持四国大战。当四人游戏时,四人在棋盘上分占四角,分为两方,相对的两家联盟与另外两家对抗,互相配合战斗;两人游戏时,则分占棋盘的上下两角,相互作战。 二.游戏说明 棋盘: 行走路线包括公路线和铁路线,显示较细的是公路线,任何棋子在公路线上只能走一步,显示为粗黑的为铁路线,铁路上没有障碍时,工兵可在铁路线上任意行走,其它棋子在铁路线上只能直走或经过弧形线,不能转直角弯; 棋子落点包括结点、行营、两个司令部,行营是个安全岛,进入以后,敌方棋子不能吃行营中的棋子,军棋必须放在司令部中,进入任何司令部的棋子不能再移动。 棋子布局的限制: 炸弹不能放在第一行,地雷只能放在最后两行,军棋只能放在司令部。 吃子规则: 地雷小于工兵,大于所有其他棋子; 司令> 军长> 师长> 旅长> 团长> 营长> 连长> 排长> 工兵;炸弹与任何棋子相遇时,双方都消失。 胜负判决: 最后的幸存的一方为胜家,军棋被扛、无棋可走、超时5次都会被判负; 有人逃跑时计分方法:有人逃跑时,本局必须结束,两人对战时,若对方逃跑,则我方算胜;在四人对战时,若对方有一人已经输掉,而另一人逃跑,则判我方胜;若敌人双方都没有输掉,此时敌方有一人逃跑,双方不计分。同时为了防止作弊,分数的计算还与游戏步数有关,关于游戏步数说明如下: 1 .20 步之内不允许投降 2 .2 人对战时,30 步之内结束游戏的胜者不得分,4 人对战时,40 步之内胜者不得分 3 .军棋房间中,如果您的分数高于50 分,而您的对手中有人分数低于50 分,不增加积分 4 .一局游戏中连续70 步没有吃子则自动算和棋 计分方法: 四国大战: 赢方得 2 分,输方得-2 分。 40 步内结束,赢方不得分。 两人对战: 赢方得 1 分,输方得-1 分。 30 步内结束,赢方不得分。 三.级别的计算: 小兵=0 副班长=10 正班长=20

军棋地雷规则怎样才能挖

军棋地雷规则怎样才能挖 下面给你介绍军棋地雷规则怎样才能挖,欢迎阅读。 军棋地雷规则挖地雷方法军棋地雷的一般应用我不多说了,关键说一个三角地雷。 就未交过手的双方来说,三角地雷是不太应该使用的。 为什么?三角地雷最大的好处,就是对方无工兵的情况下,能保证军旗的安全,可是对方要是真的无工兵,2个地雷就可以保证军旗的安全了,何必用3角呢?三角地雷的危害主要有以下四点:1军棋地雷)被“牵制。 是不是有过这样的情形?你与敌方都已经可以给对手一击毙杀了,心算下来,你比对方快一步先挖旗,这个时候,一个工兵忽悠悠飞来,对家保护不及无法帮你“挡、“飞,这个时候你就是因为这一步饮恨终身。 三角地雷的第一个危害,飞你军旗上的地雷,你必须吃工兵防守一步,此其一。 2)军棋地雷被“暗杀。 四国的配合中,“双飞可以说是经典的以少胜寡,以弱胜强的战术,一次完美的双飞,不仅可以改变战局,扭转乾坤,更让人感受到四国的艺术力量。 而三角地雷的先天劣势造就了这一经典战术在各个战役中的精彩亮相,“双飞不但是对敌方四国配合能力的一个肯定,更是对你四国能力的一个批评,如果你吃尽了“双飞的苦头,就不要再执着于三角地雷

了吧。 3)军棋地雷兵力被排挤。 有没有有过这样的情形:三角地雷,上营炸弹,左边一串大棋防守,这个时候,对方不飞你的地雷,直接用一个暗的或者明的棋到你的雷角,痛苦吧,郁闷吧,这个时候即使对方站角的是排长你也只有炸了他,可是从此你的防线从此一蹶不振,对方只要一个大棋和工兵就可以轻易灭杀你的军旗。 此三角地雷的祸害之三。 综上所述,三角地雷在双方彼此不熟悉对方棋型的情况下,是不太适用的,因为在对方不知道你是不是三角地雷情况下,一般是会先飞你一下来证实的。 大棋不敢撞,小棋也不可能挖了你。 总之一句话,慎用三角雷!军棋地雷种类军棋里的地雷若摆放不当,就很可能受到对手的牵制而处于被动,甚至全局皆输以至累及搭档;若合理放置,根据敌人棋风摆出相应的雷阵,在对弈的过程中,与自己的兵力互相配合,那么,不但在防守上有着固若金汤的优势,而且在进攻上,还会得到很多有利的好处。 在此,我与大家介绍并分析“地雷阵对进攻及防守的利与弊。 综合来说,地雷阵共有十二种,以下雷阵名,均由本人(指十二神殿·[司令的后裔])根据雷位而想出来的。 1、军棋三角雷##-雷-##-##-##雷-旗-雷-##-##此雷阵是所有玩家都

军棋工兵的走法

军棋工兵的走法 下面给你介绍军棋工兵的走法,欢迎阅读。 军棋工兵的走法步骤不知道大家平时有没有遇到以小欺大的事呢,四国军棋里没有比工兵还要小的子,尽管工兵在里面小,但用途还是没有人可以替代的,生来就可以吃地雷,用处最大的是只要铁路上没有阻碍物,他就能畅通无阻。 1.工兵可在铁路线上任意行走,其它棋子在铁路线上只能直走或经过弧形线,不能转直角弯;工兵在普通路线上跟其他棋子一样,走一格。 但是在轨道上,就如入无人之地了。 可以在轨道上自由移动,怎样走都行,只要不超过轨道的区域,想走多远就走多远,但是如果有个棋子(不论敌我)堵住路线,你就不能按照那个路线行进。 2.虽说是任意走,但是得确保铁路上没有阻碍,敌人和我军的子都是阻碍,如果铁路上没子可以随便走。 就像象棋一样憋马腿塞象眼我军如果有子阻碍“马走日,那同样是蹩马腿。 3.我觉得应该有一部分的朋友单单把小兵一个只会吃雷的子,没想过把工兵当一枚多功能的子在下。 本人亲身经历过不少盘数,他们阵地上的小兵都是怒和炸弹同归于尽要么吃地雷。 (吃地雷是本职工作,但是要吃的有意义,工兵的出击是在你们对

对手的雷型上的认知。 不过前面的,本人以为只有队友的大子被两个像炸的子围杀时,待自己得到验证时,那是应该要去搞掉一个的,可以让对家从容离开。 )4.工兵在行法上可以有两种,就是用明和用暗。 明兵,肯定是直接去飞了,第二种,当然就是装普通子了,角雷的任务一般都是暗的来完成的。 本人建议,明的行法尽量少用,暗的应该多用用,线上应该一直有兵的状态。 我就遇到过把小兵部署在一线的两边角里的其中一角上,一开始就先把小兵走进行营里,一般人都会以为这是个大子,这样就成功的出了一个暗兵。 建议你如果开局先走,可以试上一试这个走法,这个藏着的子是可能会在终局时助你一臂一力。 6.暗兵还有就是可以做成炸,流传的比较广的是工兵紧跟师长,兵后再深藏炸弹。 还可以就是炸旁边布兵,在你想炸对手的38以上的子时,先行出这个炸旁边的兵,(往往会是事先待在行营里),给对手点压力,待对手用兵和你兑掉后,这时再行出炸,敌方多数会以为刚才已经搞了一个炸弹了,小心的程度就会少点,再脑子一冲动,就咔嚓自己撞上来了,然后……没有然后了。 7.装炸这招的重点是要把这个兵就当做一个炸在走,如第一个子进

【军棋指归】译注

《军棋指归》译注 译注者按: 喀丝丽为著名军棋理论家。著有《军棋指归》、《军棋格调》两部风靡棋坛的经典作品,对残局也有非常精到的研究。 本文用文言写成,非常简练,亦造成阅读困难。故笔者试图翻译并点评。译文尽量尊重原文,以直译为主,意译为辅。注以个人点评为主,力图概括原文之精髓。 笔者为《四暗指微》作者,军棋群221998598,军棋理论吧吧主,欢迎交流。8598 序: 【原】闲上联众,四国大战;胜有所赞,败有所叹;草就三篇,以为指归;自是大言,然亦可略窥军棋门庭之一二。 【译】我悠闲地登录了联众游戏平台,对于四国大战,胜利让我点赞,失败让我感叹。草草地写了《布局篇》《接战篇》《心志篇》三篇,作为军棋的主旨。这三篇自然有大话自夸的意思,但也可以看到四国军棋登堂入室的门径。 【注】指归,主旨,大原则,大方向也。作者有谦虚有自信,不失大师风度。 布局篇 【题解】此篇谈布局之原则、使用及错误案例。 【原】军打阵头,一人之下;令守城腹,万人之上。 【译】军长放在左右第一排,只有司令才能对付;司令放在三线腹地,无人能敌。 【注】此句谈军长开头和司令放三线的使用。城腹,铁路线之三线。 谈论任何一战术招数必讲利弊两面,再讲利弊所占比重,最后谈如何可扬长避短、化弊为利。军长一线,不利之处有容易被对手两司令白吃,有利之处为:需要进攻时候出击迅速,节省调动时间:防御对手师长旅长等进攻并伺机装令;对手明司令后军长进攻,简化局势。

注意事项有三,1.开局不明司令所在就军长进攻深入腹地,乃有勇无谋也。有棋友说,军长开局打明司令未必会输,这是对的。然而,被吃军长终究是大亏,此亏损与赢不会有正面影响。吃、兑、被吃,要尽量做到吃,此是公理。故一线军长进攻,应该明司令而后出击,这样方向明确,亏损小而利益大。2.一线军长可用炸弹保护。这样可以装师长炸弹,也可军长出击而炸弹不暴露。3.军长被撞后到九宫,有被司令反吃的可能,此军长可以破炸、进营,切勿到处游荡。 三线多为大子,这是从众多实战中得出的模糊判断。司令放三线,利是进可攻,退可守。弊是对手会从“三线多为大子”的模糊判断出发,空炸司令。所以,司令放三线,当注意遮挡防空炸,也可以装小。 【原】连压雷下,小而有用;旅贴旗旁,大却不当。 【译】布局时,连长放在地雷下,虽小而有用。旅长放在军棋旁边,虽然大却不妥当。 【注】此谈后两排之布局。布局中有两个被普遍接受的原则:一是攻守兼备大小子错乱有致,二是大子处于前三排。后两排一般可用小子加地雷防守,况且大子在前,足以为屏障。作者所说是也。 【原】师长炸弹,傻等司令;道中工兵,巧飞炸弹。 【译】师长炸弹这种阵型只会傻傻等着司令。主干铁路线上的工兵,能够巧妙地飞掉对手的炸弹。 【注】作者认为师长炸弹的阵型比较呆板。不少棋友也认为师长炸弹属于菜鸟阵型。我认为,阵型无所谓高手低手之分,只有利弊长短之分。师长炸弹之弊在于阵型稍显呆滞,易被看穿。师长炸弹之利在于防守稳固。况且,阵型之死活皆在于人,师长炸弹也可以师长装司令、师长出击等变招。为稳妥起见,师长炸弹也可以选用,重点在于灵活运用。 道中工兵,可以灵活出击,出对手所不意,是很好的思路。 【原】角上备炸,半作雷废;雷下藏令,一出计售。 【译】角上放炸弹,容易被对手当做地雷被废掉;地雷下放司令,司令一出计谋就成功了。 【注】此言角炸与雷下令。计售,计谋成功之意。由于作者行文求精炼与文字之优美,故容易只谈一面。这并非是作者偏颇,乃行文之限制。望读者留意。 角炸为比较常用之炸。不利之处是容易被小子或者工兵飞,好处是能够暗中掩护主干线。特别是军棋侧的角炸,最近用的频率较高。角炸很常见,也容易被忽略。用炸方要注意掩护炸弹,对手要注意角炸,先做封挡,走位精确,即可避开陷阱。 雷下令的布局,我是非常不赞同的。虽然有一定的战术构思,但是弊大于利。第一,主动权在对手手里。我方如在需动用司令时,雷下令无法调动。二者,如果对手不飞雷,而采取占营、困毙、从另一侧进攻等方法,雷下令徒呼奈何。 【原】 一字雷,坚亦易摧;连环炸,猛亦易毁。 双角雷,满营为要;窝心雷,空城更佳。

军旗游戏规则

军旗游戏规则 军棋,又称陆战棋。估计作为华人没有不知道什么叫做军棋,从小最先玩棋类的就是军棋吧。在这里是和大家一起回顾军棋多种多样的形式,各不相同的规则。也希望能够让现在独自玩着电子、电脑游戏的孩童们体会这种需要协作精神、友爱精神的棋类游戏的趣味。让军棋这种游戏继续发展下去。 军棋的子数:军棋每方共有25个子,司令、军长、军旗各一;师长、旅长、团长、营长、炸弹各二;连长、排长、工兵、地雷各三。军棋的子力:司令>军长>师长>旅长>团长>营长>连长>排长>工兵,大子遇到小子,小子拿掉,大子放在原位,炸弹碰到任何子力同时拿下,这是任何规则都遵循的。 军棋棋盘:军棋棋盘包含铁路线、公路线,每方包括5个行营、23个兵站、2个大本营。兵站是子力的摆放位置;铁路线是子力的快行线,只要在直线上或弧型弯路子力走步数不限;公路线是慢行线,每次只能移动一步;行营是子力的活的保护区,在行营中的子力可以免受其他任何子力的攻击,行营里的子每次只能移动一步;大本营,其中一个必然是军旗所在位置,另一个可以摆放其他任何子力。工兵行棋比较特殊,只要在铁路线上,在没有挡路的情况下,可以飞抵棋盘上任何位置。 军棋的摆法:原则上25个子可以摆放在棋盘除行营外的任何位置,但是对于一些特殊子力还有特别的限制。军棋:只能摆在两个大本营其中一个;地雷:只能摆在后两排除军旗占据一个大本营外任何11个位置;炸弹:不能摆在第一排的5个位置。军旗和地雷位置一旦固定出征后就不能够再移动。 军棋规则:针对于大本营,有进大本营子力能进能出的,也有能进不能出的;针对地雷可以分为弹簧雷(工兵飞雷雷下,工兵在;炸弹遇雷同时拿下;其他子力遇到地雷自动碰死拿下);炸弹雷(任何子力遇到雷同时拿下);针对于炸弹,有炸弹等同于其他子力按规矩行动的,也有炸弹满天飞(行子方式如同工兵)。针对行棋方式分为铁路线上只可直行或弧行弯路;可以走交叉线(棋盘上多出两道交叉线);可以拐直角弯路。总之这类规则很多,甚至可以自行规定。 军棋的胜负判定:夺取敌方军棋,一般夺棋就算胜;还有的需要夺棋运到自己大本营才能获胜。 军棋的下法:按照参加的人数分:二人对弈,俗称单挑,也是我们华人儿童最先接触的军棋初版;三人对弈,俗称三国鼎立;四人对弈,俗称四国大战。还有大家很少见到的六人对弈,又称六国大战。按照棋的摆法来分有明棋、暗棋、混棋之分。

四国军棋规则

2013~2014“硕博杯”体育联赛四国军棋游戏规则 由于目前没有官方制定的军棋规则,而各游戏平台和实战团体自行制定的规则差别又较大,因此建议取目前较为流行的规则作为四国军棋的暂定规则。 一、四国军棋的参加者 四国军棋由四人游戏、一人裁判,相对面的两人联合与另外两人交战。 二、识别棋子 四人分别执红、紫、蓝、绿四色棋子,实战与网络中也有黑、黄、白等色。每人配备二十五枚,军旗、司令、军长各一枚,炸弹、师长、旅长、团长、营长各两枚,连长、排长、工兵、地雷各三枚。 棋子的大小顺序依次为:司令、军长、师长、旅长、团长、营长、连长、排长、工兵。司令阵亡,军旗亮开。 地雷不能移动,工兵可以消除地雷,炸弹与地雷同去,其它棋子遇到地雷皆去。 炸弹和敌方任何棋子相遇则同归于尽,包括军旗。 军旗不能移动,如果被吃,全军覆没。 三、认识棋盘 棋盘中央为九宫,分别为四个星位、四个边宫和中间的中宫,中宫也称为天元。 星位的左右是把单线的进攻防守化成双线的进攻防守,又是控盘

的重要位置,占据星位具有战略意义。 行走路线包括公路线和铁路线。显示较细的是公路线,任何棋子在公路线上只能走一步。显示粗黑的为铁路线,工兵在无阻挡状况下可在铁路线上任意行走,其它棋子在铁路线上只能直走或经过弧形线,不能转直角弯。 棋子落点包括兵站、行营、大本营。行营是个安全岛,进入以后,敌方棋子不能吃行营中的棋子。己方五个行营分别是左前营、右前营、中营、左底营和右底营,军旗上方的底营又叫旗营。军旗必须放在大本营中,进入任何大本营的棋子不能再移动。 己方棋子落点横向共有六行,从上到下依次为锋线、二线、三线、四线、底线和端线。纵向两边分别为左边路和右边路,中间的为中路。锋线中路两边的兵站被称作棋眉,二线中路兵站叫咽部,三线中营两侧兵站为左腹和右腹,四线中路兵站叫脐部。边路底线的兵站叫角,靠近军旗一侧的称为旗角,另一侧称为虚角。角下面的兵站叫底,靠近军旗的叫旗底,另一侧叫虚底。两个大本营上面的兵站分别为左台、右台,军旗上面的又叫旗台,没摆军旗的大本营上叫虚台,两台中间的兵站叫台中,台中下面的兵站叫中底。 四、布局规则与行棋顺序 25枚棋子分别摆放在自己范围内的23个兵站和两个大本营中,炸弹不能放在一线,地雷只能放在最后两线,军棋只能放在大本营。 游戏开始后,依逆时针顺序行棋。 五、胜负判决

两国军旗

两国军旗 一、界面设计 下棋需要有棋盘,程序中通过在窗体激活时在图片框控件qi_pan上显示军旗棋盘图片文件。有了盘还需要有棋子,使用了以下如图5-6,图5-7中的图片表示棋子。另外还有R.bmp和G.bmp两个图片表示红方和绿方暗子。使用控件数组Qizi_Pic[]的Add方法加载了我们所需要的棋子图片控件并使用相应图片。 Qizi_Pic[]中下标i的含义是:如果i小于24,那么说明它属于红方的棋子,否则是绿方的棋子。同时Qizi_Pic[i]的tag属性保存了棋子在控件数组的索引号。 图5-6 红方军棋棋子图片 图5-7 绿方军棋棋子图片 在界面中要求用户输入对方IP、端口(本地及对方远端)。同时按图5-8添加“联机”、“重新开始”、“退出”、“保存布阵”、“读取布阵”、“开始对战”6个按钮以及一些题使用的标签。

图5-8 网络两人对战军棋设计界面 二、通讯协议设计 网络程序设计的难点在于与对方需要通讯。这里使用了UDP(User Data Protocol)。UDP是用户数据文报协议的简称,两台计算机之间的传输类似于传递邮件;两台之间没有明确的连接,使用UDP协议建立对等通信。这里虽然两者两台计算机不分主次,但我们设计时假设一台做主机(红方),等待其他人加入。其他人想加入的时候输入主机的IP。为了区分通信中传送的是“输赢信息”,“下的棋子位置信息”,“重新开始”等,在发送信息的首部加上代号。定义了如下协议:命令|参数|参数…… (1)联机功能 join| (2)对方棋子移动信息 move|x , y , idx, old_x, old_y,old_idx 其中:棋子移动的目标位置坐标(x,y),棋子移动的起始位置坐标 (old_x,old_y); old_idx是被移动棋子的控件数组索引号,

军棋战术

进攻还是防御? 四国最关键的是布局,任何战争中的军队,总要采取一定的组织结构形式。结构决定功能,在同样的战斗力结构基础上,相对优越合理的组织结构,必然可以发挥出更强大的战斗力。但战斗部队的结构是动态而不是静态的,在战斗过程中随着力量的消耗随时变化是必要的。 布局无外乎是攻击阵型和防御阵型。一般在高分区里攻击阵型使用的比较多一些,而在低分区里使用的防御阵型较多些。攻击阵型一般大头朝外,拼命冲锋,在开局就已经刺刀见红,碰到进攻型的棋手,可以在开局短短几十步棋之内,把铁路线血拼开,直接打入敌人的后方布雷区,这种闪击战对待新手往往非常奏效,趁着敌人立足未稳,一阵急冲锋,便可把敌人打的阵型大乱。类似于希特勒的闪电战,这种战法如果碰到老鸟后,往往因前面纠缠太凶,而到中盘时候只能靠旅团级的人龟缩防守,末盘更可想而知。而且你运兵冲锋的时候,你的铁路线往往也是洞开,碰到老鸟,一次绝地反击就够喝一壶的了。而防御性的棋手,会把大子全压在后,小子在前面试探或者辅以炸弹骚扰引诱对方大子。但是这种战法需要对方也使用同样的战法,如果遇到喜欢闪电战的老鸟,几轮冲锋下来,失地大半,旅团级以下的基层损失大半,虽然有大子殿后,但是也无法组织起象样的进攻。尤其在后盘,缺乏必要的兵力,往往被敌人压迫着打。其实这两种极端战法都有着缺陷。 毛主席曾经说过:进攻与防御是一对矛盾,两者既对立又统一,不可分割。失去一方,他方就不存在。说白了,进攻是消灭敌人的主要手段,但防御也不不能废的,如果纯进攻或者纯防御的话,在战术上都是败笔。只有攻与守合二为一,才能百战百胜。攻中有防,防中有攻,还在于两者的互相渗透。当进攻的时候,遇到敌人强大的预备队反击时,也要采取防御的形式,切不可刺刀见红,直接将大后方暴露给敌人。当防御战斗的时候也要适时发起反冲击,反击,阵前出击等攻势行动,或者把敌人放进来,运用薛岳的“天炉盖顶”战法,围歼敌人。历史上的著名将领,在打大规模战争的时候,一般会以一部兵力阻击穿插敌人隔断敌人,而以主力用于进攻。 什么是最好的阵法 克劳塞维茨说过:“防御的规则以进攻的规则为根据,而进攻的规则又以防御的规则为根据。根据我下的经验我认为,一般采取在军旗一侧部署优势兵力,旅团级以上的大子,大部集中一侧,另一侧没有部署军旗的铁路线,可以适当分布一些小子,辅助放上一至两个大子,分配给一个炸弹,起引诱骚扰的作用,如果遇到强大的进攻,可以考虑焦土政策。因为重要兵力在另一侧发动强有力的反击可以更有效。而工兵可以分配在第一线,但切不可分布在纵向铁路线上,必要的时候,可以直捣黄龙挖雷,或者撞炸弹。但是一定要在最核心保存好一个工兵,以免在战斗末期碰到三角雷束手无策。关于布雷就仁者见仁智者见智了,我觉得怎么布都能说的通,没有什么特别好的布法。炸弹一定要保存好一颗时刻准

相关主题
文本预览
相关文档 最新文档