ゲーム大賞
Catanにはまって、最近のボードゲームとかカードゲームってどんなものがあるの?と思い、色々見ているとCatanが評価されたドイツゲーム賞での受賞作品をまとめた本があったので購入。
ドイツゲームでしょう! -四大ゲーム賞受賞作 2008年版-
この本によると、ドイツではボードゲームジャーナリストなる職業が存在出来るぐらい、ボードゲーム・カードゲームの人気が高いらしいです。もちろん、そんなに数はいないんでしょうが、凄いですね。
で、4大ゲーム賞とありますが、その内訳は以下の通り。
- ドイツ年間ゲーム大賞
- ドイツゲーム賞
- アラカルト・カードゲーム賞
- ドイツ年間キッズゲーム大賞
ドイツ年間ゲーム大賞は大衆向け、ドイツゲーム賞はフリーク向け、アラカルト・カードゲーム賞はカードゲーム部門、ドイツ年間キッズゲーム大賞は名前通りで子供向けというジャンル分けがされているようです。ドイツ年間ゲーム大賞とかでカードゲームも選考はされるようですが、大賞となるとお手軽要素の強いカードゲームよりも、重厚なボードゲームが選択されがちなようですね。
※と思ったら、2009年度のドイツ年間ゲーム大賞では「ドミニオン」というカードゲームが受賞したようです。これはかなり凄い事だと思います。
いくつかのゲームのプレイ動画とかを見ましたが、バランス感覚がいいというか、ルールとかよく練られているなぁーというのが実感。まさに、
「ドイツのゲームは世界一イイイイ!!」
と言った所でしょう。
この本は、各受賞ゲームが大体2ページずつ解説されており、簡単なルール、プレイ感と共に写真が載ってます。それである程度のゲームの雰囲気は掴めますので、ボードゲーム、カードゲームは好きだけど、UNOとかモノポリーぐらいしか知らないや、っていう人は読んでみるとかなり刺激されると思いますよ。
※但し、プレイしたくても相手がいなくて寂しい思いをするかも知れません。。。
関数
F#での関数の定義と、呼び出し方は以下の通りです。
例として、2つの数値を合計した数値を返す関数を挙げます。
[F#] let add a b = a + b let c = add 1 2
これで、c の中には 3 が格納されます。
グゲェ-、C#から考えると違和感バリバリ!
試しに、これと同様のものをC#で書くと以下の通り。
[C#] static int add(int a, int b) { return a + b; } static void Main(string[] args) { int c = add(1, 2); }
かなり簡略化されていて、慣れると書くのも速くなりそうですね。
オオカミックラジオ
アニメ『狼と香辛料』の第2期と共に始まったWEBラジオ『オオカミックラジオII』を聞いてみた。このラジオは『狼と香辛料』のホロ役の小清水亜美さんと、ロレンス役の福山潤さんがパーソナリティーを務めています。
『狼と香辛料II』 Web Radio「小清水亜美・福山潤のオオカミックラジオII」
このラジオ、2という事で、1のまとめたものだけを以前聞いたのですが、二人のあまりの噛み合わなさからくるgdgd感とそれによって生じるカオスな空間が最高でした。どういう事かというと、本人たちのインタビューにもありましたが、お互いに暴投しか投げないので、どっちも拾えないんですよね(笑)そして、ラジオなのに生じる(凍った空気の)微妙な間。いち傍観者としては、この間に笑わせて頂きました。
しかし、福山さんはボケが次から次へと出てきて凄いなー。言い回しが少々古いので、小清水さんとの噛み合わなさに繋がったりもしてますが、基本、相手が反応するまでボケ倒すのが凄い(実際に相手にしたら疲れるでしょうがw)。それと、あの地声からルルーシュみたいな声が出るのがイメージわかない。まさにプロのお仕事ですね。
この2ですが、さすがに前回やって気の置けない仲になっていて、お互いスルースキルを覚えて発揮しているので、前回のような微妙な間ってのはかなり減っているようで少し寂しくもありますが、gdgd感は相変わらずで、面白かったです。引き続き聴いていきたいですね。
こんにちは、この世界
さて、前回でF#の環境構築は終わったので、まずは定番の「Hello,world」から始めていきたいと思います。
ということで、VisualStudioで「F# Application」でプロジェクト作成。コンソールアプリなので、Program.fsだけが作成されています。この中でコードを色々書いていくんだろうなーと思って、中を開いてみると・・・「// Learn more about F# at http://fsharp.net」というコメントのみ!あれ?Main関数は?エントリーポイントはどこ?
あわててググって、F# 入門を読むと、
F# が明示的なエントリ ポイントを必要としない種類の言語であることがわかります
と書いてありますね。関数型言語ってそういうもの?
まぁ、いいや。そのあたりは後から調べるとして(先に調べるべきでしょうが・・・)サンプルに従い、Program.fsに
printf "Hello, world!"
を記述して、実行。これで、「Hello, world!」が表示されました。む?いや、ホントにこれ1行だけ?自分で書いたのが1行とかじゃなくて、デフォルトのコメント行を除けば、ホントにこの1行だけしか書いていない。
「Hello, world!」の出力という目的は達成されましたが、これでは達成感があまりにも無さすぎるので、もう少しだけ簡単な所を調査。
構文*1
上記例の"Hello,world!"の記述方法ですが、同じ動作をする記述方法を挙げると以下のパターンで書けました。
- printf "Hello world!"
- printf("Hello world!")
- printf("Hello world!");
- F#での標準の記述方法です。
- C#等での関数呼び出しの括弧ではなく、「(1 + 2) + 3」のような演算の優先順序等に用いる括弧のようです。
- 2の例に加え、同行に追記する為、つまり「printf("Hello world!");printf("Hello world!");」と記述する為に使うようです。
※ 3のパターンで、";"が単なる改行と同じ区切り文字なのかなと思いましたが、
let a = 1; let b = 2;
のように書くとコンパイルエラーなのでこの解釈は間違いのようです。
let a = 1; 2;
また、上記のように記述すると、警告は出るもののコンパイルは通りました。が、結果は、aに2が入っていました。。。どうやら、";"には特別な意味があるようなので、次は";"について調べてみたいと思います。
*1:090825 いげ太さんの解説を受け修正(いげ太さん、ありがとうございます。)
セルフカット
なんか、節約の種はないかなーと思って色々考えていたのですが、たまたま自分で髪の毛を切る、セルフカットについての記事を読み、そうだ、自分もやってみようと思い、Nationalのカットモードという製品を購入してみました。
まぁ、節約といっても、散髪も普段千円の床屋に行ってますので、元を取るのに一年近くはかかるわけですけどw
National カットモード(ナチュラルアタッチメント付 水洗い) 白 ER5209-W
さて、このカットモードがどういう製品かというと、長さ調整の出来るバリカンという事に加え、ナチュラルアタッチメントというプラグイン追加パーツで、毛先を揃ったままではなく、自然な仕上がり、というのがウリのようです。(美容師さんが縦にハサミを入れるやつですね)
カットできる長さは、ER5209の機種だと、最大70mmの長さまで調節出来るので、いきなり切りすぎる心配も無く安心ですね。(他バージョンのE5208だと最大40mm)
で、このカットモードを使用してみた感想ですが、使いやすい!基本、アタッチメントをつけて髪の毛をすくっていくだけでよいので使い勝手がいいです。ウリのナチュラルアタッチメントも前髪に使うと結構いい感じにカットできてると思います。ただ、自分でカットすると、利き腕でない方や、後ろ髪がやはりちょっとつらいですね。後ろ髪はふつうに刈ってしまうと段になってしまうので、そうならないようマニュアルにやり方がのってます。これを見てマニュアル通りにやってはみたものの、一回目という事でちょっとうまくいかず、段が出来てしまいました…。ただ、スキ刈り用アタッチメントもついてますので、これで段になっている所をすいていくと、大分目立たなくなったように思います。後は、えりあしの産毛部分をカットもしたかったのですが、これは失敗すると取り返しがつかないので、今回は見送りました。
カットし終了した後、デジカメ等で後ろ髪等を確認しましたが、まぁ、それなりにという感じには仕上がりました。床屋でいうと、気に入ってはないけど、まぁいいか、ぐらいのレベルにはなっていると思います。今回でやり方は大分掴めたので、次回以降はもうちょっとうまく出来そうな気がしてますので、次回ぐらいは、写真とってアップしてみたいなと思います。
まとめ
いいところ
よくないところ
- 充電が8時間で、40分の稼働(充電時間長すぎ。稼働時間も60分は余分を見てほしい所)
- 水洗い時に、髪の毛が金具の隙間に挟まって意外にとりにくい。
- 使い終わったら油をささないといけない(コレはしょうがないとは思いますけどね。そうしなくてよい新素材みたいなのがあれば…)
使ってみた感想は上の通り。不満もまぁ、しょうがないと思える事項。概ね満足です。
F#をはじめる
いんとろだくしょん
「関数型プログラミング」が最近、流行一位になったので(※脳内)、ちょいと調べてみました。というのも、「Haskell」(ハスケルと読むらしい)について書いてある記事を読んだからなのですが、調べていくウチに「F#」とかがあることを知りました。名前から想像つくと思いますが、この「F#」、Microsoftが開発したもので、当然Visual Studioでも動くとか。なら、関数型言語の触りとしては、これっきゃないでしょ、という訳で「F#」を触ろうと思った次第です。
ちがいがわかるかな?
さて、「関数型言語」とひとくくりにいっても違いはあるわけで。とりあえず大きくわければ、「純粋関数型言語」と「非純粋関数型言語」と分かれているらしい。まだ、違いはつかめていませんが、wikiによると、「純粋関数型言語」は「簡潔にいえば、変数がなく定数しかない。」そうです。むぅ、そうなるとどうなるんだ?想像つかないなー。
まぁ、それはさておき、先に名前を挙げた2つの言語の分類は以下の通り。
どちらも知らないオイラとしては「F#」が「非純粋関数型言語」(なんか響きが悪いなぁ…)という事で、やっぱりとっつきはまだマシかなと思うのでした。(甘いかもしれませんが)
はじめてのいんすとーる
というわけで、まずは開発環境を整えていきましょう。ここでは、"Visual Studio"での開発環境の構築を説明します。ただし、Express Editionでは現状F#の開発は出来ないようなので、Express Edition環境でやろうと思ってた方は諦めて「SharpDevelop」を使って下さい。そちらでもF#の開発は出来ますので。
- Visual Studio 2008 shell
Visual StudioでF#を使う為には、まずはコレをインストールする必要があります。先にF#が入っていると駄目なようなので、その場合はF#を先にアンインストールしてからインストールするようにしてください。
ダウンロード
- F#
次に、F#本体をインストールします。090807の現時点で、バージョン"1.9.6.16"が最新のようですが、これ以前のバージョンがインストールされている場合は、アンインストールしてからインストールするようにしてください。
ダウンロード
Express Edition以外使えねぇよ!( ゚Д゚)コルァ、という人はこちらのSharpDevelopをダウンロードしてください。SharpDevelopは無償配布されているフリーの.NET統合開発環境です。デフォルトでは日本語はサポートされてませんが、有志の方が日本語化対応してくれているので、そちらを使えば日本語化できます。こちらと上述のF#本体をインストールすればプロジェクトの作成時にF#が選べるようになってます。多分。(動作の確認はしましたが、元の状態とかは知らないので違いとしてはわかりません。スミマセン!)
ダウンロード
日本語リソースダウンロード
※追記
Microsoft Visual Studio 2008 Shell (integrated mode) を使えば、無償でVisual Studio上でF#の開発環境をセットアップできるようです。Visual Studio 2008 Shell は何の言語も入っていないVisual Studio2008で、これにF#をインストールする事で、F#が組み込まれるそうです。
Visual Studio 2008 Shell (integrated mode) Service Pack 1
参考:Gushwell's F# Programming Diary
ちゅーとりある
さぁ、F#を触ってみよう!という事で、新規にプロジェクトを作成。なになに?アプリの開発に、ライブラリの開発に…チュートリアル!?よいではないか、まずはこれに決定だな!さすがマイクロソフト。粋な事をやってくれるじゃねぇか!という事で作成。
…え〜、チュートリアルというかサンプルコードでした。これは日本とアメリカでの言葉のニュアンスの違いなのかな?チュートリアルといったら、もっと説明があって云々みたいなのを思うじゃない。まぁ、いいや。気をとりなおしてサンプルコードを見てみる。ふぅん、色々な型の変数の宣言方法や、演算の記述方法等が書いてありますね。参考になります。ただ、量はそれほど多くないので、もっと学びたい方は以下のサイトを見れ、との事。
これで、開発環境の構築とサンプルコードはゲットしたのでとりあえず満足。明日以降は、定番の"Hello,world"をやろうと思います。基本って大事だよね!