演習課題「フォームで、RPGの戦闘シーンを作る」
右の環境には、SinatraでRPGの戦闘シーンのプログラムが作成してありますが、敵の名前が表示されません。battle.rbを修正して、@enemies変数に下記の値を代入して、敵の名前を表示するように修正してください。
"スライム", "モンスター", "ドラゴン"
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、サーバーを起動し、問題文に関するページにアクセスできる状態にしてください。
#05:具体例:フォームで、RPGの戦闘シーンの作ろう
ここでは、Sinatraによるフォームの具体例として、RPGの戦闘シーンを作ります。先ほどのチャプターで作ったフォームをベースにして、ドロップダウンメニューでプレイヤーを選択できるようにしましょう。
# フォームで、RPGの戦闘シーンを作る
require 'sinatra'
require 'sinatra/reloader'
require 'erb'
before do
@players = ["勇者", "戦士", "魔法使い", "忍者"]
end
get '/' do
@message = "新たなモンスターが現れた!"
erb :battle
end
post '/' do
@name = params[:name]
@message = "#{@name}は、モンスターと戦った!"
erb :battle
end
<h1>RPGの戦闘フォーム</h1>
<p><%= @message %></p>
<form action="/" method="post">
<label for="name">プレイヤー</label>
<select name="name">
<% @players.each do |player| %>
<option value="<%= player %>"><%= player %></option>
<% end %>
</select>
<p></p>
<button type="submit">たたかう</button>
</form>
<form action="/" method="get">
<input type="submit" value="にげる!">
</form>