Closed jacoyutorius closed 10 years ago
先日の私のメモしてたものです。ほぼchatでしたw
アイデアスケッチをスキャンしました
当日までにどこまで準備するか?ですが、 10:00 ~ 17:00くらいまでの計7時間なので開始してから設計始めるとちょっと間に合わないかもしれないですね。
ということで、開始早々コードを書き始められるからくらいのイメージで準備したいと思います。
あと、使用するツールに関してですが、 前回話し合ったとおりRailsでのWebアプリな形でいいですか?
「いやいやネイティブアプリで実装したい」
という意見も全然アリだと思います。
Railsなら
って感じですかね。 まぁ、「WindowsPhone用アプリにします!」って言って紙に書いたUIのモックを見せてもありなんでしょうけどw
あと、Javascriptのマインドマップライブラリ
RailsでのWebアプリな感じでいいと思います。理想はネイティブで位置情報を取りつつー、なんでしょうけど。 あと、話し合いで出た1対1のイメージで決定ですか?
当日はSingleで実装でいいんじゃないかな。 クラス図ではTreeにも対応できるように設計されてるので、将来的にそういう実装にする予定ってことで
環境はそんな感じで了解しました。なんとか役に立てるかなー。 最初の図はただのorderedな子供(配列で実装可能)をイメージしていましたが ツリーの場合は、 treeやグラフをactive recordでどう実現するかやったことないですが と、こんな感じでしょうか。ルートノードを別クラスに為た方がいいかも。
クラス図はなんとなくイメージ共有のためものでしたので(いわゆるスケッチUML)、あんまり気にしなくていいですよ。
いまどきRailsというと、Rails3 or 4? + HAML + SAAS + Devise + RSpec + Bootstrap みたいな感じでしょうか。このあたりyutoくんが実績のあるところを指定してもらえれば、週末に要素技術詰め込み予習していきます。
ただのchatでなくすためになにか+1の仕様をいくつか考えておきたいですね。そもそものユーザの「アイデアが浮かばないプログラマ」向けを基準でも、まったく別の横展開でも、どちらの面でも。
以下はそもそもの目的の観点でちょっと考えてみたんですが
「アイデアが浮かばないプログラマ」向けのソフトウェアを作るアイデアが浮かばないプログラマみたいなトートロジーになってきました(笑)
開発環境とかバージョンの話は別Issueで検討しましょー => #4
+α の機能としては、、、
「アイデアが浮かばないプログラマ」向けのソフトウェアを作るアイデアが浮かばないプログラマ
:+1:
単語を出す前と、出したあとの違いがあって面白いです
ワードを投稿するとそのワードで画像検索して取得したイメージも一緒に表示される
イメージでるのはやはり楽しそうですねえ
ワードを投稿するとそのワードで画像検索して取得したイメージも一緒に表示される
イメージ出るのは楽しそう+1です。
あとこんなUIも楽しそう。ちょっと今回のSingleとは離れてしまうけど。 アイデア創出の専用ノート「はちのすノート」の作り方
jQuiryでこんな感じのを使って実装てきないかなー、とか。 jQueryを使った六角形の要素が並べられる「jQuery Hexagon」
1つの案だけど、、、 9 * 9 or スマホサイズに最適化されたHexのフィールドがあって、そこに単語を埋めてくとゲームっぽいかなーとか。 大戦略っぽい感じで。
9 * 9 or スマホサイズに最適化されたHexのフィールド
おお、面白そう。素晴らしい
Mandarartという、3x3のマトリックスをどんどん展開していくのがあるのですが、 ちょっと複雑で↑の方がシンプルでわかりやすそうです
はちのすノート、Mandarart調べてみました。 Mandarart難しそうですねこれ、、w とりあえずアプリ入れてみようと思います。
はちのすノートを見て最初に思ったのは、Hexでフィールドが仕切られてればゲームっぽいルールが付与しやすくなるんじゃないかと。 もう1つは、Hexになっているとツリーみたいに1単語から別の単語を連想するのではなく、複数の単語から連想できるようになる、ってことです。
的なルールとか。NG条件や終了条件を考えないといけないですが。
Mandartは品質が低く、モメたのか、iTunes Storeからは無くなってしまい 新バージョンも出てないというなかなか香ばしいことに(1500円もしたのに……)
Hexだと複数単語からの連想になる、ってのは面白いです!
3Dにして正十二面体か、切頂二十面体(サッカーボール)の各面に、 なるべく隣接の単語に関連がある単語を書いていって、 全部埋まったら、その2単語で検索した件数を関連度として、 すべての隣接の単語の合計を点数とする、とか、逆に関連が少ない方が得点が上とか 面白そう(また発散してきました)
Hexは入れ違いのテーブルで表現できそうなので、 仮の表示やデータ構造もなんとかできるかもしれないですね。 で、その総合点をなんとか計算すればゲームとして成り立ちそう
2単語で関連度が少ないところ=イメージしずらいところは高得点。で色とか変えて表現して 競って埋めていく。最終的に何マスまで埋まれば終了~として総合点を算出、などのルールはどうでしょう。
3D!知的ゲームっぽくなってきました。 Three.jsで実現できそうですね。
ちょっと整理しましょうか。
内山さん案は3Dオブジェクトの各面に単語を入れてって最終的に得点を計算してその値で競う(1人プレイ)、 大ちゃん案はフィールド上で陣取りゲームのようにマスを取り合って最終的な総合得点で競う(2人以上プレイ)、
って想像したのですがイメージ合ってます?
私も同じイメージです。リニアなチャットよりは面白そうなのでHexフィールドがちょうど良さそうですね。amayさんとが抜群に詳しそうですが、hexのデータ構造は実はマトリクスでできそうな気が。(x,y) が隣接するのは
(x-1, y+1)(x, y+1)
(x-1,y) (x+1,y) (x-1,y-1)(x, y-1)
みたいにできそう。表示もまずはテーブルでなんとかできるでしょうか
技術検証の時間を考えたらこの土日までに仕様収束させるべきだったとチラッと後悔中ですw じゃあ2DのHexフィールド案でいくことにして、テーブル構造と役割分担の検討に集中しましょうか。
↑のデータ構造の式は間違いでした。これはyが偶数のときと、奇数の時が参照先が異なるので、 おそらくジグザグに続くhexを行とした方が扱いやすいのではないかと(説明難しい)
隣接するhexは
(x, y-1) | ||
(x-1, y-1) | (x+1, y-1) | |
(x,y) | ||
(x-1, y) | (x+1, y) | |
(x, y+1) |
これをどうDBで扱うんだろう。各Hexにx,y,wordだけ持たせればいいのかな。
構造ですが、DB構造としてはx,y,word,その他付属情報でいいかなとおもいます。 付属情報は、ユーザー、評価、点数?あたりですかね。 隣接したhex取る方法と合わせて昼休み考えてみます。
こんな感じの、2つのパターンがある感じでしょうか? 個人的には右側をイメージしていました。suchiさんは左側かな? あと、一応、Hexに乗せる項目なんとなく載せてみました。
実際にHexagon.js触って気づいたのだけど、マスの中にテキストボックス入れたら見た目が悪くなったのでできればモーダルウィンドウにしたいかな。 あと、認証機能が実装さればHelperでログインユーザーが取れるので、Userの入力項目も不要になりそう ( )
すごい。 データ構造は、最初思いついたのが右でしたが、条件が入らない左が扱いやすいと思いました。
DB設計とか明日、時間があれば軽く作ってみます。 画面は、Webの設計やったことないから推測ですが、ログイン、ゲーム(Hex)画面、モーダルフォームくらいでしょうか?MVCで何が必要となるかがいまいちイメージできない。。。 Hexの実装はHexagon.jsが有力でしょうか?
その他検討事項
他何か忘れているところあれば追加お願いします。
DB設計ですが、全然できていません!当日、開始時の打ち合わせと、 作っていってちょいちょいブラッシュアップする形でお願いします。
イメージではsuchiさん案からthread抜いた感じだとは思うんですが。 クラスとしては以下の4個でしょうか?
Table List | Role |
---|---|
wag | ゲーム1回につき1個作成 |
word | Hex1個に対する情報 |
user | ユーザー情報:twitter,facebookのログイン実装するなら認証情報も? |
star | Wordに対してユーザーが評価した情報(いいね!と同等) |
調べたら単語の検索スコアはGoogle APIからとれそうでした。
テーブルの中身の草案です。 細かいところは明日お願いします!
ColName | type | note |
---|---|---|
name | string | 名前 |
ownuser_id | integer | 作成したユーザー |
status | string | ゲームが完了したかどうっていう状態 |
ColName | type | note |
---|---|---|
name | string | ユーザー名 |
twitter,facebook | xxxx | twitter,facebookログインするのなら認証情報 |
ColName | type | note |
---|---|---|
x | integer | Hex位置 x |
y | integer | Hex位置y |
word | string | 入力した単語 |
score | integer | 検索スコア |
wag_id | integer | 対象のゲーム |
user_id | integer | 入力したユーザー |
ColName | type | note |
---|---|---|
user_id | integer | 対象のユーザー |
word_id | integer | 対象の単語 |
仕様検討するスレ