- 博客(0)
- 资源 (2)
- 收藏
- 关注
利用αβ剪枝和king-queen-move估值实现的亚马逊棋博弈程序
该程序仅为c++语言算法,不包含界面。
行棋记录:包含六个数字 移动前坐标,移动后坐标,释放障碍坐标
输入是回合数和从开始到现在的双方行棋记录,输出是下一步的一条行棋记录。
具体的输入输出请参考北京大学人工智能实验室网站botzone下的维基条目。
由于botzone的时间限制在1秒内,该程序对不同阶段的搜索层数做了限制,可以在create函数的前几行修改限制。
2019-01-17
一个能够实现变量赋值和表达式计算的四则乘方括号运算计算器
calculator.cpp
能够实现四则运算和乘方运算、赋值及报错的计算器
2018-12-4
--------------------------------------------------
本程序的输入有三类:指令、赋值语句和计算式
这三类输入均允许在基本元素之间添加任意数目的空格
当出现错误时,本程序会显示Error并给出报错原因
·指令
指令包含以下三个
exit 退出程序
printvar 输出所有已定义的变量及其值
emptyvar 清除所有变量
所有变量名不能与指令重名
·赋值语句
基本格式为 变量名=数值
其中“数值”可以是一行计算式
·计算式
所有非指令和赋值语句都会作为计算式进行计算
本程序可以对输入的一行计算式的值进行计算并输出答案
按照题目要求,若结果为整数,将输出整数;若结果为浮点数,将保留两位小数
计算式中可以包含变量、数字和运算符号
计算式直接以运算符开头会报错“出现连续的运算符”,但如果以+-直接开头会被认作数的正负符号
--------------------------------------------------
输入的基本元素包括变量、数字和运算符号
·变量名
变量名必须以字母或下划线开头,由字母、数字或下划线组成,不能与指令重名
·数字
可以是整数或者小数,当然也包括用/表示的分数
暂不支持除十进制外其他进制的输入
支持.23这样的省略整数部分0的输入
支持32.这样的输入
但是.不会被认为是0而会报错
·运算符号
包括 加号+ 减号- 乘号* 除号/ 括号( ) 乘方^
其中除数不能为零
乘方的底数是负数时,指数需要是整数
零的零次幂没有意义
--------------------------------------------------
请注意
请在输入时务必使用英文输入或选择半角字符!
当语句中出现多个错误时,只会提示最先发现的错误
与c/c++表达式计算不同的地方:
本程序输出时会将整数相除产生的浮点数自动进行类型转换成浮点数,也会将浮点数运算得到的整数自动类型转换成整数,也就是说1/2=0.50,2.0/1.0=2(c++的自动取整真的很蠢)
c/c++为了避免与函数冲突,不允许a(b+c),2(3+1)这样的写法,而本程序会默认在括号前进行了乘法运算,即2(3+1)=2*(3+1)=8,a(b+c)=a*(b+c)
cmath中的pow函数对于0的0次方会返回1,但是0的0次方是没有意义的,本程序会对0^0报错
鉴于c++支持+-+-+-1=-1,但是出现连+或连-时会报错的混乱情况,本程序允许在数字和变量前加一个+或-号用来变号,即2+-1 3*-x -3++2是支持的,但是多于一个的额外+-号将报错,即3+-+2 +-1是不支持的
--------------------------------------------------
2018-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人