【问题】GM里有没有能解方程的命令或函数啊?
gamemaker吧
全部回复
仅看楼主
level 5
bengorilla 楼主
想做一个“输入一个一元一次方程,然后自动解出未知数”的游戏
2014年11月17日 04点11分 1
吧务
level 13
这是游戏还是工具……
无论哪种底层工具都不会直接支持“求解”运算的,需要在制作过程中用现有的方法进行计算。
如一元一次方程Ax+B=C解x就应该是x=(C-B)/A。在编程时除了选择正确的计算方法外,还需要进行很多判断(如此处A不能为0),如果LZ想解多元、多次或者是非标准格式的方程……那就要靠编程人(也就是LZ)开阔思路,怎么转化格式,怎么带入多元、高次的求解公式,有哪些条件需要预先判断。
2014年11月17日 05点11分 2
整式运算也不行?列出来的式子多种多样,靠认为编程解几乎是不可能的,比如3x=6,和2x+x=6或者3x-1=5,这些各种各样的列法如果不能识别,肯定不能编程去按套路解
2014年11月17日 10点11分
吧务
level 13
不是编程做不到,而是以LZ现有的知识储备编不出那样的程序。不同的编程语言做法会有区别,但只要编程人思维足够开阔和严谨,一些通常认为“不可能做到”的事都能做出来。
举例来说,对于不确定具体格式的一元一次方程
2X+6X-3+25-4=3X+X
将其整体作为字串输入后,可以用程序拆成单个独立的字符(GML的处理方法请参照《字符串处理函数
》一节);随后要挑出来,哪些元素是未知的(X),哪些是已知的(如数字),哪些是运算符;非运算符的字符相邻时,是相乘关系(3X)还是连数关系(25);程序“读懂”算式以后,按乘除比加减更优先的原则,进行化简;最终用标准公式求值。
嗯,大意就是,化简过程程序不是不能做到,但写化简程序的难度……解100次同等水平的方程都解出来了。
2014年11月18日 05点11分 3
解方程用matlab就很方便,问题是现在只能用GM里面的语言,顺便问一下,GM的脚本里用的是什么语言啊?
2014年11月18日 05点11分
回复 bengorilla :类似C
2014年11月18日 06点11分
回复 bengorilla :GameMaker Language,简称GML
2014年11月18日 08点11分
回复 q糖豆p :这个语言跟程序员说了都不知道……
2014年11月19日 01点11分
1