新入社員、最終段階に入る
- 2016.07.01
- 新入社員研修
こんにちは。シンメトリック新入社員の田中です。今回はテスト、バグ修正、デザインを主にやっていきました。
新入社員、ゲームのロジック部分で間違える
オセロゲームとして一通り実装したので、最終的な完成に向けて、テストとそれで見つかったバグ修正を行っていきました。 実際に何度も対戦したりして、動作におかしい所がないか調べたところ、ゲームのロジック部分に大きなミスがありました。
それはひっくり返す処理の部分でした。
今までのコードでは、クリックされた座標の先に相手の駒がある、かつその先に自分の駒がある場合はひっくり返すという処理をしていました。
しかし、この書き方ですと、クリックされた座標の1つ先に何も置かれていない、かつその先に相手の駒、そのまた先に自分の駒があった場合にも反応していたのです。
そこで自分の駒にたどり着くまでに、何も置かれていない状態に当たれば処理を抜ける、という部分を付け足しました。
このバグはたまにしか出なかったため、見逃していましたがきちんと動作するようになりました。
新入社員、細かいバグを修正する
その他にもテストを何度かしていると、細かいバグを発見することが出来ました。
例えば試合が終了したのに、タイマー機能が止まっておらず、タイムアップのアラートが出たり、いくつかのブラウザで同時に対戦すると、サーバ側で管理しているターンが同期してしまったり、勝敗のアラートが逆になっていたりなどです。
これらのバグのほとんどは凡ミスでしたが、自分の中でそんなミスするはずがないっと思っていたからか、なかなか原因が分かるまでに時間がかかりました。
バグを修正するたびに、新しいバグが発生し大変でしたが、何とか上手くできました。
新入社員、新しい機能をつける
先ほど、一通りのゲームの実装が終わったと言いましたが、新しく機能を付け足すことにしました。 というのも、ただ単純にゲームが出来るだけではなく、なにかゲームとして面白い機能が欲しかったためです。
一つは観戦機能です。社内でオセロ大会が行われるのですが、その時に他の人の対戦も見ることが出来れば面白いだろうと考え実装しようと思いました。
もう1つはちょっと変わったオセロのゲームを実装しようと思いました。
締め切りが迫っている中で新しく機能を追加するのは自殺行為かと思いましたが、出来ると信じて実装しようと考えました。
今まではオセロのルームに2人、人が入ればそのルームには入ることが出来ないようにしていました。 観戦機能を実装するために、2人目以降もルームに入れるようにし、クリックすれば駒が置ける処理などは制限し、最新の碁盤の状態だけを受け取れるようにしました。
もう一つのちょっと変わったオセロでは、すぐに出来そうなものはいくつか案がありました。 クリックして駒が置かれるびに盤上にある駒全てがずれていく動くオセロ、何かアクションがあるたびに音声でしゃべってくれるオセロ、盤が400マスある大きなオセロです。
これらは比較的簡単に実装できましたが、実際に遊んでみるとそこまで楽しくなかったので没になりました。。。
もう一つ変わったオセロで案は有りましたが、作るのに結構時間がかかりそうでしたので、時間があれば実装しようと思っています。
新入社員、デザインする
今回からやっとデザインに取り掛かっていきました。今まではほとんどcssを触っておらず、唯一作っていたのは5月ごろに作ったオセロの緑色の盤面のみでした。
なのでほぼ1からのcssになります。
デザインをするにあたって、私は実際のイメージが欲しかったのでPowerPointで一旦の完成図を作って、どのようなものにしていくかを考えました。
デザインのセンスはあまりないため、cssで出来ることを調べ、自分ならどれが出来そうかを探して作っていきました。
今週はオセロゲームのトップページを新たに作り、そのトップページとログインページ、新規登録ページのデザインを完成させました。
cssの配置でうまく言うことを聞いてくれず大変でしたが、納得のいくものになったと思います。
来週でいよいよオセロ制作が終了となります。 長い道のりでしたが悔いの残らないようにやりきっていきます。
来週はデザインを完成させ、テスト、修正を行い、遊んで楽しいオセロが完成できるように頑張りたいと思います。