Web Images Videos Maps News Shopping Gmail more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Group info
Members: 718
Language: English
Group categories:
Computers > Programming
More group info »
Recent pages and files
编一个战斗游戏学习ERLANG    
项目起源背景:

最近刚开始学ERLANG, 感觉很有意思。 我是非常非常新的新手。 新到还没完全琢磨明白变量不能重复赋值后(这个颠覆了原来所有的开发经验)如何
写程序。。。。

学一个东西最好是写点简单的小程序,然后逐步深入,直到完全掌握。  所以打算做一个以下描述的小程序, 也希望有和我差不多的新手或者稍微高一点的新
手一起来做,共同学习。 高手可以旁观,给我们一些指导。 但不要帮我们做,否则就失去自己琢磨的学习过程, 知识理解不深刻。 


文档管理规定: 

这里的文档貌似无法用revision(没有比较功能) , 也不能放comment .  参与的兄弟们修改后,用颜色标一下。 或者我们去开一个google doc  来管。



项目场景:


我设计的一个场景是做一个战斗竞赛的小程序。 该程序分为两个部分:

1. 战场控制主程序   battle field - rule  (我狂郁闷, 链接死活不对?????, 大家自己去点那个文章吧)
    a.  该主程序负责管理一个10 * 10 的战场; 启动时在两边各存在两支部队,每个部队10个战士,每个战士占一个格子
    b.  主程序通过一个protected  的 ets  表, 管理双方部队位置和状态
    c.  主程序启动两个战斗决策进程, 并把自己传给这两个进程,以便决策进程将决定的指令传回主程序
    d.  当主程序收到战斗决策进程的指令,包括移动和攻击两个动作。
    e.  判断动作是否合规, 比如不能攻击自己人, 不能移动到一个有人的格子等。
    f.   按照指令更改战士的位置或者状态, 计算对被攻击者造成的伤害等。
    g.  将动作是否完成消息传回发送指令的进程 


2. 战斗决策进程
    a.  战斗决策进程分为红,蓝两方。 各自控制上述一方的部队。
    b. 根据某种算法计算出如何指挥己方的10个战士打败对方的战士
    c. 把决策的指令通过消息发给主进程,由主进程执行该动作
    d. 接受主进程的反馈信息,然后做某种行为。(也可以不做处理) 



最好玩的是第二部分。 主程序搞好后, 其实把第二部分的开发留给大家(主程序也是大家一起琢磨写)。 每个人都可以根据自己的想法设计一个控制算法;
然后我们把两个算法作为红,蓝方的控制程序,启动起来。 然后看看哪边会赢(杀掉对方所有的战士)。  赢的为擂主, 看看别人是否能够做出更好的算法
来战胜这个擂主。 



这个比赛过程可以一直进行下去。 其实也在不断挑战运用ERLANG 的极限。 未来可以考虑比如:引入能够加血的牧师, 将对战部队增加到1000
人,扩大战场尺寸等增加决策难度和提高快速并行处理的要求。 


发这个贴看看有没有有兴趣一起试试的《新手》, 和愿意提供友情指导的老手。 老手欢迎等我们主系统做好后,做自己的战斗决策程序,参加比赛。



下一步安排:

1. 首先需要把战场主程序的具体规则设计出来
2. 编写战场主程序, 同时编写用于测试的最简单的战斗决策进程
3. 各自编写自己的战斗决策进程, 完成后,进行擂台赛
Version: 
Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google