いものやま。

雑多な知識の寄せ集め

2015-08-01から1ヶ月間の記事一覧

変種オセロのスタート画面を作ってみた。(その7)

昨日はゲーム画面からスタート画面への遷移を作った。 今日は遷移するときに確認のダイアログを出すようにしていく。 UIAlertController 確認のダイアログを出すときに使えるのが、UIAlertController。 (なお、以前はUIAlertViewが使われていたけれど、非推…

変種オセロのスタート画面を作ってみた。(その6)

昨日はスタート画面からゲーム画面への遷移を作った。 今日は逆に、ゲーム画面からスタート画面への遷移を作成していく。 スタート画面への遷移 昨日と同様に、GameSceneに画面遷移を実装する。 //============================== // YWF //----------------…

変種オセロのスタート画面を作ってみた。(その5)

昨日は設定関係を完成させた。 今日はスタート画面からゲーム画面へ遷移できるようにしていく。 ゲーム画面への遷移 ゲーム画面へ遷移できるようにするために、スタート画面をPlayButtonNodeObserverプロトコルに準拠するようにする。 //===================…

変種オセロのスタート画面を作ってみた。(その4)

昨日は設定の描画を作った。 今日は設定のモデルオブジェクトの実装と、設定の描画のリファクタリングを行う。 設定の保存について iOSでは、データを保存するための手段がいくつか提供されている。 その中でも特に、設定を保存するためのクラスとして用意さ…

変種オセロのスタート画面を作ってみた。(その3)

昨日はボタン類の実装をした。 今日は設定の描画を実装していく。 設定の描画 ということで、さっそくコードを。 //============================== // YWF //------------------------------ // ConfigNode.swift //============================== import …

変種オセロのスタート画面を作ってみた。(その2)

昨日はスタート画面のレイアウトだけ作成した。 今日はボタン類を作っていく。 プレイボタン まずはゲームを開始するためのプレイボタンから。 //============================== // YWF //------------------------------ // PlayButtonNode.swift //======…

変種オセロのスタート画面を作ってみた。(その1)

強化学習の方はちょっとお休み。 今日からは、変種オセロ「良い子悪い子普通の子」のスタート画面を作っていく。 変種オセロ「良い子悪い子普通の子」については、以下を参照。 デザイン まずは、スタート画面をどんなふうにするのかをデザイン。 必要なもの…

強化学習について学んでみた。(その8)

昨日はグリーディ法とグリーディ法を扱った。 今日はn本腕バンディット問題に対する別のアルゴリズムを考えていく。 ソフトマックス法 グリーディ法では、探査を行うために、の確率でランダムに行動を選択していた。 もう一つ、探査を行うための方法として、…

強化学習について学んでみた。(その7)

昨日はn本腕バンディット問題の行動の価値について考えた。 今日は、それを使って具体的なアルゴリズムを考えていく。 グリーディ法 一番最初に思いつく方法は、現在の推定される行動の価値の中で、最も価値の高い行動を選ぶという方法。 すなわち、回目に選…

強化学習について学んでみた。(その6)

昨日はn本腕バンディットをプログラムで書いてみた。 今日はn本腕バンディット問題に対するアルゴリズムを考えるために、「行動の価値」について考えていく。 行動の価値 どのレバーを下すのかを考えるときに、これまでの結果から、出来るだけ良さげなレバー…

強化学習について学んでみた。(その5)

昨日は、n本腕バンディット問題と、「知識利用」と「探査」のバランスの問題について説明した。 今日はn本腕バンディット問題をプログラム(Ruby)で実際に動かしてみる。 正規分布に従う乱数生成器 今回、n本腕バンディット問題のレバーの期待値、および、…

強化学習について学んでみた。(その4)

昨日は、強化学習で考える具体的な状況や、用語について説明した。 今日は、もうちょっと簡単な場合について考えていく。 非連想的な問題 昨日の「報酬」に関する説明を聞いて、次のように思ったかもしれない。 「(猿の例で)大きな箱を選んでも小さな箱を…

強化学習について学んでみた。(その3)

昨日は強化学習の「強化」とは何なのかについて説明した。 今日は、強化学習で考える具体的な状況や、そこで使われる用語について。 エージェントと環境 強化学習では、学習したり行動を決定する主体(つまりAI自身)のことを、エージェントと呼ぶ。 そして…

強化学習について学んでみた。(その2)

昨日の記事は以下。 今日は、強化学習についてもう少し説明したいと思う。 「強化」って何? そもそも、「強化学習」の「強化」って何なんだ?という話。 「強化」っていうと、何かを強くするのかなぁ、という感じだけど、「強化学習」という訳語の元になっ…

強化学習について学んでみた。(その1)

ゲームを作っていくときに必要となるのが、AIの作成。 変種オセロを作っているときにもいくつかの探索アルゴリズムを実装したけれど、盤面の評価については単純に「出来るだけ自分の色が多く、そして相手の色が少ない方がいい」としただけだった。 ただ、こ…

哲学書の「難しさ」に関して思ったこと。

自分は哲学が好きだけど、哲学者本人の書いた、いわゆる「哲学書」というのはほとんど読まない。 なぜって、理由は簡単で、「難しい」から。 なので、哲学に関する本を読むとしても、それは(例えば飲茶さんが書いた『14歳からの哲学入門』のような)「哲学…

変種オセロのUIを作ってみた。(まとめ)

これまでの各記事は以下から。 イントロ、画面設計 変種オセロのUIを作ってみた。(その1) - いものやま。 素材作成 変種オセロのUIを作ってみた。(その2) - いものやま。 変種オセロのUIを作ってみた。(その3) - いものやま。 変種オセロのUIを作って…

変種オセロのUIを作ってみた。(その20)

ユーザ情報の表示も出来た。 あとはゲームの結果を表示したりも必要だけど、かなり長くなったので、とりあえずまとめていく。 ターンコントローラの修正 とりあえず、終了判定の実装だけは入れておく。 //============================== // YWF //---------…

変種オセロのUIを作ってみた。(その19)

Undoボタンの対応も出来た。 あとは、ユーザ情報の表示。 レイアウトマネージャの修正 ユーザ情報の表示を行うとき、そのエリアのサイズが必要となったので、レイアウトマネージャの修正を行った。 ついでに、すこしリファクタリングも実施。 //============…

変種オセロのUIを作ってみた。(その18)

昨日の続き。 Playerプロトコルの修正 Undoに対応するためにPlayerプロトコルに少し修正を加える。 //============================== // YWF //------------------------------ // Player.swift //============================== public protocol Player {…

変種オセロのUIを作ってみた。(その17)

昨日はPassボタンの対応を行った。 今日はUndoボタンの対応を行っていく。 BoardNodeの修正 まずは、Undo自体が出来るようにするために、BoardNodeを修正していく。 オペレーションキューの追加 今までの実装では手を抜いてたけど、Undoを出来るようにするた…

変種オセロのUIを作ってみた。(その16)

前回はターンコントローラを実装して、AI相手にもプレイが出来るようにした。 次は各ボタンの機能を対応していく。 まずはPassボタンの対応から。 人間プレイヤーの修正 Passボタンを使うのは人なので、人間プレヤーの修正をしていく。 具体的には、 Humanク…

Picky-Picsでゲーム会のポスターを作ってみた。

Picky-Picsは、オンラインでポスターやチラシ、プレゼン資料が作れるというツール。 Twitterを見ていたら、これを使ってゲーム会のポスターを作ってみたというツイートが流れてきた。 RUCCIで、ボードゲームのチラシを作ってみたの話そして、コピーが思い付…

変種オセロのUIを作ってみた。(その15)

昨日はボタンとボードにオブザーバパターンを実現した。 今日はそれを使ってゲームのプレイが出来るようにする。 ターンコントローラの実装 ゲームをプレイできるようにするためには、まず手番を管理する必要がある。 ということで、BoardNodeObserverプロト…

変種オセロのUIを作ってみた。(その14)

さて、レイアウトの修正は出来た。 次はボタンのタッチ処理を出来るようにする。 また、ボードのタッチ処理についても、修正を行う。 オブザーバパターンの実現 SwiftでSetの型パラメータにプロトコルを指定する方法について。 - いものやま。で言及したよう…

変種オセロのUIを作ってみた。(その13)

昨日はレイアウトのリデザインを行った。 今日はこのレイアウトを実現するための仕組みを実装する。 レイアウトマネージャ SpriteKitでレイアウトを決めるときに必要になるのが、プロパティのpositionの値。 なので、各要素のpositionの適切な値を返すクラス…

変種オセロのUIを作ってみた。(その12)

昨日はボタンの描画を実装した。 しかし、レイアウトに問題があることが発覚したので、今日はその解決を。 レイアウトのリデザイン とりあえず、今まではどの画面サイズについても、縦方向の構成はどれも同じでいいやと思っていたけれど、画面サイズでこうも…

変種オセロのUIを作ってみた。(その11)

ちょっと間が空いたけど、続き。 今日はUndoなどを行うためのボタンを作っていく。 ボタンの描画 ということで、まずはボタンの描画から。 SKSpriteNodeを継承して、ButtonNodeを作る。 //============================== // YWF //------------------------…

iPhoneのバッテリーを交換した話。

自分はiPhone 5を使っているのだけど、ここ最近、調子が悪くなってきていた。 具体的には、ホームボタンの反応がやたらと悪い。 最初は「ちょっと反応悪いかな?」くらいだったのが、いつの間にか押し込まないと反応しなくなってきて、最近はアプリ切り替え…

『14歳からの哲学入門』を読んでみた。

飲茶さんの新刊、『14歳からの哲学入門』を読み終わったので、その紹介と感想など。 14歳からの哲学入門 「今」を生きるためのテキスト作者: 飲茶出版社/メーカー: 二見書房発売日: 2015/07/27メディア: 単行本この商品を含むブログ (1件) を見る コンセプ…