[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 qzwqzw 于 2011-3-29 09:38 编辑

程序写的非常不错!
有此功底很不简单。
还有几个问题

积分计算还有些问题
比如在一方还有75分时
系统即判定这一方为负
——————————
应该是下面这句的问题
for %%i in (!%~1:~1,1!) do if !score%%i! lss 0 set over=1
改为下面这样就可以了
for %%i in ("!%~1:~1,1!") do if !score%%~i! lss 0 set over=1
另外从全文中看不出特意指定over变量的意义
应该可以直接在lss 0后显示信息并退出
退出前最后加pause暂停或者是否重开的选择

在玩家(犀利哥)为原告或证人时
不论如何输入
都会继续有罪审判流程
——————————
应该是call :input 原告 的问题
程序在:input中 goto :eof跳转是没有用的
仍然回到了审判主流程
所以应该使用一个全局性的有罪标记来决定流程走向
另外看到:input中goto :eof经常成对使用
这应该是没有意义的
而goto :here却不是每段都有
感觉很奇怪
所以有时候在玩家作为证人或加减输入错误时
不会提示重新输入

程序判断逻辑需要继续完善
根据利益最大化原则
要让自己尽量少受损失多得利益
要让对手尽量多受损失少得利益
有几种情况需要考虑
1
当对手A同为被审判者、法官和加减官时
A会被判有罪但不仅不会处罚反而会奖励
这时本身作为花样官或轻重官
就不能选择最大倍数
而应选择最小倍数
2
当对手A为高分(比如350)
对手B为低分(比如30)
在A为被审判者B为法官或警察
这时本身作为原告、证人、加减、花样或轻重
就应该选择最小惩罚
而非最大惩罚

最后建议将花样官的积分策略改变一下
*1到*5的倍数有些大了
很多情况下通常一个判罚就可能淘汰对手
这就丧失了游戏的平衡性了
可以将花样官的判罚移至最后(即轻重官之后)
改为提取或去除当前惩罚积分的某一位
比如150去掉十位得到10
或者去掉百位得到50
作为最后的惩罚积分
这样不仅增加了游戏平衡性
也使前后玩家可以相互制约
促使玩家根据现实情况选择最有利于自身的策略
而不是仅仅选择最高和最低的分值和倍数
从而也提高了游戏的趣味性
天的白色影子

TOP

嗯,这个continue名字倒是跟我最初的想法不谋而合
只是你忘记了在证人发言前将continue重新清空
导致如果玩家作为原告决定起诉后
再玩家轮到作为证人不证明后仍然会进入有罪流程

解决的方法有两个
1是在玩家选择前或者选择否时将continue置空
2是改用break变量,再玩家选择否后将break置真
天的白色影子

TOP

返回列表