<<プロジェクト>> !!プロジェクト名 えくすとりーむおせろ !!プロジェクト説明 *オセロを基にした対戦ゲーム *トラップを設置する *最後に色の多いほうが勝利 *コンピュータでしか表現できない要素を入れるため、トラップという相手に見えない要素を追加した <<モジュール分けと担当、仕様書>> [[仕様書|gr10::モジュールごとの制作、仕様書の作成]] <<動作>> !!①タイトル画面 *クリックで罠設置画面に遷移。 <<{Screenshot from 2018-08-02 16-38-19.png} !!②罠設置画面 *クリックで罠設置。 <<{Screenshot from 2018-08-02 16-38-37.png} !!③ゲーム画面 *薄緑色のマスは置けるマスとなっており、クリックするとそのターンのプレイヤーが置ける。 <<{Screenshot from 2018-08-02 16-38-53.png} !!④ゲーム途中画面 <<{Screenshot from 2018-08-02 16-39-53.png} !!⑤パスの場合 *alertでpassと表示される。 <<{Screenshot from 2018-08-02 16-40-19.png} !!⑥終了時 *alertでendと表示されOKを押すとEND画面に遷移。 <<{Screenshot from 2018-08-02 16-40-30.png} !!⑦終了画面 *試合結果により画像変わる。 *クリックでスタート画面に遷移。 <<{Screenshot from 2018-08-02 16-40-38.png} <<感想>> !![[田代 晃輔|18::gr10::田代晃輔]]  今回の演習は制作よりも調べている時間のほうが圧倒的に長くHTML、JavaScript、GitLabもすべて初めてで自分は通信モジュールだということで websocketという単語を嫌いになりそうなほど検索した気がする。制作当初はenchant.jsによるシーンでゲーム進行をすすめるつもりだったが 他のモジュールがenchant.jsに対応してないと話し合いで気付き変更を余儀なくされたり途中扁桃腺にかかり一週間休むなどアクシデントもあった。 一番苦労したのはやはり他のモジュールとの統合であり統合において他のモジュールの内容を班員と話し合って理解もしたが通信を組み込むと フリーズが治らず悔しいが通信対戦を実現することができなかった。 コードの一部の内容や仕様を理解できてもコード全体で起きたエラーやフリーズの対処に時間がかかりまだJavaのオブジェクト指向において勉強不足を感じた。 途中協力してくれた班員にはとても迷惑をかけてしまいプログラミングの難しさを痛感した。 しかし、じゃんけんで負けてなった班長とはいえ初期の話し合いや製作中の各モジュール間の情報伝達など技術面以外での努力はこころがけそのおかげで 途中での仕様変更、各モジュールへの疑問解決はスムーズにできたと実感してる。 !![[千葉 雅哉|18::gr10::千葉雅哉]] 自分の作業でスタートモジュールを作るだけでもかなり多くの時間をかけ、大変だったが、他のモジュールと統合する際に多くのエラーが出てしまった。結局一からの作り直しとなったので早めに統合の相談をしておくことが重要だと感じた。今回で言えば、jsで書くのかhtmlで書くのかによって統合がかなり難しくなってしまった。ゲームをひとつ作ることがこんなにも難しいことだと思っていなかったので勉強になった。 !![[福士 遼|gr10::福士遼]] これまでの与えられた課題に対して取り組むのではなく、自分たちで試行錯誤しながらの課題作成だったためとてもむずかしく感じた。この講義での成果としてグループでの進め方難しさを経験できて良かった。また、HTMLとcssについて、javascriptについて少し理解することができた。 課題として、統合の時間に毎回時間をとられ思うように進めることができなかった。これは最初に通信モジュールはenchant.jsで他のモジュールはjavascriptで書いていたためであった。 グループ作成の最初の段階からモジュール分けや方向性を細かく決めておけばよかったと思う。 !![[岡野 稀央隆|18::gr10::岡野稀央隆]]  !うまく行ったこと *統合をやっていくうちにデバッグのスキルが上がっていき非常に身になる経験だった。 *班WIKIを定期的に更新し、自分の状況を発信できていてよかった。 *実際組み込んでいくうちに、表示モジュール自体を変更しなければいけない時も多々あり、そうすると他のモジュールとの統合の際うまく行かないなど、慎重なデバックが必要だったので、集中して取り組んだ。 *メモリ管理と、全体の進行自体も担当したので、ゲーム全体の流れを把握でき、表示モジュールを制作する際に役立ったので担当の相性がかなり良かった。 !うまく行かなかったこと *自分のモジュールが全体の中枢となっていたこともあり、他モジュールとの統合の際、自分に合わせてもらう形になることも多くあったので、もっとモジュールを分割化し、それぞれが独立した形で作成できたらよかったなと反省している。 *すべての統合に関わるということは、表示モジュール自体のバグをまず無くし、かつどう動作するかを正確に伝えなければならずそこが難しかった。 *表示モジュールというほぼすべてのモジュールと関連のあるモジュールを担当したため、すべての統合に関わったのでかなり大変だった。オセロのルール設定に近い条件付けも一から作成したので、当初は単純なゲームだしサクサク作成できるだろうと思っていたが、実際は一つ一つ順番なども気にしながら地道に積み上げて行ったので、単純にオセロを作るだけでもかなり時間がかかった。 !学んだ事 *班WIKIを書いたことで、班員に自分の状態を知らせるだけでなく、後で見なおした際にこのプロジェクト通して自分が何ができるようになったかを簡単に振り返られるので、とても良い記録を作ることができた。 *実際にコードを書くだけではない、準備や設計、班員とのコミュニケーションを踏まえた広い意味でのプログラミングというものの片鱗に触れることができ、完成はしなかったもののチームの一員として自分の役割を認識し、どう動くべきかを学べてよかった 。 *失敗することは当たり前で、それをどう修正するかが大事だということを学んだ。 *チームで動く際にやってはいけないこと(インターフェースの統一を無視すること)を失敗から学び、逆にやったほうがいいこと(他モジュール担当とのコミュニケーション)も学べて、かつHTML,CSS,Javascriptのスキルやデバッグのスキルを磨けた演習だったので、得たものはかなり多かった。この経験を次のチームでの開発や個人での開発に活かしてやっていきたいと思った。 !![[大嶋 快|18::gr10::大嶋快]] 「ボードゲームを作る」ということで、はじめはオリジナルのゲームを作ろうということになったがルーから作るのには時間がかかりそうという考えになったので、オセロをベースにパソコンならではのルールを追加するものを作ることになった。 追加ルールを考えるにあたって、リアルではできないものを作ろうというのに少し悩んだ。最終的には「相手に見えないトラップ」というスリルのあるオプションをつけられたと思う。 自分はトラップを担当した。オセロ内での特殊効果がなかなか思い浮かばず少し行き詰まった。トラップは何個か作る予定で、ひとつだけ強すぎないようにと心がけた。 トラップを実装するのがなかなか難しかった。調べても参考になるのがあまりなくなんとかいろいろな記事を見つつ実装した。 2年でやったC言事は変数の宣言など違うところもありプログラミングが大変だった。 !![[結城 直哉|18::gr10::結城 直哉]] !よかったこと 石の裏返しをするための盤面の更新をする関数の作成を担当した。どのようにしたら実現できるのかが思いつかず苦労したが、結果としては良いのができたのではないかと思う。個人的な作業は早い段階で終わったので他の人を手伝ったりしたが、自分の開発では使わなかった javascript の文法に触れる良い機会になったので良かった。 !反省点 反省点としては、こまめに wiki を編集できず、行動を記録する癖をつけきれなかったこと、モジュールや関数の分割に不備があり、他から使いづらくなっているのに気づくのが遅れてあとから大変だったことなどがあり、グループ開発に置けるコミュニケーションの大切さを学んだ。 !![[玉川 雅実|18::gr10::玉川 雅実]] 去年までの出された課題をこなすという授業ではなく、自分達で作成する内容を考えて完成させるという内容で今までよりもはるか難しいと感じた。しかし、これからの人生においてとても大事な経験にもなった。 具体的には、「複数人で一つの目標を達成するまでの過程では全員が思い描いている構想が完全に同じことは殆ど無く、作成の途中で気付いてしまって修正が困難になってしまう」・「発表間近になってやらなければならないことが山積みになってしまう」など計画段階でどれだけ具体的に計画を立てることが大切かを実感することができた。 プログラムに関してはデバッグの技術が向上したと感じた。最初は正しい動作をしさえすれば問題ないと思っていたがやはりプログラムにバグはつきもので、特に統合の際にバグの正体が分からないこともあり苦労した。慣れてくるとどこか見当はついてくるものの、これからはデバッグのしやすいプログラム(関数やループの内容のコメント・どの{}かの明記etc...)作りを心がけたい。 また、自分はスペルミスが多く、デバッグの際にどこが悪いのか全く見当がつかずとても時間がかかってしまうことがあったため、細心の注意をしてケアレスミスには絶対になくそうと心に命じた。 !!!ソースコードはこちら https://gitlab.cis.iwate-u.ac.jp/2018_g10/othello-g10/tree/master/happyou{GitLabページ}