いものやま。

雑多な知識の寄せ集め

BirdHead

カードゲーム「BirdHead」がiOSでリリースされました。

カードゲーム「BirdHead」がiOSでリリースされました! どんなゲーム? 鳥たちが自分の影響力を競い合っています。 彼らの世界では、頭が高ければ高いほど、強い影響力を持つのです。 しかし、気をつけて下さい。 目立ちすぎた鳥は、猟師に撃たれてしまうか…

「BirdHead」の仕上げをしてみた。(まとめ)

これまでの各記事は以下から。 ルール記述 「BirdHead」の仕上げをしてみた。(その1) - いものやま。 「BirdHead」の仕上げをしてみた。(その2) - いものやま。 スタート画面とルール画面 「BirdHead」の仕上げをしてみた。(その3) - いものやま。 ゲ…

「BirdHead」の仕上げをしてみた。(その6)

昨日はモデルの保存と復元を行った。 今日は復元されたモデルを元に、ビューを復元する処理を実装する。 HandNodeの修正 まずは手札。 //============================== // BirdHead //------------------------------ // HandNode.swift //===============…

「BirdHead」の仕上げをしてみた。(その5)

昨日はゲーム結果の表示を実装した。 これで残すはゲームの中断と再開のみ。 まずはモデルの保存と復元を実装していく。 GameInfoの修正 基本的にはYWFと同じ。 以下が参考になると思う。 同様に、GameInfoを修正して、保存と復元が出来るようにする。 //===…

「BirdHead」の仕上げをしてみた。(その4)

昨日はスタート画面とルール画面を作った。 今日はゲーム結果の表示を実装していく。 MinusPointInfoNodeの修正 ということで、早速実装を。 まずは、ゲームの順位を表示できるようにするために、マイナス点一覧の修正を行う。 具体的には、指定された順位に…

「BirdHead」の仕上げをしてみた。(その3)

昨日は英語のルールを書いた。 今日はスタート画面とルール画面の作成。 といっても、たいして書く内容もないので、完成形だけw スタート画面 まずはスタート画面。 シンプルw PLAYボタンを押すとゲームが始まって、RULEボタンを押すとルールが見れるように…

「BirdHead」の仕上げをしてみた。(その2)

昨日は日本語のルールを書いた。 今日は英語のルールを書いていく。 Overview Birds compete for their influence. Higher head has more influence in their world. But, be careful. Too conspicuous birds may be shot by a hunter. BirdHead is a trick-…

「BirdHead」の仕上げをしてみた。(その1)

前回までで、BirdHeadが一通り遊べるようになった。 あとは仕上げを行って、リリースするのみ。 とりあえず、まずは日本語のルールを書いてみた。 何度目だって感じだけど・・・(^^; 概要 鳥たちが自分の影響力を競い合っています。 彼らの世界では、頭…

「BirdHead」のUIを作ってみた。(まとめ)

これまでの各記事は以下から。 画面構成、アーキテクチャ 「BirdHead」のUIを作ってみた。(その1) - いものやま。 カード 「BirdHead」のUIを作ってみた。(その2) - いものやま。 デッキ 「BirdHead」のUIを作ってみた。(その3) - いものやま。 プレイ…

「BirdHead」のUIを作ってみた。(その12)

昨日は手札のタッチ処理を実装した。 今日はそれを使って人間プレイヤーを実装し、コントローラ(シーン)に修正を加えて、実際に遊べるようにする。 Human さっそく、人間プレイヤーの実装。 //============================== // BirdHead //-------------…

「BirdHead」のUIを作ってみた。(その11)

昨日はコントローラを実装してSarsaAI同士が対戦できるようにした。 今日は手札のタッチ処理を実装していく。 手札選択/プレイのUI設計 まずは手札をどうやって選択、プレイ出来るようにするかを考える。 最初に考えていたのは、タップして選択/選択解除。 …

「BirdHead」のUIを作ってみた。(その10)

久々に。 前回はマイナス点一覧まで実装した。 今日はコントローラ(シーン)を実装して、SarsaAI同士が対戦する様子を見れるようにする。 GameScene SpriteKitでは、シーン(SKScene)がコントローラの役割を果たす。 そこで、SKSceneを継承したGameSceneを…

「BirdHead」のUIを作ってみた。(その9)

昨日はマイナス点一覧に必要な部品の実装を行った。 今日はそれらを使ってマイナス点一覧を実装していく。 MinusPointInfoNode さっそくコードを。 //============================== // BirdHead //------------------------------ // MinusPointInfoNode.s…

「BirdHead」のUIを作ってみた。(その8)

昨日はアクションを実行するためのコードに関してリファクタリングを実施した。 今日はマイナス点一覧に使う部品を実装していく。 必要なもの マイナス点一覧を表示するときに、必要になるものをリストアップしてみると、以下。 ボタン テキスト(プレイヤー…

「BirdHead」のUIを作ってみた。(その7)

前回は手札の表示の実装を行った。 次はマイナス点情報の表示の予定だったんだけど、その前にちょっとリファクタリングを行う。 気になったコード さて、リファクタリングを行うということは、何か気になったコードがあったということ。 それは何かというと…

「BirdHead」のUIを作ってみた。(その6)

昨日は手札の表示の設計を行った。 今日はそれを元に実装を行っていく。 HandNode 手札はSKNodeを継承したHandNodeとして実装する。 //============================== // BirdHead //------------------------------ // HandNode.swift //=================…

「BirdHead」のUIを作ってみた。(その5)

昨日はプレイエリアの表示の実装を行った。 今日は手札の表示の設計を行っていく。 (※なお、タッチ処理の設計、実装はあとで) 手札表示の方法 手札を表示する上で考えないといけないのが、どうやって表示するか。 方法としては、 シンプルに横に並べて表示…

「BirdHead」のUIを作ってみた。(その4)

昨日はデッキの表示を実装した。 今日はプレイエリアの表示を実装していく。 PlayAreaNode プレイエリアは、SKNodeを継承したPlayAreaNodeとして実装していく。 //============================== // BirdHead //------------------------------ // PlayArea…

「BirdHead」のUIを作ってみた。(その3)

昨日はカードの表示を実装した。 今日はデッキの表示を実装していく。 デッキとフレーム デッキは、単純に考えると中央にカードを表示するだけなんだけど、実際には各プレイヤーにカードを配る必要があるので、もうちょい工夫が必要。 具体的には、デッキの…

「BirdHead」のUIを作ってみた。(その2)

昨日は画面構成とモデル/コントローラ/ビューの関係について説明した。 今日はカードの表示を作っていく。 CardNode カードはSKSpriteNodeを継承したノードとして実装した。 //============================== // BirdHead //------------------------------…

「BirdHead」のUIを作ってみた。(その1)

ということで、今日から「BirdHead」をiOSで遊べるようにしていく。 「BirdHead」に関しては、以下の記事を参照。 画面構成 まずは大雑把な画面構成から。 「BirdHead」はカードゲームなので、まずは以下のような要素が必要になってくる: デッキ 手札 カー…

「BirdHead」用のイラストを描いてみた。

「BirdHead」をiOSで遊べるようにUIを作っているのだけど、その前にロゴやカードイラストを用意したので、それの紹介。 なお、「BirdHead」については、以下を参照。 ロゴ まずはロゴから。 ポップな感じにして、さらにBとaをいじって鳥っぽくしてみた。 我…

「BirdHead」の思考ルーチンを作ってみた。(まとめ)

これまでの各記事は以下から。 ランダムAI 「BirdHead」の思考ルーチンを作ってみた。(その1) - いものやま。 グリーディAI 「BirdHead」の思考ルーチンを作ってみた。(その2) - いものやま。 強化学習AI 「BirdHead」の思考ルーチンを作ってみた。(そ…

「BirdHead」の思考ルーチンを作ってみた。(その5)

昨日はアクション選択と学習のアルゴリズムを実装した。 今日は、パラメータの保存とロードを実装して、クラスとして完成させる。 SarsaComクラス(続き) 保存とロード 保存とロードの実装を入れたクラス全体の様子は、以下のようになる。 (省略されている…

「BirdHead」の思考ルーチンを作ってみた。(その4)

昨日はプレイヤー・ビューの特徴ベクトル化とそれを使った価値の計算について説明した。 今日はそれを使ったアクションの選択と学習について説明していく。 SarsaComクラス(続き) アクションの選択 アクションの選択は、Sarsa()法を使うので、任意のソフト…

「BirdHead」の思考ルーチンを作ってみた。(その3)

昨日はグリーディAIを実装した。 今日からは強化学習を使ってAIを作っていく。 方針 まず、方針について。 強化学習にはいくつかのアルゴリズムがあるけれど、今回はSarsa()法を使う。 これは強化学習について学んでみた。(その19) - いものやま。で説明し…

「BirdHead」の思考ルーチンを作ってみた。(その2)

昨日は「BirdHead」に対するランダムAIを実装した。 今日はもうちょっとマシなAIを実装してみる。 グリーディAI 「22」や「5本のキュウリ」のルールを聞いたときに誰もが思うのが、「それなら一番強いカードを出し続ければいいんじゃないの?」というもの。 …

「BirdHead」の思考ルーチンを作ってみた。(その1)

前回までで「BirdHead」を遊べるようにした。 今回からは「BirdHead」の思考ルーチンを作っていく。 ランダムAI まずは一番簡単なところから。 合法手からランダムにアクションを選択するだけの、ランダムAI。 //============================== // BirdHead…

「BirdHead」を遊べるようにしてみた。(まとめ)

これまでの各記事は以下から。 デッキの実装 「BirdHead」を遊べるようにしてみた。(その1) - いものやま。 モデル全体の構成 「BirdHead」を遊べるようにしてみた。(その2) - いものやま。 アクション、プレイヤーの実装 「BirdHead」を遊べるようにし…

「BirdHead」を遊べるようにしてみた。(その7)

昨日はコントローラの実装を行った。 今日は人間プレイヤーの実装を行って、実際に遊べるようにしてみる。 Humanクラス ということで、さっそくコードを。 //============================== // BirdHead //------------------------------ // Human.swift /…