Java プロコンゲーム 〜プレーヤー生成のステータスについて〜

プレーヤーステータスの生成のために以下の手順を踏みます。

  1. 生年月日より、十干十二支を導きだす
  2. 生年月日と本名より、数秘術の数字からタロットカードの番号(ザ・ワールドなど)
  3. 上記の1と2から六十干支、各カードに対応するステータスを合算
  4. プレーヤーのステータスに値を割り振る

残りの部分に関して

上記の手順で導きだした、カード、六十干支に対応するステータスマップ(データセット)を作成する必要があります。
割り振るステータスは、以下の項目になります。

ステータス

知性ステータス

  1. 論理の知性
  2. 言葉の知性
  3. 視覚の知性
  4. 運動の〜
  5. 音楽の〜
  6. 対人の〜
  7. 自己(心)の〜
  8. 自然の〜
  9. 魂の〜
  10. 霊の〜

物理ステータス

  1. 心の不動力(心が乱れない力)
  2. やる気
  3. 暗黒面包容力
  4. 体への意志電動率
  5. トレーニング量
  6. 身体学習力(頭でなく体が物事を覚える能力)
  7. 向上心
  8. イメージ描画力
  9. 外部からの情報への理解力
  10. 世界観
    Lv1. 自分の世界
    Lv2. 身内の世界
    Lv3. 国内
    Lv4. 世界
    Lv5. 次元(霊的な世界も含む)

上記の20項目をパラメータとして保持する方向でゲームを作ります。

そろそろ、コーディンングに入れるだろうか?

でわでわ。。。

以下、補足

ゲームの進め方

ゲームは以下のように進めます。

  1. プレーヤー(クライアントプログラム)がアクセス
  2. プレーヤー登録をサーバーが行う
  3. サーバーの画面でスタートボタン押下
  4. Mapの生成とプレーヤー配置
  5. 各キャラクター(プレーヤーなど)の操作
  6. ゲームの結果表示

上記のように進めます。

ゲームの目的

プレーヤーの目的

Map常にある「宝」を取得してスタート地点である「階段」に戻ってくること

ゲームオーバーの条件

  1. プレーヤーが戦闘不能になる時
  2. 指定のターン数内でクリアできない時

ゲームのMap上には、アイテムとか、モンスターとか罠があります。
これらをくぐり抜け、「宝」を取得して持ち帰るのがミッションです。

しかし、通常のRPGと違い、プログラムで実行しなくてはなりません。

なので、ちょっと難しいプログラムになってしまいますが、これをフォローする仕組みを組み込みます。

とりあえずは。。。

プレーヤー生成の処理を設計します。
とりあえずは、下のようなことを考えています。

職業は60種類

実際にある「職種」が大まかに以下の6つ

  1. 営業
  2. IT業務(ホームページなど)
  3. 企画
  4. 専門(各業種に依存する)
  5. 事務
  6. 環境管理(職場の衛生、出勤管理)

そして「業界」が以下の10個

  1. 広告メディア
  2. 教育
  3. 製造
  4. 不動産
  5. 農林水産
  6. 学会
  7. 政界
  8. 運送
  9. 医療
  10. アンダーグランド(グレーゾーンの業界)

ここから、何を実装するか?
とりあえずは、材料が揃ったのでこれをうまく組み込んでやることを考えてやります。

JavaFXの基本的なところ

細かい書き方などは下のリンク先に記載しています。

  1. UML 世界を作る 〜RPGでの世界を作る場合〜
  2. UMLの書き方(読み方)〜概要とクラス図〜
  3. UMLツール Star UML〜ユースケース図を書いて見た〜
  4. UMLツール 〜Star UMLを使う〜

javaFXはフレームワークです。なのでとりあえず下のように作成しました。参考にどうぞ。
JavaFXのパッケージにあるjavafx.application.Applicationを継承して作成します。
ここで、上のクラスを継承して実装することにより、画面表示を行うための細かい処理(Xサーバーへのアクセス及び、描画処理)を自分で作成しなくてよくなります。

つまり、作成するアプリに集中できるわけです。
その代わり、このフレームワークの使用方法を理解する必要があります。「JavaFXの〜」にあるリンクからOracleのドキュメントページに遷移できます。

自分の作成した記事は以下になります。
初心者でもわかる。。。というより作って動かして。。。とやってみるのが一番なのでその手順と実装サンプル、動かしてみたときのイメージを記載しています。

  1. JavaFX チュートリアル〜今度こそ、初めてでも大丈夫:Label〜
  2. JavaFX チュートリアル〜今度こそ、初めてでも大丈夫2:Label〜
  3. JavaFX チュートリアル〜今度こそ、初めてでも大丈夫3:Button〜

プロジェクトの作成方法

  1. プロジェクトエクスプローラーを右クリックします。
  2. JavaFXプロジェクトを作成します。
  3. プロジェクト名をつけます。使用するJDKは1.8です。JShellとか使用する予定がないので。。。

作成したプロジェクトは下のような感じです。

以前追加した、シーンビルダーというプラグインが入っているので、使用します。下は操作したときの動画です。今回作成するものではありませんので。。。

そして、作成したものは、下のような見た目です。

作成したときの動画は以下になります。途中で落ちましたが(笑)とりあえずは、使用するPCのスペックでメモリ不足(だと思う)により落ちる可能性があるので、File -> Save Asなどで時々保存すると良いと思います。

SceneBuilder

SceneBuilderは下のように作成しました。
SceneBuilderのセットアップはこちらを参照ください。

前回SceneBuilderを使用して作成した、FXMLは下のようEclipseのリソースフォルダへコピーしてプログラムから参照できるようにします。

まとめ

今回は、Socketを使用して実装するのにどう処理を行うかを考えました(設計しました)。
実装してみれば、Socket通信に関して理解ができると思います。
そして、低レベルAPIなので現在使用されるほとんどのデータ通信の土台になります。

つまり、ここがわかれば、他も理解できるということです。

今回はここら辺で。。。
でわでわ。。。

関連ページ

  1. Java ゲーム作成 〜ステーテス作成ロジック〜
  2. Java ゲーム作成 〜ステータス生成処理の設計〜
  3. Java ゲーム作成 〜ステータス作成 for キャラ作成〜
  4. Java ゲーム作成 データ作成 〜タロットカードの意味と性格〜
  5. Java ゲーム作成 データ作成 〜武器一覧〜

Java Basic

  1. Java Basic Level 1 Hello Java
  2. Java Basic Level2 Arithmetic Calculate
  3. Java Basic Level3 About String class
  4. Java Basic Level 4Boolean
  5. Java Basic Level 5If Statement
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 Traning of If statement
  8. Java Basic Level8 How to use for statement
  9. Java Basic Level 8.5 Array
  10. Java Basic Level 9Training of for statement
  11. Java Basic Level 10 While statement 
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1
  17. Java Basic JUnit 〜テストスイートの作り方〜


投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す