読者です 読者をやめる 読者になる 読者になる

spangled shalalala blog

諦めたらそこで試合終了だよ。

Ruby始めて2時間の初心者だけど指スマのゲームを作ってみた

ふと思い立ったのでRubyを始めてみた。

環境を準備してHello,world!を表示させた後せっかくなら何か作ろうと思い、指スマを作ってみました。

指スマというのは指を使った遊びで「いっせーのイチ!」みたいな感じで親指を上げるゲームです。
上げた指が宣言と同じなら片手を下げることができて、先に両手が下がったほうが勝ちというルールです。
詳しくはこちらを参考
指スマ?いっせーのせ? あのゲーム、何て言ってた? - Jタウン研究所 - Jタウンネット 東京都

書いたコードはこちら。冗長なのは堪忍どす。。。

cntMe = 2
cntEnemy = 2
myTurn = true
turn = 1

while true
    print "ターン: #{turn}\n"

    if myTurn == true then
        print "あなたのターンです。\n"
    elsif myTurn == false then
        print "相手のターンです。\n"
    end

    print "指スマ: "
    input = gets.chomp

    if /^[0-9]+$/ =~ input then
        inputNumber = input.to_i
    else
        print "数字を入力してください。\n"
        next
    end

    if (inputNumber > 4) || (inputNumber < 0) then
        print "入力する数字は0〜4にしてください\n"
        next
    end

    resp = rand(5)

    puts("自分の入力: #{inputNumber}")
    puts("相手の入力: #{resp}")

    if myTurn == true then
        if inputNumber == resp then
            cntMe-=1
        end
        myTurn = false
    elsif myTurn == false then
        if inputNumber == resp then
            cntEnemy-=1
        end
        myTurn = true
    end

    puts("自分の残機: #{cntMe}")
    puts("相手の残機: #{cntEnemy}")

    if (cntMe == 0) || (cntEnemy == 0) then
        if cntMe < cntEnemy then
            print "あなたの勝ちです。\n"
        else
            print "あなたの負けです。\n"
        end
        print "FINISH.\n"
        exit(0)
    end

    puts
    turn+=1
end

調べながら作ってだいたい1時間ちょっとで作れた。
時間かかりすぎたので反省。。。

たのしいRuby第4版
たのしいRuby第4版
posted with amazlet at 15.10.10
SBクリエイティブ (2015-04-24)
売り上げランキング: 4,892