今回の質問内容、お聞きしたいことの具体例を記載します。
1、一番最初に質問をする
『今何が食べたい気分ですか?』
A1,和食 A2,洋食 A3,中華
2、2番目の質問に移る
『絶対に譲れない食材は?』
A1,肉 A2,魚 A3,野菜
3、(肉を選んだ場合)
『種類は?』
A1,牛肉 A2,豚肉 A3,鶏肉 A4,ラム肉
4、別の質問に移る
『他にも食べたい食材はある?』
A1,魚 A2,野菜
5、別の質問に移る
『どんなスタイルが良い?』
A1,汁物 A2,丼もの A3,定食
こんな感じで次々と質問および回答を続けていきます。
(実際にはもっと多い質問を想定しています)
「洋食が食べたい、肉は譲れない、牛肉が食べたい」
という回答をした人には、「洋食」「肉」「牛肉」という要素を持たせたいです。
(トーナメント表のように決まったルートを進んでいくのではなく、アキネーターのように流動的な質問でその都度要素を拾えるものを想定しています。)
そのうえでデータベースにはあらゆる料理を登録しておき、ハンバーグだったら「洋食」「肉」、エビチリだったら「中華」「エビ」「辛い」などの要素を持たせておきます。
最終的にはユーザーが回答した中で得た要素を条件にデータベースから検索をして、今の気分に適した料理を表示できるようにしたいです。
ここは全てが一致していなくても、一致した要素が多いものを選びたいです。
困っている事
やりたい事は固まっているのですが、肝心のソースコードの組み立てやロジックが調べても中々出てこず固める事ができません。
質問と回答をどんどん繰り返していって、最終的な回答だけに要素を持たせる(全部の組み合わせを作っていく)というやり方ではなく、回答1回ごとに要素が蓄積されていくようなやり方がしたいのですが、何か方法はありますでしょうか?
どういった技術、構文を使えばいいのか、ざっくりでも構わないので教えていただけるとありがたいです。
よろしくお願いします。
一応自分で考えているロジックも記載させていただきます。
考えているロジック
まずは何も入っていない変数を定義する。
String food = null;
回答選択肢にデータベース上で要素を登録しておき、選んだ回答に応じて呼び出し、変数に追加していく。
select <要素> from AnserList where click = "エビ" rs.next(); String colect = rs.getString("要素"); food = food + colect; これを複数回繰り返してく
こんな感じで追加していけるのかな?と考えています。
ただ、貯まりに貯まった要素をどう展開し、sql文のwhere句で条件として指定するのかがお恥ずかしながら思いつかない状態です。
回答2件
あなたの回答
tips
プレビュー