0

そこで、PHPでかなりうまく機能するゲームを作成しました。これは、三目並べにかなり似た単純なゲームであり、PHPでゲームをさらに改善することはあまり望んでいませんでした。それを念頭に置いて、私はPythonを学ぶことにしました。私は今、基本に精通しています。簡単な数学、辞書、条件文を使用して、ゲームのモックアップを作成しました。ただし、これはターンベースであり、2人のプレーヤーが同じコンピューター上にいて、コンピューターと物理的に交代しないことをお勧めします。

したがって、最終的な製品は、各ユーザーが自分のコンピューターに持っているスタンドアロンアプリであり、アプリを実行してユーザー名を入力すると、説明どおりにログインしている他のユーザーがいる画面が表示されます。そこでは、2人のユーザーがゲームのラウンドを開始することに相互に同意することができ、完了後、「待合室」に戻されます。

さて、このようなもののために、私はフレームワークを必要としますか(または大いに助けられますか)?もしそうなら、どれですか?

これにはサーバー上のデータベースが必要ですか、それともすべてのデータをユーザーのコンピューターに保存できますか?

このようなものを作成する際に、CGIまたはソケット、あるいはその両方を処理しますか?

このゲームをWebアプリにするのは簡単でしょうか?(PHPを使用して、Webサイトからゲームを実行した場合に作成するものと同様です)

このテーマに関する資料を読んでいただければ幸いです。私が持っているものと同様の問題を解決するサンプルソースコードへのリンクは金の星を取得します=)

いつもありがとうございました。ありがとうございました。

4

2 に答える 2

2

一般的な対応

特に「待合室」などを含めて/これを広く使えるようにしたい場合、これはかなり大きなプロジェクトです(間違いなく悪いことではありませんが、Pythonで足を濡らすために最初にいくつかの小さなプロジェクトを実行することをお勧めしますWeb用のプログラミング)。ただし、プレーヤー間でネットワークを介してデータを送信する、単純な端末ベースのターンベースのゲームを作成するのは比較的簡単です。何が関係しているのかを理解するために、最初にシンプルなバージョンを作成することに焦点を当てます。そうは言っても、ここにあなたが尋ねた特定の質問に対するいくつかの答えがあります。残念ながら、これらのトピックについて学ぶことがたくさんあるので、あまり詳細にすることはできません。

具体的な回答

さて、このようなもののために、私はフレームワークを必要としますか(または大いに助けられますか)?もしそうなら、どれですか?

このプロジェクトのいくつかの異なる部分に役立つフレームワークがありますが、実装を支援するフレームワークを検討し始める前に、いくつかの大きな設計上の決定を行う必要があります。

これにはサーバー上のデータベースが必要ですか、それともすべてのデータをユーザーのコンピューターに保存できますか?

「待合室」があるということは、プレイヤー間の接続を容易にするために、ある種のサーバーがセットアップされていることを意味します。データベースが必要かどうかは、アプリケーションの規模に完全に依存します。ユーザーを追跡したり、繰り返しログインを有効にしたりする場合は、ほぼ確実にデータベースが関係しています。

このようなものを作成する際に、CGIまたはソケット、あるいはその両方を処理しますか?

CGIとソケットとは何かについてもっと読み、これについて考えてください。

このゲームをWebアプリにするのは簡単でしょうか?(PHPを使用して、Webサイトからゲームを実行した場合に作成するものと同様です)

Webアプリのバージョンを作成するのに役立つリソースはもっとあるようですが、まったく新しい一連の課題があり、おそらくさらに多くの新しいことを学ぶ必要があります。それはあなたがすでに何に慣れているかに部分的に依存します。Webアプリの作成と、インターネットを使用するスタンドアロンアプリの作成は、おそらく驚くべきことに非常に異なりますが、どちらも多くの新しい学習を伴います。

結論

まあ、それが何らかの形で役に立ったことを願っています。頑張ってください!

于 2012-07-18T06:23:57.227 に答える
1

これを使用する方法はいくつかあります。

  • 他のコンピュータへの直接接続を使用します。彼らは誰と対戦したいかを正確に知る必要があります。幸い、Pythonのソケット実装は非常に簡単に操作できます。
  • すべてのプレーヤーへの接続を確立し、2人のプレーヤーを一致させ、再生中のプレーヤー間でパケットを転送する手順を実行するサーバーをどこかに作成してホストします。ゲームブラウザをベースにしたい場合は、HTML5WebSocketを使用してこれを行うことができます。

いずれにせよ、一致するプレーヤーのための部屋を作成したい場合は、サーバーを作成する必要があります。私の意見では、Pythonは実際にこれに最適な言語です。これは、ソケットを使用する必要があり、Pythonはこの種のものを対象としているためです。サーバーは、ゲーム内のすべてのピアとすべての一致を追跡する必要があります。また、各試合のゲームの状態を追跡する必要があります。プレーヤーにログインなどをさせたい場合は、ユーザーとおそらく現在のゲームを追跡するデータベースバックエンドが必要になります。これにより、誰かが同時に複数の場所からログインするのを防ぐことができます。

Pythonでのソケットの操作に関するチュートリアルはたくさんあります。簡単に検索すると、非常に簡単なチュートリアルがここに表示されます:http ://www.kellbot.com/2010/02/tutorial-writing-a-tcp-server-in-python/ 。

接続されている複数のピアを追跡し、あるピアから別のピアにメッセージを選択的に転送することを示すチャットルーム実装を備えたHTML5WebSocketサーバーを作成しました。デモページはここにあります:http://cuznersoft.com/python-websocket-server/html/demo_chatroom.htmlそしてソースコードはここにあります:https ://github.com/kcuzner/python-websocket-server 。サーバーはPythonで記述されており、合計で最大1000行なので、それほど長くはありません。

于 2012-07-18T06:25:26.273 に答える