D&D 风格的随机机会结果与 if/then 按钮点击语句 - 老师试图为 类 制作 activity
D&D style random chance outcomes with if/then statements on button click - teacher trying to make activity for classes
我是一名高中老师,我想在个人理财部门为我的学生做一个 activity。为了让我的问题有意义,我必须给你一些解释,因为我在脚本编写方面接受的唯一培训是我通过 google、堆栈和搞砸自己学到的东西。
我正在制作一种“生活游戏”风格 activity 以配合我的经济学学生的预算创建课程。我通过在空白单元格中着色,在 sheets 文档的第一页上制作了一个基本的游戏板。然后我在顶部放置了一个 t运行sparent 框来附加脚本。当学生单击该框时,它 运行 就是脚本。弹出一个带有 yes/no 按钮的警告框,并为他们提供一个可供选择的场景。根据所做的选择,他们将赚取或支出收入,然后自动记录在“银行账户”中sheet。
到目前为止,我所有的简单脚本看起来都很丑陋,但它们都有用 - 就像我的烹饪一样。但我现在很困惑。
主要问题是我正在编写的当前脚本。场景如下:当学生单击该框时,会弹出带有 yes/no 按钮框的警报。文字是——“你被邀请加入搏击俱乐部。你可以接受或拒绝邀请。如果你接受并赢得战斗,你将获得 300 美元。如果你输了,你将不得不支付医院 200 美元来修复你的脸.你会打架吗?
这是我想要发生的事情:
如果“是”,则得到一个介于 1,2 之间的 运行dom 整数。
如果 2,警报弹出“愤怒的拳头”,奖金被添加到银行sheet(我知道怎么做那部分)
如果为1,alert弹出“Fists of failure”,损失从银行扣除sheet ('')
如果没有,另一个警告说“勇敢的罗宾爵士 运行 离开”
我不知道如何将按钮点击与 运行dom 整数选择相关联,然后让 if/thens 起作用。当我 运行 我拥有的东西时,它的表现就好像每个选项都被选中了,而不是一个。
这是我的问题代码。随意嘲笑它,它知道自己长什么样。非常感谢您能给我的任何帮助!
function arena(arena) {
var bankSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Bank account");
var lr = bankSheet.getLastRow();
var ui = SpreadsheetApp.getUi();
var result = ui.alert(
'You are invited to join Fight Club. You can accept or refuse the offer. If you accept and win your fight, you will earn 0. If you lose, you will have to pay the hospital 0 to fix your face. Declining the fight has no effect.',
'will you fight?',
ui.ButtonSet.YES_NO);
if (result == ui.Button.YES) {
getRndInteger(1,2)
if (result === 1)
ui.alert('You enter the ring, raise your fists, and wake up in the hospital.');
bankSheet.getRange(lr+1,4).setValue( 200 );
bankSheet.getRange(lr+1,3).setValue( "Fists of Failure" );
bankSheet.getRange(lr+1,8).setValue( "1" );
if (result === 2)
ui.alert('You enter the ring, raise your fists, and conquer.');
bankSheet.getRange(lr+1,2).setValue( 300 );
bankSheet.getRange(lr+1,1).setValue( "Fists of fury" );
bankSheet.getRange(lr+1,7).setValue( "1" );
}
if (result == ui.Button.NO) {
ui.alert('Brave Sir Robin ran away.');
bankSheet.getRange(lr+1,2).setValue( 0 );
bankSheet.getRange(lr+1,1).setValue( "escape" );
bankSheet.getRange(lr+1,7).setValue( "1" );
}
}
我认为您的问题出在逻辑检查上(使用三等号 ===
而不是双等号 ==
)。而且,您可以使用 if else if
.
使检查更清楚
function arena(arena) {
var bankSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Bank account");
var lr = bankSheet.getLastRow();
var ui = SpreadsheetApp.getUi();
var userAnswer = ui.alert(
'You are invited to join Fight Club. You can accept or refuse \
the offer. If you accept and win your fight, you will earn 0. \
If you lose, you will have to pay the hospital 0 to fix your \
face. Declining the fight has no effect.',
'will you fight?',
ui.ButtonSet.YES_NO);
if (userAnswer == ui.Button.YES) {
var fightResult = getRndInteger(1, 2);
if (fightResult == 1) {
ui.alert('You enter the ring, raise your fists, and wake \
up in the hospital.');
bankSheet.getRange(lr + 1, 4).setValue(200);
bankSheet.getRange(lr + 1, 3).setValue("Fists of Failure");
bankSheet.getRange(lr + 1, 8).setValue("1");
} else if (fightResult == 2) {
ui.alert('You enter the ring, raise your fists, and conquer.');
bankSheet.getRange(lr + 1, 2).setValue(300);
bankSheet.getRange(lr + 1, 1).setValue("Fists of fury");
bankSheet.getRange(lr + 1, 7).setValue("1");
} else {
// shouldn't get here!
}
} else if (userAnswer == ui.Button.NO) {
ui.alert('Brave Sir Robin ran away.');
bankSheet.getRange(lr + 1, 2).setValue(0);
bankSheet.getRange(lr + 1, 1).setValue("escape");
bankSheet.getRange(lr + 1, 7).setValue("1");
}
}
我是一名高中老师,我想在个人理财部门为我的学生做一个 activity。为了让我的问题有意义,我必须给你一些解释,因为我在脚本编写方面接受的唯一培训是我通过 google、堆栈和搞砸自己学到的东西。
我正在制作一种“生活游戏”风格 activity 以配合我的经济学学生的预算创建课程。我通过在空白单元格中着色,在 sheets 文档的第一页上制作了一个基本的游戏板。然后我在顶部放置了一个 t运行sparent 框来附加脚本。当学生单击该框时,它 运行 就是脚本。弹出一个带有 yes/no 按钮的警告框,并为他们提供一个可供选择的场景。根据所做的选择,他们将赚取或支出收入,然后自动记录在“银行账户”中sheet。
到目前为止,我所有的简单脚本看起来都很丑陋,但它们都有用 - 就像我的烹饪一样。但我现在很困惑。
主要问题是我正在编写的当前脚本。场景如下:当学生单击该框时,会弹出带有 yes/no 按钮框的警报。文字是——“你被邀请加入搏击俱乐部。你可以接受或拒绝邀请。如果你接受并赢得战斗,你将获得 300 美元。如果你输了,你将不得不支付医院 200 美元来修复你的脸.你会打架吗?
这是我想要发生的事情: 如果“是”,则得到一个介于 1,2 之间的 运行dom 整数。 如果 2,警报弹出“愤怒的拳头”,奖金被添加到银行sheet(我知道怎么做那部分) 如果为1,alert弹出“Fists of failure”,损失从银行扣除sheet ('') 如果没有,另一个警告说“勇敢的罗宾爵士 运行 离开”
我不知道如何将按钮点击与 运行dom 整数选择相关联,然后让 if/thens 起作用。当我 运行 我拥有的东西时,它的表现就好像每个选项都被选中了,而不是一个。
这是我的问题代码。随意嘲笑它,它知道自己长什么样。非常感谢您能给我的任何帮助!
function arena(arena) {
var bankSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Bank account");
var lr = bankSheet.getLastRow();
var ui = SpreadsheetApp.getUi();
var result = ui.alert(
'You are invited to join Fight Club. You can accept or refuse the offer. If you accept and win your fight, you will earn 0. If you lose, you will have to pay the hospital 0 to fix your face. Declining the fight has no effect.',
'will you fight?',
ui.ButtonSet.YES_NO);
if (result == ui.Button.YES) {
getRndInteger(1,2)
if (result === 1)
ui.alert('You enter the ring, raise your fists, and wake up in the hospital.');
bankSheet.getRange(lr+1,4).setValue( 200 );
bankSheet.getRange(lr+1,3).setValue( "Fists of Failure" );
bankSheet.getRange(lr+1,8).setValue( "1" );
if (result === 2)
ui.alert('You enter the ring, raise your fists, and conquer.');
bankSheet.getRange(lr+1,2).setValue( 300 );
bankSheet.getRange(lr+1,1).setValue( "Fists of fury" );
bankSheet.getRange(lr+1,7).setValue( "1" );
}
if (result == ui.Button.NO) {
ui.alert('Brave Sir Robin ran away.');
bankSheet.getRange(lr+1,2).setValue( 0 );
bankSheet.getRange(lr+1,1).setValue( "escape" );
bankSheet.getRange(lr+1,7).setValue( "1" );
}
}
我认为您的问题出在逻辑检查上(使用三等号 ===
而不是双等号 ==
)。而且,您可以使用 if else if
.
function arena(arena) {
var bankSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Bank account");
var lr = bankSheet.getLastRow();
var ui = SpreadsheetApp.getUi();
var userAnswer = ui.alert(
'You are invited to join Fight Club. You can accept or refuse \
the offer. If you accept and win your fight, you will earn 0. \
If you lose, you will have to pay the hospital 0 to fix your \
face. Declining the fight has no effect.',
'will you fight?',
ui.ButtonSet.YES_NO);
if (userAnswer == ui.Button.YES) {
var fightResult = getRndInteger(1, 2);
if (fightResult == 1) {
ui.alert('You enter the ring, raise your fists, and wake \
up in the hospital.');
bankSheet.getRange(lr + 1, 4).setValue(200);
bankSheet.getRange(lr + 1, 3).setValue("Fists of Failure");
bankSheet.getRange(lr + 1, 8).setValue("1");
} else if (fightResult == 2) {
ui.alert('You enter the ring, raise your fists, and conquer.');
bankSheet.getRange(lr + 1, 2).setValue(300);
bankSheet.getRange(lr + 1, 1).setValue("Fists of fury");
bankSheet.getRange(lr + 1, 7).setValue("1");
} else {
// shouldn't get here!
}
} else if (userAnswer == ui.Button.NO) {
ui.alert('Brave Sir Robin ran away.');
bankSheet.getRange(lr + 1, 2).setValue(0);
bankSheet.getRange(lr + 1, 1).setValue("escape");
bankSheet.getRange(lr + 1, 7).setValue("1");
}
}