- 締切済み
JavaとJavaScriptでの開発
今学校でオセロのプログラムを作っています。 コンピューター対戦はもうできているのですが、クラスの中で人対人のオンライン対戦(?)リアルタイム対戦(?)っていうんですかね? それを作ろうとしていて現在手詰まりです。。。 オセロ自体はJavaScriptで書いています 悩んでいるのは ・何を送信すれば良いのか ・送信したときにどう自分を待ち状態にするのか ・リアルタイム更新のやり方 ・受信して何を読み込めばいいのか などわからないことだらけです。 今の考え的には人対人だからCPのロジックを考えなくていいしファンクションで駒が置けるかの判断と駒を裏返すことをすればできてくるのではないかと考えてます(こんなかんがえでいいんでしょうか?) 盤面情報とプレイヤーの自駒の情報をサーブレットを使ってアプリケーションスコープに入れてみたりもしましたがやはりリアルタイムでの更新という所で躓いてしまいます 先生たちに聞いてもわからなかったので質問させていただきました 回答のほうよろしくお願いいたします。長文ですいません
- みんなの回答 (4)
- 専門家の回答
みんなの回答
ふむ。 この質問、これ以上展開しそうにないって判断しますね。 その理由は、最初の質問時からいくつかありますが まずは 「先生達」何人もの先生から、一本化したアドバイスをもらっているのでしょうかね? また、共通の意見を持つ先生のアドバイスを聞いているのですかね。 また、実務経験など知識豊富なんですかね? littletokiさんが、きちんとやりたいことを固めてないようにしか思えませんね。また、AJAXがどこに利点あるかも理解してなさそうです。 AJAXの基本は サーバサイドプログラムに対して起動および戻り値を要求するものです。 当然ながら、サーバサイドの実装を逃げるものではありません。 それに、学校の授業で作成しているものであれば 当然、学校でもあるし、この年度末、開発期間は数えるほどですよね。 やりたいこと ・何を送信すれば良いのか が、でる自体、動作ろうとしてるかわかってないとしか思えませんね。 もっと自分の考えが決まっていて それについてアドバイスをしてもらいたいのであれば もっと明確な思想を発言すべきと思います。
- askaaska
- ベストアンサー率35% (1455/4149)
> askaaskaさんのいってるのも二つのファイルですよね 違うわ。 ファイルというのは 試合の経過を記録するものよ。 前述したけど 物理的にファイルじゃなくても データーベースでもメモリでも何でもいいわ。 サーバで複数人が共有できれば。 対戦部屋の仕組みは教えられないわ。 まずは考えてみて頂戴。 私の価値観ではすでに助言のレベルを越えてしまうのよ。 今回のお話で一番難しいところは 2者、あるいは他者の間での情報(盤面)の共有だと思っているわ。 そしてこれは前述した「ファイル」を使う方針で解決できるはず。 あとは実現する技術の問題よ。 それ以外はServletの基本的な技術だけで実現できるはず。 リアルタイム更新だって難しければ最初は リロードボタンつけたっていいわけだし。
- gess9999
- ベストアンサー率75% (3/4)
質問は、リアルタイムでの更新ですね。 Cometという技術を使うと良いですよ。
- askaaska
- ベストアンサー率35% (1455/4149)
えー つまりアイデアの募集ってわけ? > 受信して何を読み込めばいいのか 単純に作成するなら 対戦部屋番号に対応してサーバにファイルを作成。 ファイルじゃなくてもDBでもなんでもいいけど 説明の都合上「ファイル」と呼ぶわね。 そのファイルに盤面を記録。 あとは画面にその内容を毎回表示すればいいんじゃない? JSP1枚あればOKだね。 > 送信したときにどう自分を待ち状態にするのか ファイルにどっちの手番かを記述しておけば 表示するときに判断できるね。 > リアルタイム更新のやり方 相手側手番のときに5秒間隔とか10秒間隔でリロードしたらどお? Ajax使うより楽だと思うけど。 > 何を送信すればいいか そのくらいは自分で考えようよ。 最低でも「どのマスを選択したか」は送らないといけないよね。 「誰が」は作り次第では不要だけど。 「部屋番号」も作り次第では不要だけど。 あとは画面のデザイン次第と思うよ。
補足
回答ありがとうございます。 アイデアというか助言の募集です 対戦部屋ってどういう仕組みでできてるのか教えていただけないでしょうか? いろいろサイトを探してみたんですがよくわからなくて。。。 それと作らなくちゃいけないファイルって何がありますか? 今あるのがオセロ本体(html、script)と作っている途中ですがそれを格納するファイル(jsp)の二つがあります。 これらだけでよいのでしょうか? askaaskaさんのいってるのも二つのファイルですよね? ご指摘お願いいたします
補足
回答ありがとうございます Cometってなんですか? googleで調べてみたのですが見当違いのものばかりで答えにたどり着けませんでした。。。