練習問題3-7-2
チケットがある限りガチャを引き続けるプログラム(例題3-6-4)を改造して、★5が出た場合breakで撤退するプログラムを作りなさい。
function setup() {
let tickets = Math.floor(random(1 ,101)); // 所持チケット枚数
let n = 0; // 引いた回数
while (tickets > 0) {
n++;
r = random();
if (r < 0.03) {
print(n + "回目: ★★★★★");
break;
} else if (r < 0.03 + 0.07) {
print(n + "回目: ★★★★");
} else if (r < 0.03 + 0.07 + 0.15) {
print(n + "回目: ★★★");
} else if (r < 0.03 + 0.07 + 0.15 + 0.30) {
print(n + "回目: ★★");
} else {
print(n + "回目: ★");
}
tickets--;
}
if(tickets==0){
print("チケットがなくなったのでガチャを終了します。");
}else{
print("星五が出たので終了しました。")
}
print("合計"+n+"回引きました。")
}
それと工夫なのかは分かりませんが、一応星五が出たか、チケットがなくなったかを判別できるようにしています。
練習問題3-7-4
先の例題だと、ユーザーから不満が出ると思われます。なぜでしょう?先生に説明しなさい。
今回も教室には居ないのでここに書きます。
プログラムを見て私が思ったのは、10回ずつ回すのではなく、持っているチケットをすべて使ってしまうところです。
それ以外には思いつきませんでした。違和感を感じたところで言えば、★1がいないことですが、それは最近のゲームではよくあることですし、プログラム的にも必要がなかったと考えます。