首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mathematica if条件

Mathematica if条件
EN

Stack Overflow用户
提问于 2016-12-13 17:48:07
回答 2查看 1.4K关注 0票数 1

我正在尝试做一个if语句来测试变量m是否等于game1或game2,以及它是否显示为两步游戏,以及它的game3或game4是否显示为一步游戏。

代码语言:javascript
复制
 game1 = Image[]
 game2 = Image[]
 game3 = Image[]
 game4 = Image[]

以上4个变量被分配给4个不同的图像。

代码语言:javascript
复制
 m := RandomChoice[{game1, game2, game3, game4}];

 If[m === game1 || game2 , InputString["This is a two move game"], 
 InputString["This is a one move game"]] 

这是完全失败的。4个游戏变量被分配给图像,我们需要显示图像并弹出一个输入框

这是我想出的另一个选择,也失败了。

代码语言:javascript
复制
 m := RandomChoice[{game1, game2, game3, game4}];
If[m == game1 || game2 , InputString["This is a two move game"]];
If[m == game3 || game4 , InputString["This is a one move game"]]

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2016-12-13 21:08:01

不能使用以下语法:m === game1 || game2

例如,您应该使用1 == 2 || 1 == 3而不是1 == 2 || 3

但是,您多次使用m,每次使用它时,它都会发生变化。所以你需要修复m,例如

代码语言:javascript
复制
m := RandomChoice[{game1, game2, game3, game4}];
a = m;
If[a == game1 || a == game2 , InputString["This is a two move game"]];
If[a == game3 || a == game4 , InputString["This is a one move game"]]
票数 2
EN

Stack Overflow用户

发布于 2016-12-13 22:12:41

代码语言:javascript
复制
moves01 = Thread[{game3, game4} -> "one move game"]
moves02 = Thread[{game1, game2} -> "two move game"]
moves = Association@Catenate[{moves01, moves02}]
m := RandomChoice[{game1, game2, game3, game4}];
moves[m]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41117944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档