2024 ソフトウェア設計及び演習用の班Wiki

final_comment_furu_2024

1班 One Love ~100年先も愛を誓おう~

いわゆるマッチングアプリですが、MBTIを利用するというのが新しいですね。一部機能を実装できなかったようですが、それなりに形になったと思います。 DB(MySQL)を使い始めたのが中間発表後ということでなかなか大変だったと思いますがよく頑張りました。

プログラムについて

通常、HTMLなどからアクセスできるのは同じ位置かその中にあるファイルとなるので photoディレクトリは sourcefile の中に入れておくと良いです。 また、CSSをHTMLに直接書いているところもありますが、別ファイルにしてそれを読み込むようにしておくと全体のスタイルを統一させやすくなります。

2班 神経肺弱

神経肺弱というたばこに焦点をあてたゲームで面白いですね。 ルール説明もあるのは良いと思います。 合わせる絵柄もたばこですしプレイ中もひたすら咳き込んでいるので統一感があります。 2人プレイのときはターンによってHPバーの色を明るく・暗くするとどちらのターンかがよりわかりやすくなると思います。

プログラムについて

画像ファイル、音声ファイルがHTML、JSなどと同じ場所に置かれていますが、image, sound などディレクトリを作りその中に配置すると全体の見通しも良くなると思います。 そしてgame1.jsに1箇所ミスと思われる場所がありました。ここの math.random() の部分ですがおそらく Math.random()ですね(Mが大文字)。 これによりHPに関係なくランダムで死亡というのも実現できてより面白くなったと思います。

3班 simple poker

いわゆる簡易版のポーカーですね。ゲームの説明もありますしカードのスキンも変えられるようになっていて完成度は高いと思います。ただ、全体的に「クリックできるところ」がちょっと分かりにくいように思います。マウスカーソルがボタンなどに移動したときに少し色を変えるなどすればより良くなると思います。

プログラムについて

画像ファイルやJSファイルがディレクトリにまとめられているのでわかりやすくて良いですね。モジュールが細かく分かれていますが、これくらいであれば問題ないと思います。(1つのファイルに全部まとめていたりすると非常に分かりづらくなります)

4班 あなたのことが好きなだけ

ストーカーシミュレーションというのがなかなか攻めていて面白いですね。いわゆる恋愛ゲームですが通報エンドがあるのが良い味を出していると思います。こういったゲームではどうしても条件分岐が膨大になりますがよくまとめていると思います。

プログラムについて

全体的にかなりの規模ですが、各ファイルにほどよく分割されていてわかりやすくなっています。全員が構成を分かっているということでしたが、このような形になっていれば知らない人でも比較的短時間で理解できるのでは?と思います。 そして、#region~#endregion は初めて知りましたがなかなか良いですね。VS Code で折りたたむこともできるし右側の縮小表示でも文字が表示されて見通しがとても良くなります。 ところで、Readme.pdfが破損?のためかどうかわかりませんが表示できませんでした。

5班 すごろくクエスト

すごろく部分と戦闘部分に分かれているゲームで、それぞれしっかり作りこまれていると思います。すごろく部分では止まった位置に応じて能力がアップ・ダウンし、どちらかがゴールした時点で戦闘が始まる。戦闘部分ではそれまでの能力値のアップ・ダウンが関係するので単純に先にゴールしたほうが有利というわけでもない。アイテムが未実装ということですがこれがあればもっと良くなったと思います。

プログラムについて

音声や画像などが audio,image にまとめられていて良いですね。プログラムも結構な規模ですがモジュールごとに分けられていてわかりやすいと思います。scene_sugoroku.jsとbattle.jsが主要な2つのプログラムだと思いますが、コメントやインデントがしっかりしているので行数のわりにとても理解しやすいと思います。

6班 twinderambook2

いろいろ組み合わせてすべてを網羅するとはいうもののやはり物足りなさを感じてしまいますね。ただ全体の作りはしっかりしていると思います。

プログラムについて

pythonのフレームワークのDjangoを使用して作成しているのが良いと思います。このようなフレームワークは理解するのに時間がかかりますが使えるようになると少ないコードで効率的にプログラムできます。DjangoはMVT(Model, View, Template)という考え方でプログラムするもので、これはいわゆるMVCモデルというものになります。(M(Model),V(view, DjangoのTemplateに相当),C(controller DjangoのViewに相当))。MVCはかなり簡単に説明すると、View(いわゆる画面)がユーザーから見える部分でログイン画面やログイン後のメインページなどの表示、ModelがDBアクセスや各種計算などの様々な処理を実行、そしてこれらを管理するのがControllerという感じです。フレームワークは他にもいろいろあるので興味のある方は調べてみてください(CakePHPとかLaravelとかVue.jsとか・・)。

7班 Typing Defuse!

いわゆるタイピングゲームですが2つのうち時間に応じてどちらから解除するかというところでゲーム性が高いと思います。最初見たときは左右のどちらに入力するかを選択しないとだめなのでは?と思っていましたが、入力したものが左右の合う方に自動で判定されるのでこのあたりも操作しやすく良いですね。ハードモードではなかなかシビアな感じでこのあたりもゲーム性が高いと思います。

プログラムについて

全体的にモジュールごとに分かれていてわかりやすいですね。ゲームモードのノーマル、ハードそれぞれにメインのプログラムがありますが、かなりの部分が共通しているので共通部分をまとめつつ違った部分をそれぞれで実装することでより見通しは良くなると思います。また、単語データをプログラム内に直接列挙していますが、このあたりでDBを使用するともっと自由度が上がります(後から単語を追加可能など)。

8班 University assistant

iアシスタントを大学生向けに、ということで授業の過去問、口コミ、学生自身の評価、などあれば嬉しい機能ががいろいろとあって良いと思います。また、岩手大学だけでなく他大学にも対応できるようになっているのも良いですね。未実装な部分があるのが残念ですが個人的に「自分が学生だったら欲しい」機能がいろいろとあります。

プログラムについて

Express.jsはNode.jsで動作するWebフレームワークでこれもMVCモデルで構成されています。ただ、6班で使用しているDjangoに比べてシンプルな分、自由度が高いためにメインのプログラム(app.js)が大きくなりがちです。ただ、コメント、インデントがしっかりしてるので長さのわりには見やすいですね。ちなみに、対策としては機能群に応じてファイルを分けるなどが有効です。

9班 Have a sense of crisis

いわゆるトレーニング系のアプリですが、その結果が3Dキャラに反映されるというは独創的で面白いですね。お手本プレイもとても参考になると思います。あと、地味に背景が変わるのも面白いです。

プログラムについて

このアプリもExpress.jsで動いているのでメイン(server.js)がやや大きめになっています。こちらはコメントは少なめですが比較的見やすいかなと思います。そして、一番のメインである3DモデルはThree.jsで作られています。私は使ったことがないのですが、想像以上にいろいろとできそうなので結構驚いています。

10班 オケサーチ

自分に合った音程の曲を検索できるアプリで入力方法がいろいろあるのが良いですね。曲の情報も細かく出てきますし、どれだけ上げる(下げる)と歌えるかというのも実際のカラオケで使えそうです。 ただ、画面が全体的に少し分かりづらいのが残念なところでしょうか。

プログラムについて

ソースコードの中に直接ユーザ名・パスワードがありますが、本格的にプログラムする場合はこのような書き方はしない方が良いでしょう。(分かっているとは思いますが一応) input.jsの条件分岐が非常に多くなっていますがプログラムを工夫するともう少しスッキリ書けると思います。例えば、129行あたりのmaxFrequencyの部分を以下のような感じで書くと配列の定義の分は増えますが全体としては大幅にソースが短くなります。(一部省略して書いてます)。

  onkai_text = [ '', '音階:lowlowlowA', '音階:lowlowlowA#', ... ]; // 88個分書く 添字を1から使うため先頭はダミーを入れている

  for (let i = 1; i <= 88; i++) {
    onkai1 = 13.75 * (1.059463094) ** (i-1);
    onkai2 = 13.75 * (1.059463094) ** i;
    if (onkai1 <= maxFrequency && maxFrequency < onkai2) {
      onkaiDiv.textContent = onkai_text[i];
    }
  }

11班 word memories

英語の勉強アプリで、説明のとおり楽しく勉強できそうですね。間違ったときでもその時点で正解を示してくれるのも良いですし、正解の位置もランダムなのでちゃんと勉強になりそうです。エンドレスモードは間違ったときに終了ですが、これだと正解率はどうやっても100%にならないので問題のスキップの他に終了ボタンもあっても良いかもしれません。 また、同じ問題を間違い続けたらハード側に、正解だったらイージー側に分類し直すなどができれば個人に対応したアプリになりそうな気もします。長く使ううちにイージーは分かっているものの確認、ハードは間違いやすいものを勉強、そしてハードが少なくなったら理解が進んでいる、という感じで。

プログラムについて

全体的にわかりやすく書けていると思います。レベル、モードを引数で渡しているのも良いですね。ベースの部分が共通なので当然といえば当然ですがこういったところでまとめていくと全体のソースを少なくできます(たまに「コードの行数が多ければ良い」といった考えの人がいますが、「わかりやすくて短い」のが本当に良いコードになります)。あとは問題の部分でDBを使えば問題の追加が容易になるので拡張性が高まります。


最終更新日:2024/08/02 22:02:41