Java ゲーム作成 〜ステータス生成処理の設計〜

Javaゲームを作成するのに、プレーヤーのステータス生成処理を考えます。

前回、作成しようとしているゲームの大まかなゲーム進行の流れとステータス生成の時に使用する値に関して考えました。

スタータス生成

まずは、下のようなフローで実行しようと考えています。下の図はフローチャートと言います。

この、フローチャートがあると「処理をどのように進めるか?」が目に見えて考えやすく、変更しやすいと思います。

今回作成した、処理フローは「条件分岐」もループ処理もないのでまっすぐ一列に処理が走ります。

ある意味「ロードマップ」に近い感じです。

今回のフローチャートは概要レベルなので細かい部分がありません。ロジック的にもループとか見えてきません(笑)

処理の内容に関して

仕様を再確認するような感じになりますが、以下のようなステップになります。

概要レベル

  1. プレーヤーが入力した本名(ローマ字)と生年月日を取得する
  2. 数秘術の算出方法を使用してプレーヤーの以下の値を求める
    ・人格数
    ・ハート数
    ・運命数
    ・意思数
    ・特性数(複数)
    ・欠落数(複数)
  3. 求めた数字から、パラメータマップを使用してステータスを算出する
ステータスマップ

下の表の○部分が加算ポイントになる。
数秘術の数字が1の人の場合は「目的達成、個性。。。」の値がプラスになるという形です。

☆数字 1 2 3 4 5 6 7 8 9 11 12 備考
目的達成
個性
自立
愛情
知識
許容
連帯感
認知
創造
リーダーシップ
真理の探究
奉仕
承認
意思貫徹
霊性
論理
空間把握
無私
自制
具現化
行動を起こす
思慮深い
表現

上記のような形で、算出した数秘術の数字とステータスを関連付けます。

そして、算出した数字はタロットカードとも間れ付けます。
詳細に関してはこちらの記事に記載しています。

具体例

人格数=11
ハート数=7
運命数=4
意思数=22

上記の場合は、初期値は0ですので、知識の値が+3されることになります。

特徴数と欠落数の扱いは考え中です。。。

とりあえずは、こんなところで。。。

でわでわ。。。

Java ゲーム作成 〜ステータス作成 for キャラ作成〜

Java(プログラミング言語)を使用して簡単なゲームを作成しようとしています。
大まかに下のようなイメージです。これはU16プログラミングコンテストで使用する画面(UI)です。

簡単なゲームというところで、シンプルなルールで作成しようと考えた結果このゲームを真似ようと思った次第です。

U16プロコンサーバー

上のアプリ(サーバー)は確かChaserという名前だったような気がしましたが、いまいち見つからず。。。
Gitからダウンロードできますので、興味があれば。。。細かい取得の方法は下の記事に記載しています。Git クローンで取得します。ちなみにEclipseを使用しています。

  1. Git クローンの方法
  2. Eclipseのインストール

ちなみに下の動画は、Gitからウ16プロコンサーバーをクローンして、自分のPCで動かしてみたものです。

大まかに、以下のようなルールでゲームを行います。
下の条件を満たした時に勝利することができます。

  1. クライアントアプリで、サーバーにアクセス
  2. サーバーで「H」か「C」を操作して
    2-1. アイテムの保有数が多い方
    2-2. 相手をブロックにはさめる
    2-3. 相手が行動不能になる

ここでのポイントは、クライアントアプリを自分で作成するところです。作成するのにプログラムを作成します。
シンプルに、下のようなプログラムを作成します。

  1. クライアントアプリからサーバーにSocket通信で接続する(実装サンプルはこちら)
  2. サーバーから送信される周りにある物体の情報(ブロック(通行不能)とかアイテムなど)を取得(受信)
  3. 周りの情報を判定して、次の操作をプログラミングする

上記の1~3を繰り返して上記のルールで勝敗を決します。

自分は何を作るのか?

実は以前に自分もこちらのクライアントアプリを作成したことがあります。しかし、期日までにちゃんと作成できず。。。

このような経緯があり、「Javaでプロコンサーバーを作成する。」という目標ができました。そして現在に至るという次第です。

作成するのに、色々と考えています、大まかにRPG風にU16プロコンサーバーを作成し、ステージをダンジョンに変えてやったらどうだろうか?と考えた次第です。詳細に関しては以下の記事を参照ください。

  1. 設計を始める
  2. 画面の入力(ユースケース)を考える
  3. 見た目の作成に向け
  4. キモになるSocket通信の実装に関して
  5. Socket通信を実装する
  6. 参加者(プレーヤ)の生成ロジック1

ここまできて、「占い」を使用してみようと考えたので、色々と調べました。やはり「魔法」は必須だと思ったからです。

  1. 魔術・呪術に関しての調査
  2. 数秘術に関して(占い)
  3. 占いから数値を取得する
  4. 四柱推命(占い)の調査
  5. プレーヤー生成のシュミレート

プレーヤー生成ロジック

実際のところは、まだロジックができていません。そのために今まで調べ、まとめてきたことをいかに示します。

プレーヤーが入力するもの

現状では、以下のように考えています。処理フローで書くとしたのようになります。

  1. クライアントアプリで、サーバー(ゲーム)に接続する
  2. 接続時に、簡単な認証を行う。
  3. プレーヤーの情報を記載するファイルを指定しているので、そのファイルを読み込む(クライアントから送信する)
  4. プレーヤが入力するのは名前(ゲーム用の名前と本名のローマ字)、生年月日です。

【前提】

あくまで、子供向けのプログラミングゲームなので小難しい部分は親クラスで実装してしまいます。
なので、プレーヤーは親クラスを継承してクライアントアプリを作成することになります。

入力値から算出するもの(Ver1.0)

入力値から算出するのは、以下の23項目です。
そして、数秘術をベースにして値を算出します。
数秘術では、生年月日と名前から以下の数字を取得します。

  1. 人格数
  2. ハート数
  3. 運命数
  4. 意思数
  5. 特性数(複数)
  6. 欠落数(複数)

そして、各数字を分類(パラメータ化)してその値をプレーヤーの値に設定する想定です。

プレーヤのパラメータ(性質)

前提として以下のパラメーターは各項目に対して数値が高いということは「行動しやすい」「感受性が高い」などのようにその方向に向かい傾向が強いことを示す。

  1. 目的達成に向けて行動したい性質
  2. 個性を大切にする性質
  3. 自立性
  4. 愛情性
  5. 知識性
  6. 許容性
  7. 連帯感を持ちたい(共有したい)性質
  8. 認知、知名度があることを実感したい性質
  9. 創造することに喜びを感じる性質
  10. リーダーシップを着ることに喜びを感じる性質
  11. 真理を求める性質
  12. 奉仕することに喜びを感じる性質
  13. 他者から認められることに喜びを感じる性質
  14. 意志を貫く性質
  15. 霊性(物質界とは違う世界を感じる性質)
  16. 論理性(物事を順序立てて)考える性質
  17. 空間把握能力、そのように物事を捉える性質
  18. 無私(無我、利己的な考え方から解放された)性質
  19. 自制を持って行動しようとする性質
  20. 具現化しようとする性質
  21. 行動を起こそうとする性質
  22. よく考えようとする性質
  23. 考えなど、色々と表現しようとする性質

ちょいと細かい(数が多い)ですが、これらの情報をまとめて以下の7項目くらいにしようと考えています。

  1. HP
  2. MP
  3. 素早さ
  4. 打たれ強さ
  5. 精神力
  6. 霊力

まとめ

とりあえずはこのような形で、パラメータ化を考えています。もう少し、考え練ろうと思っています。



Java ゲーム作成 データ作成 〜タロットカードの意味と性格〜

数字 アルカナ 正位置 逆位置
0 愚者 愚かな行為
浮浪者
定職や定まった住居も無い者
流れ者
大道芸人
香具師
やくざ者
未熟
間違った道を行く

ノイローゼ
精神病
狂犬病
物質への執着
愛より物質
条件をとっての結婚
希望
終わりからの再生
精神的な目覚め
悟りをひらく
学問
知識を求めての旅
海外留学
海外旅行
よい旅
1 魔術師 希望
創造
巧み
熟練
創業
修行を始める
恋愛や交際の始まり
入学
ものごとの始まり
聖地
聖者
宗教上の本山などへの参詣
結婚式
新婚旅行
優柔不断
不適当
弱さ
不安定
神経の不足
創造力の不足
未来の計画に対する臆病さ
無理にすすめられる結婚や結婚式
技量不足で低迷する恋愛
2 女司祭長(女教皇) 学問
知性
常識
静穏
知恵
賢明さ
落ち着き
啓示されない未来
芸術家
オカルチスト
晩婚
わがまま
思慮のない行為
欺瞞
官能的な享楽
移り気から起こる失敗
悪女の恋人にほんろうされる
3 女帝 美貌の女性
官能的な女性
未来に対して安定した現状
妊娠
出産
結婚
愛欲
家庭
自然と接触することから得られる霊感とやすらぎ
癒し
芸術的才能や感覚
収穫
繁栄
同情的な親切
物質的援助と保護
豊かな土地
良い土地
自然が損なわれていない土地
ぐずつく結婚
優柔不断な愛
不決断
女らしい性格のマイナス面
なかなか受胎しない状態
不潔な女性
生産性の欠如
4 皇帝 権力
支配力
一家の家長や一族の長
職場、またはグループのリーダー
長男
活動力
情熱
闘争本能
愛情や女性を行動や力で獲得するたくましい男性
性衝動
未熟
無力
外見と違って内面は弱い性格をもつ男性
統率力を失う
指導性の欠如
長男だが家や家業を継がない立場
5 司祭長(法王) 人生の転換
心の転換
思いやり
愛情の深まり
愛情面の不可能を可能にする
宗教(密教的なもの)
オカルト
儀式
結婚式
幸福への援助がえられる
よき相談相手
忠告
教え
勇気と功名を与える人物
宗教的な慰め
異端
慈悲や思いやりに欠ける
援助が打ち切られる
誤った情報
ゆがめられた真実
情報をつかむことによって得られた権力
宣伝
歪める
悪意のある忠告
6 恋人 恋愛
女性側からの誘惑で成功した恋愛
無邪気な十代や若者の恋愛関係
セックス
嫉妬
美しさ
情熱
好きで打ち込む趣味
重要な事件の発生による選択の時期
よろめき
誘惑
遊びだけの関係
気まぐれ
結婚生活の危機
痴話げんか
道徳心の欠如による危険
ジェラシー
希望に関して重要な道が選べない
7 戦車 征服
勝利
凱旋
自立
出世
野望をなしとげる
困難の克服
宗教、迷信に打ち勝つ
先頭をきった最初の勝利
自力で勝ち得た成功
乗っ取り
買占め
経済的野心の成功
立身出世
力で勝ち取った恋愛
戦争
戦火
兵隊
自動車、その他乗り物
運転者
計画の挫折
恋愛などの敗北
障害
利己主義
ルーズ
他人の権利を無視する
8 剛毅、もしくは力 勇気
自己犠牲
念力
インスピレーション
不可能を成し遂げる力
常識や社会通念の打破
偉大な精神的指導力
忍耐
努力と忍耐による愛の勝利
理想へ向かう
相手の醜い欲望をなくさせる
危険を恐れない勇気をもつなら計画を実行に移すことが出来る
獣性や強いものに負ける
常識や法に負ける
力の乱用
忍耐の欠如
弱さ
チャンスを逃がす
9 隠者 秘められた知恵
哲学
真実の愛(それらを求め続ける者)
研究者
思慮
分別
自制
自己の判断による行動
静かな忠告
弁護士
逃避行
俗世間から離れた生活
愚かな知恵
偽りの愛
未熟
忍耐不足
愚かな悪事
忠告の拒否
親切な助言の拒否
10 運命の輪 幸運
成功
無限のひろがり
宿命
占星学
天文学
運命的な出来事
運命的な結びつき
一目ぼれ
新しい恋のめばえ
環境の変化による問題の解決
つかの間のチャンス
幸運の後にやってくる突然の不幸
失恋
事業の失敗
経験不足からくる失敗
逆戻し
挫折
悪い転換
事件の終わり
11 正義 正義
裁き
裁判
調停
公正な人物
常識家
均衡をとって生きていく人
バランスのとれた愛情
家庭と仕事の均衡をうまくとる
財政上の均衡がとれる
相手を厳しく裁く
裁判上の厳しい裁き(敗北)
無法
暴力
財政上の失敗
公正さを欠く
家庭と仕事のバランスが崩れる
12 吊るし人 自己犠牲
自己放棄
試練
修行
難行
殉教者
幽界(潜在意識の世界)からの導き
身動きのとれない状況
服従
復活
再生
心の柔軟性
我欲のとりこ
わがまま
自己主張がすぎる
つかみ難い態度や状況
敗北に導く精神的葛藤
13 死神 離婚
別離
すべてを捨てる
ものごとの(よくない意味での)終わり
一度、無に戻したほうが良い
盗難
火災による損失
破産
取引の停止
生産や営業の中止
退学
突然やってくる病気
恐怖心を持ちやすい病気
飢餓
暴力死
事故死
不作
意識の変革
再生
創造
運命
更新
スクラップ&ビルド
病気回復
蘇る愛
遺産相続
14 節制 職業上の成功
業績をあげる
社会的な名声を意味する
名家
宝石
大邸宅
倹約
蓄財
生命力
(気象上で)風が出てくる
名誉
誇りをうる
高潔な人格
芸術家
超能力
精神的なものと肉体的なものが一致した恋愛
社長
高給生活者
勝負師
短気、頑固
わがまま
贅沢
浪費
恋愛上の孤独
夢想的な恋愛
賭博
風にさまたげられる
強風
生命力や活力の浪費
15 悪魔 病気
意気消沈
不況
不服
不満足
力の誤用
有益な友人を失いやすい
友人の裏切り、策謀
既婚者への愛の成就
悪への屈服
黒魔術
呪法
科学
学究
心霊学
オカルトへの理解のはじまり
臆病
屈服からの解放
病気の回避
科学性の欠如や無視
迷信
16 大火
噴火
地震
落雷
災難
事故
負傷
発病(火傷、高熱を伴う病)

爆発物
暴力
破壊
消防自動車
闘争
衝突
悲劇
破産
信用の失墜
古い概念をくつがえす
精神の堕落
失望
経営者の交替
不当な圧迫
苦悩
投獄
罠にはまる
窮地
誤った告発
愛情面の誤算
熱しやすいがさめやすい態度
ボヤ
ちょっとしたスリルを味わう
17 恵みの雨
豊かな大地
豊かな収穫
良薬
母性愛
愛を与える
優れた健康
希望
時がいつの間にか流れる姿
洞察力
利己的でない援助
霊感
精神的援助
美しさ
順調な愛情
よい航海
船の旅
河川の氾濫
大雨
洪水
厭世観
頑固
物事が過度になる
水に流される
働きすぎによる疲労
美貌の衰え
邪推
良くない航海
18 予期されない危険
恋愛上の不運
スキャンダル
欺く
欺かれる
迷い
裏切り
家庭、家族の不和
家族の中に出る病人
死亡した関係者にまつわる事柄
霊感
心霊現象
死者との交霊
信仰
墓地
悪霊が付く
悪魔祓い
不安のある旅立ち
転職
就職
進学
見合い結婚などで未知の世界へ飛び込むこと
先祖
先祖霊
霊界
小さな嘘
軽いスリルを味わう
少しの失敗
過去の出来事に影響される
魔女的な女性に影響される
過去の嫌な相手が現れる
恋愛上の口論
19 太陽 幸運
成功
物質的にも幸福な姿
到達
獲得
幸福な結婚
恋愛の成熟
情熱
出産
期待した妊娠
繁栄
有名人
人気
出世
再会
仲直り
生命力
古い観念にとらわれない人物
自然児
大自然
南国への旅
新婚旅行
結婚生活のトラブル
婚約破棄
仕事上や家庭内の損失
中絶
流産
難産
孤独
独裁
わがままからくる人間関係の失敗
20 審判 目覚め
驚異
変革
著しい変化
目的の完成
不滅の精神力や信仰
思想を身につける
成功
再生
回復
蘇る愛
母性愛
不安定
精神力の欠如
未決定
延期
愛の幻滅
優柔不断
別離
あざむき
21 世界 最も強く、最も良い意味(78枚のタロットカードの中で…)
目的の達成
念願の成就
結婚
恋愛
職業などの成功
世界一周のような大旅行
完全
成功
人格者
精神の高揚
超能力や霊力の会得
名声
極楽往生
挫折
不完全
物質への未練
旅や変革への不安
婚約破棄

Java ゲーム作成 データ作成 〜武器一覧〜

DBに登録する

Wikiに記載されている情報をまとめて整理したいので、必要な情報をDBに登録したいと思います。
しかし、文章では登録できない(やる意味がない)のでCSVなどインポートできる形に変換します。

カテゴリ分けする

以下のようにマスタ情報と取得したい情報(武器名)に分けてやります。

大きな分類

  1. 刀剣類
  2. 鈍器類
  3. 竿状武器(ポールウェポン)
  4. 投擲武器
  5. 射出武器
  6. 暗器・格闘武器
  7. その他の武器

架空の武器

超自然的な武器

  1. 「必ず命中する」、「投げつけても戻ってくる」といった武器そのものの性質を強化する武器
  2. 「持ち主は傷つかない」「持っていれば必ず戦争に勝つ」のような事象そのものを操る力を備えることが散見される。特に自然神がもつ武器はその神性を現したものが多く
  3. 特殊な金属や自然の力そのものを鍛えた武器すらある。海の神ポセイドンの三つ又の槍(トライデント)
  4. 雷神トールのミョルニルなどが有名である。また杖としてアスクレピオスの杖などとある特定の象徴として用いられることがある。
  5. 魔法だけにとどまらず科学を組み合わせ、魔力を発射する銃が登場する作品も存在する。

SF作品の武器

  1. 熱線を放射するヒートガンやブラスター
  2. レーザー銃
  3. 熱に加え、物理的なエネルギーを発射するプラズマ砲。
  4. 冷凍銃
  5. 電磁誘導を利用したレールガンやコイルガン
  6. 荷電粒子を射出する荷電粒子砲。
  7. 超小型の針をばらまく短針銃など。
  8. 重力、音波、磁力、核、空気などを射出
  9. エネルギー刃をつくりだすライトセーバーなどもある。

以下は、欲しい情報をコピーしてきたものです。マークダウンの形で書き換えました。

刀剣類

細長く扁平で、少なくとも片側が刃になっているもの。基部には握りがあり、主としてこれを握って扱う。握りが長いものは下記の竿状武器に含める。
材質は少なくとも刃の部分は金属製で、刃の部分は切れ味がよく、普段は危険なので鞘に収められることが多い。形状は様々であるが、片刃と両刃がある。握りと刃との間に段差をつける例が多く、つばという。これは握る手が刃のところに行くのを避けるもので、同時に敵の武器を受ける際には自分の手を守る役割も果たす。

使い方

使い方としては刃のある側でこするか叩くかして切る方法と、先端で突く方法がある。

起源:ナイフ

  1. 中国刀
  2. 柳葉刀
  3. 胡蝶刀
  4. カットラス
  5. シャムシール(シミター)
  6. ショーテル
  7. タルワール
  8. サーベル
  9. スクラマサクス
  10. ファルシオン
  11. カンピラン
  12. ククリ
  13. コラ (刀)
  14. 直刀(反りの無い刀)
  15. 日本刀
  16. 太刀
  17. 野太刀・大太刀
  18. 長巻
  19. 苗刀
  20. 小太刀
  21. 刺刀
  22. 打刀
  23. 脇差
  24. 軍刀
  25. アキナケス
  26. グラディウス
  27. グレートソード
  28. ショートソード
  29. スモールソード
  30. ブロードソード
  31. カッツバルゲル
  32. エストック
  33. レイピア
  34. ロングソード
  35. バスタードソード
  36. ツーハンデッドソード
  37. クレイモア
  38. 中国剣
  39. 単剣
  40. 双手剣
  41. 短剣
  42. ダガー
  43. ソードブレイカー
  44. マン=ゴーシュ
  45. ジャマダハル(いわゆるカタール)
  46. パタ
  47. フランベルジェ(剣身の形状の一つの総称。中国剣にも存在)

鈍器類

  1. 棍棒
  2. メイス(槌矛)
  3. 大鎚
  4. 棍・棒
  5. 半棒
  6. 警棒
  7. 特殊警棒
  8. 警杖
  9. 六尺棒(クォータースタッフ)
  10. 多節棍
  11. ヌンチャク
  12. 三節棍
  13. 七節棍
  14. その他多節鞭
  15. 金砕棒
  16. ブラックジャック
  17. レザービリー
  18. クボタン
  19. フレイル(連接棍棒)
  20. モーニングスター
  21. 狼牙棒
  22. 鎖鎌
  23. 分銅鎖
  24. 流星錘
  25. スルチン
  26. 釘バット

竿状武器(ポールウェポン)

  1. ウォーハンマー
  2. 戦斧
  3. トマホーク
      1. 手槍
      1. 管槍
      1. 鎌槍
      1. 十文字槍
      1. トライデント
      1. パイク
      1. グレイブ
      1. ランス
  4. バルディッシュ
  5. ハルバード(鉾槍)
  6. パルチザン
  7. ミリタリーフォーク
      1. ギサルム
  8. 大刀
  9. 薙刀
  10. 薙鎌
  11. 戈・矛
      1. 蛇矛
  12. 月牙鏟

投擲武器

  1. 投擲(武器)
      1. 印地(投石)
      1. 手榴弾
      1. 火炎瓶
      1. チャクラム
      1. ブーメラン
      1. ボーラ
      1. 打根
        -- 1. 手裏剣(太針系・短刀系)
        -- 1. ダーク(短剣)
  2. 投擲(補助)
      1. 投槍器(スピアスローワー)
      1. 投石器(スリングショット)
      2. 射出武器

  3. 吹き矢
  4. 弓矢
  5. クロスボウ
  6. 火槍
      1. 拳銃
      1. 散弾銃
      1. 機関銃
        -- 1. 重機関銃、軽機関銃
        -- 1. 短機関銃、PDW
      1. 小銃、ライフル、アサルトライフル、狙撃銃
        -- 1. 銃剣
        -- 1. グレネードランチャー、対戦車ミサイル、
      1. 火炎放射器
      1. 催涙スプレー

暗器・格闘武器

    1. 手裏剣
    1. 鉄柱
    1. 寸鉄
      -- 1. クボタン
      -- 1. ヤワラ、ヤワラスティック、ジュードースティック
    1. 鉄拳
    1. 角指
    1. 猫手
    1. ナックルダスター
    1. トンファー
    1. 鉄甲

その他の武器

  1. 草鎌
  2. 木刀
  3. 鉄扇
  4. スタンガン
  5. 陰陽鶏爪鋭


今回は、データを洗っただけですがあくまでもプログラムで使用する目的です。

関連ページ一覧

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseにCDTをインストール〜
  3. Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~

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 4〜Boolean〜
  5. Java Basic Level 5〜If 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 9〜Training 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 〜テストスイートの作り方〜

Git関連

  1. Java Git clone in Eclipse 〜サンプルの取得〜
  2. Eclipse Gitリポジトリの取得 〜GitからソースをPullしよう〜
  3. IntelliJ IDEA Git〜Gitリポジトリからクローン〜

JavaFX関連ページ

  1. Eclipse SceneBuilderを追加する
  2. JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
  3. JavaFX SceneBuilder〜ボタンにメソッドを割り当てるワンポイント〜
  4. Java プロコンゲーム 〜見た目の作成(SceneBuilderの使用)〜

ステップアップ関連ページ一覧

  1. Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜
  2. ステップアッププログラミング〜Java FxでHelloWorld解説〜
  3. Java StepUpPrograming〜JavaFX で四則計算〜
  4. Java StepUpPrograming〜JavaFXで画面切り替えを作る1〜
  5. Java StepUpPrograming〜JavaFXで画面切り替え2ボタン作成〜
  6. Java StepUpPrograming〜JavaFXで画面切り替え3アクション〜
  7. Java StepUpPrograming〜JavaFXで画面切り替え4Pane切り替え〜
  8. Java StepUpPrograming〜JavaFXで画面切り替え5WebEngine

JavaFX + ND4Jで機械学習準備

  1. JavaFX + ND4J〜数学への挑戦1:ND4Jのインストール〜
  2. JavaFX + ND4J〜数学への挑戦2: 行列の計算〜
  3. Java + ND4J 〜数学への挑戦3: ベクトル(配列)の作成方法〜

オブジェクト指向関連ページ

  1. [オブジェクト指向の概念1〜OracleDocのチュートリアル1〜](https://zenryokuservice.com/wp/2019/10/301. /%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91%e3%81%ae%e6%a6%82%e5%bf%b5-%e3%80%9coracledoc%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%ef%bc%91/)
  2. オブジェクト指向の概念2〜クラスとは〜

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 〜テストスイートの作り方〜