超初歩的なあっち向いてホイゲーム作りました
はじめに
今日は、入門 Sinatraと、Webを支える技術を読み進めていました。
入門 SinatraのWebアプリケーションの簡単な導入として、じゃんけんゲームが紹介されておりました。
今日はSinatraの基本を学んだということで、それを少し変えて超初歩的なあっち向いてホイゲームをアウトプットとして作ってみました。
その始まりから完成までをまとめてみたいと思います。
手順
1. bundle init
から始まる
まずは、適当なディレクトリを作成します。
❯ mkdir sinatra_output_game ❯ cd sinatra_output_game
そしたら、bundle init
を行います。これでGemfile
を作成してくれます。
実行すると以下のようになるはずです。
❯ bundle init Writing new Gemfile to Desktop/fjordbootcamp/sinatra_output_game/Gemfile
2. 使用したいGemをGemfile
に記述する
Gemfile
を開き、以下の2つのGemを記述します。sinatraは言わずもがなですが、sinatra-contribは後述するbundleを一々再起動させなくても自動で修正を行わせるために必要なGemです。
gem "sinatra" gem "sinatra-contrib"
記述したら、bundle install
を行います。これで記述したGemがインストールされます。
❯ bundle install --path vendor_bundle Fetching gem metadata from https://rubygems.org/.......... Bundled gems are installed into `./vendor_bundle`
3. game.rb
ファイルを作成し、コードを書く
記述したコードは以下のようになります。
require "sinatra" require "sinatra/reloader" # ルート処理をする前にプレイヤーとコンピューターが出す手の配列を作成します。 before do content_type :txt @direction = ["right", "left", "up", "down"] end # point/の後にプレイヤーは指す方向を入力します。 get "/point/*" do |direction| player_point = direction # もし、有効でない方向を指したら以下のような文が出ます。 if !@direction.include?(player_point) halt 403, "You must throw one of the following: #{@direction}" end # コンピュータが向く方向は有効な方向からランダムに選ばれます。 computar_look = @direction.sample # プレイヤーの指した方向とコンピュータの向いた方向が一致したならプレイヤーの勝利です!! if player_point == computar_look "You Win!!" else "Computer looked #{computar_look}. Try again!!" end end
4. bundle exec
で実行してみます。
以下のように実行してみます。
❯ bundle exec ruby game.rb
そして、 http://localhost:4567/point/up にアクセスしてみると・・・
残念、外してしまいました💦
最後に
以上のように、入門 Sinatraで紹介されていた、じゃんけんゲームを少し変えて、超初歩的なあっち向いてホイゲームを作ってみました。
このアウトプットを通して、ルーティングというものがどういうものなのか、どのように行えば良いかが少し分かり始めたような気がします。 明日もSinatra課題に取り組んでいきたいと思います🔥