新入社員、課題の要件を一通り完成させる

こんにちは。シンメトリック新入社員の田中です。今回はランキング表の実装、プロセスの実装、サーバにオセロを上げる作業をしました。

新入社員、ランキング表を実装する

試合が終了した後、その対戦結果がDBに反映されるようにしました。 DBにはランキング表はすでに作ってあり、データの挿入、対戦結果から勝率の計算も出来ていました。 なので、今回はそのDBを使って、オセロのJavaから対戦が終了した際に、対戦結果を挿入するように書きました。

これによってランキング表が実装できました。

新入社員、プロセス部分を実装する

次にプロセス部分の実装です。 研修課題には「ゲームのプロセスを記録・表示をする」という要件があるため、こちらを実装しなければなりませんでした。

私の最初の計画では、この対戦プロセスは、オセロの盤面と次へボタン、戻るボタンを実装する予定でした。 そして、このボタンを押せば対戦した時の座標に駒が置かれ、次へボタンを押すと、1手づつゲームのプロセスが再現できるようにしようと考えていました。

そこで、対戦中に置いた碁盤の座標を1手づつDBに記録する処理を行いました。 しかし、その後の流れを考えた場合に私はかなり悩みました。

新入社員、優先順位を考慮し、プロセス部分を妥協する

対戦を再現するとなった場合は、座標をDBから取り出して、それを盤面に表示するのですが、ひっくり返る処理などは新しく書かないといけません。

私は、オセロのゲームのロジックの部分はWebSocketを使ってサーバ側のJavaで書いていました。

しかし、プロセスを再現するだけですと通信機能などは使わないため、サーバ側の処理はほとんどいりません。 そのため、新しくWebページを作成し、ブラウザ側のJavaScriptでひっくり返す処理を書くことになります。

初めは、JavaScriptの練習にもなりますし、作ろうと思っていたのですが、いかんせん締め切りまでの時間が迫っていました。

特にJavaScriptはあまり深く触っていなかったため、作り上げるには時間がかかってしまいそうでした。

テストやバグ修正、デザインなどまだまだやることが山積みでしたので、プロセス部分に多くの時間をかけるよりは、他に時間をかけ、バグがなく、デザインも凝ったものを作り上げる方がいいのではないかと考えました。

また私の中で、「オセロのプロセスなんて、あんまり見ないでしょ。」という考えもありました。

苦渋の決断ですが、このプロセス部分を座標の表示だけにすることによって、優先度の高いオセロのゲームとしての完成度を高めることに時間を割くことにしました。

images (1)

新入社員、サーバにあげる

一旦、オセロのページは一通り作り上げたので、これがサーバにあげたときにうまく動作するかの確認をしました。 サーバは社内にある使っていないものを使用し、Tomcatなどのアプリケーションをインストールする作業から始めました。

正直、この環境構築が難しく分からない部分が多く非常に苦戦しました。

特にパスなどを設定する際、よく分からなかったので、いろいろなサイトを参考にしました。

しかし、これがよくありませんでした。

サイトによってやり方が、少し異なっていたため、パスの設定がごちゃごちゃになってしまったのです。 Linuxの使い方も分からず、設定しなおすのにかなりの時間がかかってしまいました。

新入社員、デバックしづらくなる

サーバにオセロを上げましたが、まだまだ細かいバグは修正していない状態でした。

それを修正しようとしたのですが、サーバにあげているため、eclipseのデバック機能が使えなくなりました。

今まではエラーがコンソール画面に出て、どういう動きでエラーが発生しているのかをブレークポイントを使って確認していました。 しかし、サーバ上ですと、Tomcatのログでしかエラーの場所を確認することしか出来ず、バグの修正がかなり大変になってしまいました。

のちのち、ローカルの開発環境に戻すやり方を覚え、デバックなどがいつも通りに出来るようになりましたが、このときは少しサーバに上げたのを後悔しました。

来週はテスト、バグ修正、デザイン部分をやっていきたいと思います。