| ホーム |
2012.07.31
今日は
KOMARIです。
今日は久々に同窓生同士で遊ぶ予定です。
全く関係ない話ですがこの前のこともあってか最近ねこりすとかプログラムがトラウマになりつつあります…。
そして日記のタイトル 今日は は久々に使った気がします。
昔はようそのタイトルで日記書いてたもんです。
それではみなさん素敵な一日になることを願いつつ。
今日は久々に同窓生同士で遊ぶ予定です。
全く関係ない話ですがこの前のこともあってか最近ねこりすとかプログラムがトラウマになりつつあります…。
そして日記のタイトル 今日は は久々に使った気がします。
昔はようそのタイトルで日記書いてたもんです。
それではみなさん素敵な一日になることを願いつつ。
2012.07.21
裏切りの代償
ドラマの影響で「裏切ることは自分に跳ね返ってくる」という言葉について少し考えてみました。
ちなみに数学的にはとても簡単です。裏切ることによって得られる利得がxで裏切らないことによって得られる利得がyとします(利得といっていますがマイナスの場合もありえます。もちろん両方プラスだったり両方マイナスもありえるでしょう)
もしx > yならば裏切るほうが損です。従って自分に跳ね返ってくるといえるでしょう。
y < xならば裏切るほうが得ですね。ですから自分に跳ね返ってきません。
ということで全てが解決しました。いや、めでたしめでたしです。
えっ?納得がいかないって?うーん、確かに少し無味乾燥な解答でしたねえ。ではもっと問題を一般化しましょう。
さて、世界には人間がたくさんいます。その人たちも裏切るか裏切らないかを考えるのが自然だと思います。
ただあまりに人数が多いと少し考えにくいので、今世界には2人だけ居ると仮定して、2人が裏切るか裏切らないかを選択するという設定にします。この2人をAとBという名前にします。
話が脱線しますが、利益を得られるというのは、他者を蹴落とし、他人の分を分捕ってこそ最も利益を得られるんだと思うんですよね。だって他人の利益の大部分を受け取れるわけですから。
また、ともに協力してもそこそこの利益は得られるでしょう。(もちろん莫大な利益をあげる方も中にはいらっしゃるでしょうが)
ただ、互いにいがみ合った場合の損失も膨大でしょう。金銭云々ではなく、命そのものまで分捕られる可能性もありますし。
ということで、これらを仮定にいれたとすると、次のような問題設定もおかしくはないでしょう。
AさんとBさんがともに協力し合った利益を1(Bさんも利益1)
AさんがBさんに協力し, BさんがAさんを裏切った場合のAさんの利益を-5(Bさんの利益5)
AさんがBさんを裏切り, BさんがAさんに協力した場合のAさんの利益を5(Bさんの利益-5)
AさんとBさんがともに裏切った場合の利益を-10(Bさんの利益-10)
とすることにします。
さて、Aさんは裏切ったほうが得なのでしょうか?うーん、どうにも難しい問題であることが分かります。
協力し続ければもちろんAさんもBさんも利益を共有し合えます。このとても素晴らしい考えは揺るがないという貴方は聖人君子でしょう。
では常に裏切り続けてみますか。Aさんから常に搾取し続けられるならば、非常に素晴らしいアイデアです。がやはりこれも有り得ないと思います。
ここで発想をもっと広げます。「どっちも行えばいいのではないか」と。つまり裏切りと協力を両方必要に応じて行うということです。
さて、どのようにして行えばよいでしょうか。それには数学の一大分野のひとつ「ゲーム理論」に一つの答えがあります(私が語るよりKOMARI氏, 掘木氏のほうが非常に詳しいのだが)
どうするのかというと、協力する確率を決めて、それにのっとり協力、裏切るかどうかを決定するのです。
つまり、たとえばコインを投げて表が出たら協力して、裏が出たら裏切るといったようにするのです。えっ。さっきの常に協力するか、常に裏切るかという考えよりひどいって?確かにコインを投げることは不合理ですが、この確率でものを考えるというのは先ほどの拡張になっています。
だって常に協力する、という考えは、協力する確率を100%とし、裏切る確率を0%にするという概念に相当します。
また常に裏切る、という考えは、協力する確率を0%にし、裏切る確率を100%にすると言う概念に相当します。
そう考えると、協力する確率を50%にしたりするのも別におかしくは感じないのではないでしょうか。ゲーム理論はこの確率をどうすればよいか、といった点に着目します。
しかし残念ながらこの確率をどうにかしたところで、Bさんの戦略がどうであれ、残念ながら、平均的には利益はともに下降していくでしょう(だって裏切られたりするほうが負の値にいきやすいですから、まあ自然です)
従って、部分的に協力するといった形をとったってよいでしょう。
たとえば「ふたりの利益がマイナスになったのならばお互いに協力し合う」といった仮定をとってもよいでしょう。
え?この仮定すら裏切ってきたらどうするって?いや、おそらくこの仮定への裏切りは裏切ったほうにもデメリットが満載だと考えられます。この仮定はいれましょう。
そうすると、割とこの世界に近づいたと思います。たとえば環境問題、地球温暖化、オゾン層の破壊、酸性雨など、「全体の利益がマイナスになりかねない行為」は一応の話合いの場は設けられていますし。もっとも話合いがうまく行われているかは不明ですが。
こうして協力する確率と裏切る確率を考えていけば最も最大の利益は何かという考えに行き着くことが出来ます。これは2人だろうと10人だろうと1億人だろうと考え方に変わりありません。やれやれようやく問題が決着しましたね。
もしこの最大の利益を取る行動に「協力」の行動が多ければ、裏切ることは自分に跳ね返りません。
もしこの最大の利益を取る行動に「裏切り」の行動が多ければ、裏切ることは自分に跳ね返ります。以上です。
えっ。結論がでていないって?うーん、一億人の利益全部を考えた上で自身の利益を最大にする行動を考えるのは現実的に厳しいでしょうから、分からないというのが正しいのでしょう。
みもふたもない結論ですが、裏切りが跳ね返ってくる、裏切りは跳ね返ってくるはずがない、などと断言するよりはマシな結論ではないでしょうか。
ちなみに数学的にはとても簡単です。裏切ることによって得られる利得がxで裏切らないことによって得られる利得がyとします(利得といっていますがマイナスの場合もありえます。もちろん両方プラスだったり両方マイナスもありえるでしょう)
もしx > yならば裏切るほうが損です。従って自分に跳ね返ってくるといえるでしょう。
y < xならば裏切るほうが得ですね。ですから自分に跳ね返ってきません。
ということで全てが解決しました。いや、めでたしめでたしです。
えっ?納得がいかないって?うーん、確かに少し無味乾燥な解答でしたねえ。ではもっと問題を一般化しましょう。
さて、世界には人間がたくさんいます。その人たちも裏切るか裏切らないかを考えるのが自然だと思います。
ただあまりに人数が多いと少し考えにくいので、今世界には2人だけ居ると仮定して、2人が裏切るか裏切らないかを選択するという設定にします。この2人をAとBという名前にします。
話が脱線しますが、利益を得られるというのは、他者を蹴落とし、他人の分を分捕ってこそ最も利益を得られるんだと思うんですよね。だって他人の利益の大部分を受け取れるわけですから。
また、ともに協力してもそこそこの利益は得られるでしょう。(もちろん莫大な利益をあげる方も中にはいらっしゃるでしょうが)
ただ、互いにいがみ合った場合の損失も膨大でしょう。金銭云々ではなく、命そのものまで分捕られる可能性もありますし。
ということで、これらを仮定にいれたとすると、次のような問題設定もおかしくはないでしょう。
AさんとBさんがともに協力し合った利益を1(Bさんも利益1)
AさんがBさんに協力し, BさんがAさんを裏切った場合のAさんの利益を-5(Bさんの利益5)
AさんがBさんを裏切り, BさんがAさんに協力した場合のAさんの利益を5(Bさんの利益-5)
AさんとBさんがともに裏切った場合の利益を-10(Bさんの利益-10)
とすることにします。
さて、Aさんは裏切ったほうが得なのでしょうか?うーん、どうにも難しい問題であることが分かります。
協力し続ければもちろんAさんもBさんも利益を共有し合えます。このとても素晴らしい考えは揺るがないという貴方は聖人君子でしょう。
では常に裏切り続けてみますか。Aさんから常に搾取し続けられるならば、非常に素晴らしいアイデアです。がやはりこれも有り得ないと思います。
ここで発想をもっと広げます。「どっちも行えばいいのではないか」と。つまり裏切りと協力を両方必要に応じて行うということです。
さて、どのようにして行えばよいでしょうか。それには数学の一大分野のひとつ「ゲーム理論」に一つの答えがあります(私が語るよりKOMARI氏, 掘木氏のほうが非常に詳しいのだが)
どうするのかというと、協力する確率を決めて、それにのっとり協力、裏切るかどうかを決定するのです。
つまり、たとえばコインを投げて表が出たら協力して、裏が出たら裏切るといったようにするのです。えっ。さっきの常に協力するか、常に裏切るかという考えよりひどいって?確かにコインを投げることは不合理ですが、この確率でものを考えるというのは先ほどの拡張になっています。
だって常に協力する、という考えは、協力する確率を100%とし、裏切る確率を0%にするという概念に相当します。
また常に裏切る、という考えは、協力する確率を0%にし、裏切る確率を100%にすると言う概念に相当します。
そう考えると、協力する確率を50%にしたりするのも別におかしくは感じないのではないでしょうか。ゲーム理論はこの確率をどうすればよいか、といった点に着目します。
しかし残念ながらこの確率をどうにかしたところで、Bさんの戦略がどうであれ、残念ながら、平均的には利益はともに下降していくでしょう(だって裏切られたりするほうが負の値にいきやすいですから、まあ自然です)
従って、部分的に協力するといった形をとったってよいでしょう。
たとえば「ふたりの利益がマイナスになったのならばお互いに協力し合う」といった仮定をとってもよいでしょう。
え?この仮定すら裏切ってきたらどうするって?いや、おそらくこの仮定への裏切りは裏切ったほうにもデメリットが満載だと考えられます。この仮定はいれましょう。
そうすると、割とこの世界に近づいたと思います。たとえば環境問題、地球温暖化、オゾン層の破壊、酸性雨など、「全体の利益がマイナスになりかねない行為」は一応の話合いの場は設けられていますし。もっとも話合いがうまく行われているかは不明ですが。
こうして協力する確率と裏切る確率を考えていけば最も最大の利益は何かという考えに行き着くことが出来ます。これは2人だろうと10人だろうと1億人だろうと考え方に変わりありません。やれやれようやく問題が決着しましたね。
もしこの最大の利益を取る行動に「協力」の行動が多ければ、裏切ることは自分に跳ね返りません。
もしこの最大の利益を取る行動に「裏切り」の行動が多ければ、裏切ることは自分に跳ね返ります。以上です。
えっ。結論がでていないって?うーん、一億人の利益全部を考えた上で自身の利益を最大にする行動を考えるのは現実的に厳しいでしょうから、分からないというのが正しいのでしょう。
みもふたもない結論ですが、裏切りが跳ね返ってくる、裏切りは跳ね返ってくるはずがない、などと断言するよりはマシな結論ではないでしょうか。
2012.07.20
未練×後悔×決意
KOMARIです。
あれから2日たった今でもねこりす2に未練があります。
組み上げきれなかったことを後悔しています。
これも、自分の力量がなかったからこんなことになったので仕方のないことですが。
これから組む時は、もっと小さいものを組まないといけないですね。
小さくても完成度の高い作品にこそ価値を見いだせるかもしれません。
今までは大きさにばかりこだわって中身を見てこなかったのかもしれません。
いくらねこりすみたいに大型なプログラムでも中身がしっかりしてないと意味がないんですね。
小さいものをもっときっちり組めるようになってからねこりす2に再挑戦したいと思います。
携帯アプリのミニゲームレベルでいいから頑張りたいと思います。
それではまた次回の記事でお会いしましょう。
あれから2日たった今でもねこりす2に未練があります。
組み上げきれなかったことを後悔しています。
これも、自分の力量がなかったからこんなことになったので仕方のないことですが。
これから組む時は、もっと小さいものを組まないといけないですね。
小さくても完成度の高い作品にこそ価値を見いだせるかもしれません。
今までは大きさにばかりこだわって中身を見てこなかったのかもしれません。
いくらねこりすみたいに大型なプログラムでも中身がしっかりしてないと意味がないんですね。
小さいものをもっときっちり組めるようになってからねこりす2に再挑戦したいと思います。
携帯アプリのミニゲームレベルでいいから頑張りたいと思います。
それではまた次回の記事でお会いしましょう。
2012.07.18
KOMARIさんのプログラム事情
KOMARIです。
さて、今日は少し真面目な話(つまり愚痴)をします。
最近アクションを組むのに挫折したため、ねこりす2を組むことにしました。
今回は対戦をメインに組んでいて、今はCOMとの対戦が出来るようになったところです。
それで今日組んでいたわけですがしょうもないバグがいっぱいあったり、掘木さんに組んでもらったCOMのことで怒られたりして、ちょっといろいろ考えました。
いつも適当に組んで、あとでバグを見つけるか指摘されたら直す、ということばかりしてきてたことの軽率さに、今更ながら気づいたわけです。
掘木さんやzzzさんのように、いろいろ考えたりしてから計画的に組まないからいつも行き当たりばったりでバグを直したりして、結果結局最終版までバグだらけ、そのバグのせいで自分がしたい仕様と違うものになったりしてきました。
あと完全に人任せにしてるところがあって、ねこりすのパズルソールバーやらねこりす2のCOMやらで掘木さんに迷惑をさんざんかけました…しかも自分はたいしてアイデアを出すわけでもなく、自分で組むことすらしようとしません。
いい加減こんな風に適当に人の力を借りて楽に組もうなんて考えるのはそろそろやめた方がいいのかもしれませんね…。
自分の為にはならないわ人に迷惑はかけるわで最悪な状況です。
そんなこんなで今日は全くやる気になりませんでしたが明日から再開しようかと思います。
ねこりす2でこれからやるべきことは、
・殆どバグが出ないように計画的に組む
一から組み直しも視野
・画像が適当すぎるのでもっとゲームを意識したデザインものを描く
これもカーソル以外は全消去視野
・画像の配置、アニメーション
管理方法をきっちり考える
・変数の使い方、ラベルと関数の使い方、ソースの管理方法などの考察
なにをdefineすべきかも考えたりする
・オンライン化するために何が必要か
オンラインでの動作テスト用プログラムの作成
・パズルソールバー、COM
ルーチン作成とそのソース化
パズルモードの仕様についても考える
もしdllをつかうならC++?も勉強しないといけない
・最適化について
描画や内部処理の最適化についての考察、動作軽量化、データとしての軽量化、メモリ使用量、CPU使用率、処理落ち対策等の考察
・音楽の作成
SE、BGM、VOICEについてなにをいつ使うか、なにが必要かを考える
これら全てを考えて仕様書にまとめておく必要があるわけです。
多分モチベが持たずにTDみたいに仕様書だけで終わる可能性が大いにありますが。
上に書いたようなことをきっちり出来ないようじゃなに作るにしても出来損ないになるだろう。
こんな私は到底プログラミングには向いてないだろうから、少なくとも公開目的ではもうプログラミングはこれ以降しないかもしれない。
まぁ少なくとも現状のまま完成したねこりす2は通常公開できるものじゃないのでごみばこにでも放り投げるか未公開のままいこうと思います。
ぶっちゃけCASINOもねこりすもごみばこ行きしたいレベルの完成度ですが…。
今更ながらねこりすの動画あげたりして浮かれていたのがバカみたいに思えてきました。
あんな適当に"完成"させた未完成な作品なんかで満足していたことが恥ずかしいです。
しかしねこりすというゲームにかなりの愛着があるのは事実なので、やはり死ぬまでにはねこりす2として完成させたいところです。
長くなりましたがこれで終わります。
さて、今日は少し真面目な話
最近アクションを組むのに挫折したため、ねこりす2を組むことにしました。
今回は対戦をメインに組んでいて、今はCOMとの対戦が出来るようになったところです。
それで今日組んでいたわけですがしょうもないバグがいっぱいあったり、掘木さんに組んでもらったCOMのことで怒られたりして、ちょっといろいろ考えました。
いつも適当に組んで、あとでバグを見つけるか指摘されたら直す、ということばかりしてきてたことの軽率さに、今更ながら気づいたわけです。
掘木さんやzzzさんのように、いろいろ考えたりしてから計画的に組まないからいつも行き当たりばったりでバグを直したりして、結果結局最終版までバグだらけ、そのバグのせいで自分がしたい仕様と違うものになったりしてきました。
あと完全に人任せにしてるところがあって、ねこりすのパズルソールバーやらねこりす2のCOMやらで掘木さんに迷惑をさんざんかけました…しかも自分はたいしてアイデアを出すわけでもなく、自分で組むことすらしようとしません。
いい加減こんな風に適当に人の力を借りて楽に組もうなんて考えるのはそろそろやめた方がいいのかもしれませんね…。
自分の為にはならないわ人に迷惑はかけるわで最悪な状況です。
そんなこんなで今日は全くやる気になりませんでしたが明日から再開しようかと思います。
ねこりす2でこれからやるべきことは、
・殆どバグが出ないように計画的に組む
一から組み直しも視野
・画像が適当すぎるのでもっとゲームを意識したデザインものを描く
これもカーソル以外は全消去視野
・画像の配置、アニメーション
管理方法をきっちり考える
・変数の使い方、ラベルと関数の使い方、ソースの管理方法などの考察
なにをdefineすべきかも考えたりする
・オンライン化するために何が必要か
オンラインでの動作テスト用プログラムの作成
・パズルソールバー、COM
ルーチン作成とそのソース化
パズルモードの仕様についても考える
もしdllをつかうならC++?も勉強しないといけない
・最適化について
描画や内部処理の最適化についての考察、動作軽量化、データとしての軽量化、メモリ使用量、CPU使用率、処理落ち対策等の考察
・音楽の作成
SE、BGM、VOICEについてなにをいつ使うか、なにが必要かを考える
これら全てを考えて仕様書にまとめておく必要があるわけです。
上に書いたようなことをきっちり出来ないようじゃなに作るにしても出来損ないになるだろう。
こんな私は到底プログラミングには向いてないだろうから、少なくとも公開目的ではもうプログラミングはこれ以降しないかもしれない。
まぁ少なくとも現状のまま完成したねこりす2は通常公開できるものじゃないのでごみばこにでも放り投げるか未公開のままいこうと思います。
ぶっちゃけCASINOもねこりすもごみばこ行きしたいレベルの完成度ですが…。
今更ながらねこりすの動画あげたりして浮かれていたのがバカみたいに思えてきました。
あんな適当に"完成"させた未完成な作品なんかで満足していたことが恥ずかしいです。
しかしねこりすというゲームにかなりの愛着があるのは事実なので、やはり死ぬまでにはねこりす2として完成させたいところです。
長くなりましたがこれで終わります。
2012.07.03
THE CASINO ver1.00
zzzです。
KOMARI様の告知どおり、「すうがくかわーい THE CASINO」を公開しました。
ほとんどKOMARI氏と掘木御中が製作していたため、without zzzをタイトルに付け加えてもよい内容となっております。
内容は「カジノ」の再現ということで、ブラックジャック、ポーカー、ビンゴ、スロット、ルーレットという5つのゲームが入っております。参考画像はこのような感じです。

ブラックジャック。

ポーカー。

ビンゴ。

スロット。

ルーレット。
といった形になっています。ぜひやって見てください。
毎度のことながらホームページ(http://mathyippee.web.fc2.com/)にて公開しています。
KOMARI様の告知どおり、「すうがくかわーい THE CASINO」を公開しました。
ほとんどKOMARI氏と掘木御中が製作していたため、without zzzをタイトルに付け加えてもよい内容となっております。
内容は「カジノ」の再現ということで、ブラックジャック、ポーカー、ビンゴ、スロット、ルーレットという5つのゲームが入っております。参考画像はこのような感じです。

ブラックジャック。

ポーカー。

ビンゴ。

スロット。

ルーレット。
といった形になっています。ぜひやって見てください。
毎度のことながらホームページ(http://mathyippee.web.fc2.com/)にて公開しています。
2012.07.02
ほいほいカジノはできたね、それじゃあアクション作成に移ろうか
| ホーム |