golfゲーム 1月の進捗情報

はじめに

2回目の投稿です。ゴルフの進捗状況の記録を残すという意味でこのブログに投稿したいと思います。また、最低1ヶ月に1回は進捗をブログに記録したいと思います。

 

f:id:sano817:20160129200852j:plain

使い慣れているc言語で作ったゴルフゲームをjava言語を学ぶことを主な目的としながら、javaでも実装する計画。

 

golf.cでフィールドの実装に成功

f:id:sano817:20160129201219j:plain

構造体にフィールド要素を追加した。木構造の概略は以下の図の通りである。

f:id:sano817:20160129201356j:plain

バンカーを通った場合は、片方を選択した場合は、先に進め、もう片方を選択した場合はその場所に踏みとどまる仕様になっている。

 

java木構造(疑似的)の実装に成功

f:id:sano817:20160129201912j:plain

上図はeclipseでのCUIでの実装である。S.S.氏がゴルフゲームのpackageを作ってくれてjavaでも実装することができた。とても、シンプルに作ってくれたのだが、自力でこのコードを書くまではまだまだできない。このコードを自分の学びの素材としてjavaの理解を深めたい。

 

今後の計画

新たな計画として木構造を辿る途中でランダム変数によりイベントを発生したいと思う。その詳しい概要は、下図のようなイベントで正しい選択ができれば何もなく先に進めて間違った選択を選べばペナルティをくらうといったものである。イベントは、突然起こる。

f:id:sano817:20160129202313j:plain f:id:sano817:20160129202338j:plain

さらに先の計画として、これらをGUIで実装するのでイベントごとに画像を出力できるようにしたい。とても苦難な道ではあるが。

 

さいごに

これだけでは、まだほとんど分からないと思うが、今後も随時、進捗情報を記録を残すという意味で投稿していきたい。

 

golfゲームと木構造

この記事は、SLP KBIT Advent Calendar 10日目の記事です。

ごあいさつ

SLP KBIT Advent Calendarをきっかけに、はてなブログデビューをしました。

過去のAdvent Calendarを参考に作っていますが、いろいろ初心者なのでその点は御了承を。また、私は国語力が壊滅的なので文法面でも多々おかしな点があると思いますがその点もご了承を。

SLPのみなさん向けの記事となります。

 

はじめに

私は、GMVに配属されていて約5ヶ月?になりますが、まだまともにプロジェクト活動できない部分がある。

というより、なにひとつゲーム制作に取り掛かれていない・・・

同じプロジェクトメンバーとのコーディング能力に差がある分、なかなか団結して取り組むことができない。

はっきりいってゲーム制作は停滞中である。

そこで、まずは自信のGMVでの経験を積むために一人でもゲーム制作を始めることにした。

この場を借りて自分が考えているゲーム制作、今の現状をそこはかとなく書き連ねていこうと思う。

 

自分が考えているゲーム制作

記事のタイトルやAdvent Calendarでも告知していたが、

私が考えるゲーム制作はずばり 

シミュレーションゴルフゲーム

である。

私は、SLPとゴルフ部を兼部している状態である。そこで、ゴルフ部の経験をどうにかSLPにも活かせないかということで決まった。

そして、大学の講義で最近、ポインタを使った木構造を学んだのでその木構造も取り入れてみようと思った。

f:id:sano817:20151209191611j:plain

 

できるだけ詳しく

では、そのシミュレーションゴルフゲームというものをできるだけ詳しく語ろうと思う。

 

    1.ゴルフとは

まず、ゴルフがどういうものなのかということを知ってもらいたい。ゴルフというのは単純に遠くにボール飛ばせたらいいってものではない。雨晴れ、高低差、風向き、湿度などいろいろな自然環境を考慮して考えなければならない。つまり、右に打つか、左に打つか、強め弱めに打つか、自分で選択して打たなければならないのである。

f:id:sano817:20151209173814j:plain

 

     2.ここで木構造

私はこの選択という面に注目して木構造でゴルフゲームができないものか考えた。下図がその概略である。

 

f:id:sano817:20151209180852g:plain

*アウト・オブ・バウンズ(out of bounds)とは、ショットしたボールがプレー領域の外にでることでペナルティーとして打数に+2カウントされる。

厳密には木構造ではないが、これならボールが止まる位置というのが決まっているので選択してその地点をたどっていくことができる。余談だが、ペイントで編集したので荒くなってしまった。また、ゴルフ経験者がこの図を見るとツッコミどころ満載になっている。

 

    3.コマンドプロンプトで実装

f:id:sano817:20151209203126j:plain

 

f:id:sano817:20151209183231j:plain

f:id:sano817:20151209183234j:plain

バーディとは、目標打数より1打少なくカップインすることである。

ボギーとは、目標打数より1打多くカップインすることである。

実験段階として上図の木構造で実装してみた。入力は右と左の2択で1と2のみである。出力は現在の場所と打数、カップインした場合はバーディやボギーなどのスコア名称が出力される。再帰と構造体を使って木構造を走査している。OB判定やバンカー、ウォータハザードの処理はまだで、コース一面がフェアウェイ前提であり、この程度なら誰でも簡単に作れる非常に簡素なものになっている。

 コードはまた後日。。。

 

    4.今後の展望

OB判定やバンカーウォータハザードの処理も近々、実装予定である。また、しばらくはC言語でいくつもりだが、いずれはjava言語でGUIとして実装したいと考えている。今の段階でjavaの知識がほとんどないのが現状ではあるが、このgolfゲーム制作を通してjavaの知識を学ぶことが目的でもある。ネタ要素もいれる予定である。

f:id:sano817:20151209191955j:plain

 

さいごに

以上ではありますが、この木構造を使ったgolfゲームについての詳細はまた後日、改めてLTを通して発表したと思います。

また、このgolfゲームの進捗情報は随時このはてなブログを通して記事として更新したいと思います。(せっかくはてなブログデビューしたのだから・・・)

このブログの更新が1か月以上なければgolfゲームの制作は停滞しているとお考えください。