hamackathon / wordgame

Hamackathon#5 連想ワードゲーム
1 stars 4 forks source link

仕様の検討 #2

Closed jacoyutorius closed 10 years ago

jacoyutorius commented 10 years ago

仕様検討するスレ

suchi commented 10 years ago

wag_sketch_uml_0 先日の私のメモしてたものです。ほぼchatでしたw

suchi commented 10 years ago

アイデアスケッチをスキャンしました

ideathon_image

jacoyutorius commented 10 years ago

機能

jacoyutorius commented 10 years ago

当日までにどこまで準備するか?ですが、 10:00 ~ 17:00くらいまでの計7時間なので開始してから設計始めるとちょっと間に合わないかもしれないですね。

ということで、開始早々コードを書き始められるからくらいのイメージで準備したいと思います。

jacoyutorius commented 10 years ago

あと、使用するツールに関してですが、 前回話し合ったとおりRailsでのWebアプリな形でいいですか?

「いやいやネイティブアプリで実装したい」

という意見も全然アリだと思います。

Railsなら

って感じですかね。 まぁ、「WindowsPhone用アプリにします!」って言って紙に書いたUIのモックを見せてもありなんでしょうけどw

jacoyutorius commented 10 years ago

あと、Javascriptのマインドマップライブラリ

diver42 commented 10 years ago

RailsでのWebアプリな感じでいいと思います。理想はネイティブで位置情報を取りつつー、なんでしょうけど。 あと、話し合いで出た1対1のイメージで決定ですか?

jacoyutorius commented 10 years ago

当日はSingleで実装でいいんじゃないかな。 クラス図ではTreeにも対応できるように設計されてるので、将来的にそういう実装にする予定ってことで

suchi commented 10 years ago

環境はそんな感じで了解しました。なんとか役に立てるかなー。 最初の図はただのorderedな子供(配列で実装可能)をイメージしていましたが ツリーの場合は、 treeやグラフをactive recordでどう実現するかやったことないですが wag_tree_sketch_uml_0 と、こんな感じでしょうか。ルートノードを別クラスに為た方がいいかも。

suchi commented 10 years ago

クラス図はなんとなくイメージ共有のためものでしたので(いわゆるスケッチUML)、あんまり気にしなくていいですよ。

suchi commented 10 years ago

いまどきRailsというと、Rails3 or 4? + HAML + SAAS + Devise + RSpec + Bootstrap みたいな感じでしょうか。このあたりyutoくんが実績のあるところを指定してもらえれば、週末に要素技術詰め込み予習していきます。

suchi commented 10 years ago

ただのchatでなくすためになにか+1の仕様をいくつか考えておきたいですね。そもそものユーザの「アイデアが浮かばないプログラマ」向けを基準でも、まったく別の横展開でも、どちらの面でも。

以下はそもそもの目的の観点でちょっと考えてみたんですが

「アイデアが浮かばないプログラマ」向けのソフトウェアを作るアイデアが浮かばないプログラマみたいなトートロジーになってきました(笑)

jacoyutorius commented 10 years ago

開発環境とかバージョンの話は別Issueで検討しましょー => #4

+α の機能としては、、、

「アイデアが浮かばないプログラマ」向けのソフトウェアを作るアイデアが浮かばないプログラマ

:+1:

jacoyutorius commented 10 years ago
suchi commented 10 years ago

単語を出す前と、出したあとの違いがあって面白いです

ワードを投稿するとそのワードで画像検索して取得したイメージも一緒に表示される

イメージでるのはやはり楽しそうですねえ

diver42 commented 10 years ago

ワードを投稿するとそのワードで画像検索して取得したイメージも一緒に表示される

イメージ出るのは楽しそう+1です。

あとこんなUIも楽しそう。ちょっと今回のSingleとは離れてしまうけど。 アイデア創出の専用ノート「はちのすノート」の作り方

jQuiryでこんな感じのを使って実装てきないかなー、とか。 jQueryを使った六角形の要素が並べられる「jQuery Hexagon」

jacoyutorius commented 10 years ago

1つの案だけど、、、 9 * 9 or スマホサイズに最適化されたHexのフィールドがあって、そこに単語を埋めてくとゲームっぽいかなーとか。 大戦略っぽい感じで。

suchi commented 10 years ago

9 * 9 or スマホサイズに最適化されたHexのフィールド

おお、面白そう。素晴らしい

Mandarartという、3x3のマトリックスをどんどん展開していくのがあるのですが、 ちょっと複雑で↑の方がシンプルでわかりやすそうです

jacoyutorius commented 10 years ago

はちのすノート、Mandarart調べてみました。 Mandarart難しそうですねこれ、、w とりあえずアプリ入れてみようと思います。

はちのすノートを見て最初に思ったのは、Hexでフィールドが仕切られてればゲームっぽいルールが付与しやすくなるんじゃないかと。 もう1つは、Hexになっているとツリーみたいに1単語から別の単語を連想するのではなく、複数の単語から連想できるようになる、ってことです。

的なルールとか。NG条件や終了条件を考えないといけないですが。

suchi commented 10 years ago

Mandartは品質が低く、モメたのか、iTunes Storeからは無くなってしまい 新バージョンも出てないというなかなか香ばしいことに(1500円もしたのに……)

Hexだと複数単語からの連想になる、ってのは面白いです!

3Dにして正十二面体か、切頂二十面体(サッカーボール)の各面に、 なるべく隣接の単語に関連がある単語を書いていって、 全部埋まったら、その2単語で検索した件数を関連度として、 すべての隣接の単語の合計を点数とする、とか、逆に関連が少ない方が得点が上とか 面白そう(また発散してきました)

Hexは入れ違いのテーブルで表現できそうなので、 仮の表示やデータ構造もなんとかできるかもしれないですね。 で、その総合点をなんとか計算すればゲームとして成り立ちそう

diver42 commented 10 years ago

2単語で関連度が少ないところ=イメージしずらいところは高得点。で色とか変えて表現して 競って埋めていく。最終的に何マスまで埋まれば終了~として総合点を算出、などのルールはどうでしょう。

jacoyutorius commented 10 years ago

3D!知的ゲームっぽくなってきました。 Three.jsで実現できそうですね。

ちょっと整理しましょうか。

ゲームのUI

  1. マインドマップ風(画像付き?)
  2. Hexフィールド
  3. 3Dオブジェクト

採点方法

jacoyutorius commented 10 years ago

内山さん案は3Dオブジェクトの各面に単語を入れてって最終的に得点を計算してその値で競う(1人プレイ)、 大ちゃん案はフィールド上で陣取りゲームのようにマスを取り合って最終的な総合得点で競う(2人以上プレイ)、

って想像したのですがイメージ合ってます?

suchi commented 10 years ago

私も同じイメージです。リニアなチャットよりは面白そうなので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)

みたいにできそう。表示もまずはテーブルでなんとかできるでしょうか

jacoyutorius commented 10 years ago

技術検証の時間を考えたらこの土日までに仕様収束させるべきだったとチラッと後悔中ですw じゃあ2DのHexフィールド案でいくことにして、テーブル構造と役割分担の検討に集中しましょうか。

suchi commented 10 years ago

↑のデータ構造の式は間違いでした。これは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だけ持たせればいいのかな。

diver42 commented 10 years ago

構造ですが、DB構造としてはx,y,word,その他付属情報でいいかなとおもいます。 付属情報は、ユーザー、評価、点数?あたりですかね。 隣接したhex取る方法と合わせて昼休み考えてみます。

diver42 commented 10 years ago

こんな感じの、2つのパターンがある感じでしょうか? 個人的には右側をイメージしていました。suchiさんは左側かな? あと、一応、Hexに乗せる項目なんとなく載せてみました。 wordgame_image_sample

jacoyutorius commented 10 years ago

実際にHexagon.js触って気づいたのだけど、マスの中にテキストボックス入れたら見た目が悪くなったのでできればモーダルウィンドウにしたいかな。 あと、認証機能が実装さればHelperでログインユーザーが取れるので、Userの入力項目も不要になりそう ( 2014 03 03 23 51

suchi commented 10 years ago

すごい。 データ構造は、最初思いついたのが右でしたが、条件が入らない左が扱いやすいと思いました。

diver42 commented 10 years ago

DB設計とか明日、時間があれば軽く作ってみます。 画面は、Webの設計やったことないから推測ですが、ログイン、ゲーム(Hex)画面、モーダルフォームくらいでしょうか?MVCで何が必要となるかがいまいちイメージできない。。。 Hexの実装はHexagon.jsが有力でしょうか?

その他検討事項

他何か忘れているところあれば追加お願いします。

diver42 commented 10 years ago

DB設計ですが、全然できていません!当日、開始時の打ち合わせと、 作っていってちょいちょいブラッシュアップする形でお願いします。

イメージではsuchiさん案からthread抜いた感じだとは思うんですが。 クラスとしては以下の4個でしょうか?

Table List Role
wag ゲーム1回につき1個作成
word Hex1個に対する情報
user ユーザー情報:twitter,facebookのログイン実装するなら認証情報も?
star Wordに対してユーザーが評価した情報(いいね!と同等)
suchi commented 10 years ago

調べたら単語の検索スコアはGoogle APIからとれそうでした。

diver42 commented 10 years ago

テーブルの中身の草案です。 細かいところは明日お願いします!

wag

ColName type note
name string 名前
ownuser_id integer 作成したユーザー
status string ゲームが完了したかどうっていう状態

user

ColName type note
name string ユーザー名
twitter,facebook xxxx twitter,facebookログインするのなら認証情報

word

ColName type note
x integer Hex位置 x
y integer Hex位置y
word string 入力した単語
score integer 検索スコア
wag_id integer 対象のゲーム
user_id integer 入力したユーザー

star

ColName type note
user_id integer 対象のユーザー
word_id integer 対象の単語
suchi commented 10 years ago

dsc07735