- 「憂鬱な勇者」を作った件 - hrkt0115311の日記
- 「憂鬱な勇者」がとても面白かったので、 Scheme に移植してみた - 黎明日記
- 「憂鬱な勇者」を Squeak Smalltalk で - sumim’s smalltalking-tos
- 「憂鬱な勇者」をC# で
F# で書いてみました。単体で起動します。
open System.Collections.Generic
open Int32
open Big_int
let monsters = [|"焼きたてパン"; "強いシャチホコ"; "もんじゃ焼き一年生"; "怪人ホタテ男"; "ニセ勇者"; "逃げ足の早いアレ"; "睡魔"; "煩悩"; "愛らしい子犬の中の人"; "恋するスズメバチ"; "勇敢なクマンバチ"; "信じられない物"; "勇者の師匠"; "浮遊する鎧"; "怪盗ドボン"; "闇の招き猫"; "誘惑のカスタードクリーム"; "しょっぱすぎる籠手"; "カレー味の兜"; "光沢だけは一流の盾"; "若葉マークのモンスター"; "新緑の季節"; "梅雨時の車両のニオイ"; "暑すぎる夏"; "新宿らしき何か"; "やたら発達したドーナツ"; "育ちすぎたクマー"; "なごやかな雰囲気"; "凍り付いた気配"; "忍び寄る恐怖"|];;
let skills = [|"お豆腐の買い方"; "鉛筆の買い方"; "消しゴムの使い方"; "メモの取り方"; "攻撃に使えないこともない呪文"; "裏町の歩き方"; "森林浴"; "珈琲の味"; "しじみのみそ汁の作り方"; "回覧板の回し方"; "郵便物の投函方法"; "立ち話のコツ"; "猫の呼び方"; "犬の呼び方"; "カラスの呼び方"; "鳩専用豆鉄砲"; "秘密の趣味"; "速く走るコツ"; "剣の使い方"; "斧の使い方"; "まきわりで、まっきわりわり"; "聖なる祈り"; "孤独"; "涼しく過ごすコツ"; "お洒落のコツ"; "卵をふわっと焼く方法"; "ごはんの研ぎ方"; "油汚れの対応方法"; "大人の振るまい"; "Suicaの使い方"|];;
let e = new List<big_int>();;
let max_num = 30;;
let rec ex (r:big_int) current maximum =
let main =
System.Console.WriteLine("{0}の経験値を得た。", e.[x - 1]);
System.Console.WriteLine("勇者は{0}にレベルが上がった!", x);
System.Console.WriteLine("勇者は、{0}を覚えた。", skills.[r3]);
done;;
F# なので再帰で書きたかったのですが。今回は for ループを使いました。さすがにこれを再帰で書くのはかなり迂遠だったので。ソースコードを kaijyou.7z に入れておきました。
より、F# らしく手直ししたバージョンを作ってみました。さらに、非同期実行を使って手直ししたバージョンも作りました。

