【無駄の極み】じゃんけん関数とあっち向いてホイ関数【つくってみた】

投稿者:User icon mini PAPEL3 投稿日:2020/12/05 23:55

今年今月いっぱいで終了するFlashですが…悪あがきです(?)。

そういえば、caseの中にcaseなどを併用すると変数の中身を入れても反応してくれなかったりするんですよね。どゆこと、、、
あとはcase文のwhen条件で、||(または)や、&&(とともに(?))って使えないんでしょうか…時々変数に中身が入らなかったりするんですよねえ…
質問掲示板に投げとけ!って話ですけどね(((
使われてない変数ですってエラーでしょっちゅう出てくるの、ちゃんと入れてるのに機能してくれてない!ってことが多々あってホーントヤンナッチャイマス
愚痴はともかく、case文は数字だけじゃなく文字列でも機能してくれたことに今更感動しているこの頃です。

余談もさておき、とりあえず置いておきます。

#じゃんけん関数 第一引数 0=最初はグー 1=あいこ続行
def janken(ja)
kaesu = createArray()
rival = rand(3)
case ja
when 0
jabun = "最初はグー、じゃんけん…"
when 1
jabun = "あいこで…"
end
case speakWithSelect(3,"グー","チョキ","パー", 
    jabun)
  when 0
    dasu = 0
  when 1
    dasu = 1
  when 2
    dasu = 2
end

#0=グー 1=チョキ 2=パー

case rival
when 0
kaesu[1] = "グー"
when 1
kaesu[1] = "チョキ"
when 2
kaesu[1] = "パー"
end

case dasu
when 0
kaesu[0] = "グー"
when 1
kaesu[0] = "チョキ"
when 2
kaesu[0] = "パー"
end

#勝負の判定
if rival == 0 && dasu == 2
kaesu[2] = "勝ち"
elsif rival == 1 && dasu == 0
kaesu[2] = "勝ち"
elsif rival == 2 && dasu == 1
kaesu[2] = "勝ち"
elsif rival == dasu
kaesu[2] = "あいこ"
elsif rival == 0 && dasu == 1
kaesu[2] = "負け"
elsif rival == 1 && dasu == 2
kaesu[2] = "負け"
elsif rival == 2 && dasu == 0
kaesu[2] = "負け"
end
speak("あなたの出した手:" + kaesu[0] + "\n相手の出した手:" + kaesu[1])

return kaesu
end

#四方向勝負関数
def attimuiteHoi()
kaesu = createArray()
rival = rand(4)
case speakWithSelect(4,"↑","→","←","↓", 
    "あっち向いて…")
  when 0
    sasu = 0
  when 1
    sasu = 1
  when 2
    sasu = 2
  when 3
    sasu = 3
end

#0=上↑ 1=右→ 2=左← 3=下↓

case rival
when 0
kaesu[1] = "↑"
when 1
kaesu[1] = "→"
when 2
kaesu[1] = "←"
when 3
kaesu[1] = "↓"
end

case sasu
when 0
kaesu[0] = "↑"
when 1
kaesu[0] = "→"
when 2
kaesu[0] = "←"
when 3
kaesu[0] = "↓"
end

#勝負の判定
if rival == sasu
kaesu[2] = "勝ち"
else
kaesu[2] = "負け"
end

speak("あなたの向き:" + kaesu[0] + "\n相手の向き:" + kaesu[1])
return kaesu
end



どちらも配列になっており、[0]にプレイヤーの出した手、 [1]に対戦相手の手、 [2]に結果が文字列で記録されます。
相手の出す手or向きは乱数を使っていますが、確率を操作して個性を出すのも面白そう

使用例


#じゃんけん関数の使い方
syobu = 0
loop = true
while loop
don = janken(syobu)
case don[2]
when "勝ち"
speak("あなたの勝ちです。")
loop = false
when "あいこ"
syobu = 1
when "負け"
speak("あなたの負けです。")
loop = false
end
end
#ループによりあいこで勝負をやり直せますが、あいこで勝負をつけることも可能にしています。

#あっち向いてホイ関数の使い方
hoisa = attimuiteHoi()
case hoisa[2]
when "勝ち"
speak("あなたの勝ちです。")
when "負け"
speak("あなたの負けです。")
end
#あっち向いてホイは勝ちか負けのみになります。乱数だと勝てる確率が4分の1になります


RPG系は使えます。ノベルゲームにもまだ試していませんが使えると思います。
バグがあれば報告してください。

コメントする

コメントするには、ログインする必要があります。

コメント一覧

コメントはありません。