2010-08-01から1ヶ月間の記事一覧
今日もTropico3のキャンペーンを攻略していく。 【VIVA TROPICO(ビバ・トロピコ)】 幸福度を65以上にすればOK。 序盤は資金難に苦しむが、 タバコ工場がうまくまわりはじめたら一気に楽になった。 開始後15年、幸福度58%まで上げたあたりでイベント発生。 幸…
Scala Wikiに載っていたデザインパターン、Loanパターンをやってみる。 リソースの取得と開放はクラス側が受け持って、 使う側はリソースの開放忘れなどをきにせずに安全にクラスを使える、というパターン。 一般形はdef withResource[A](f : Resource => A)…
Round関数を使った丸めの挙動は処理系によって違う。 0.5を丸めると、四捨五入されていつも1になりそうだが、実はそうとも限らない。 丸め方にはいくつかある。 ●四捨五入(算術丸め) 目的の桁の次の桁の数値が4以下なら切捨て、5以上なら切上げ。 一番よく…
キャンペーンばっかりやっていてもアレなんで、 SANDBOXをやってみた。 何やら神モードとかいうのがある。 どれだけ難しいのかと思いながら覚悟しながら始める。 …といきなり資金50万からスタート。 神レベルの難しさじゃなくて神様になった気分で好きにでき…
アーイアムプレジデンテ!! 今回は5つ目、6つ目、7つ目のキャンペーンシナリオ。 4つ目まではチュートリアルの続きみたいなもんだからここからが本番。 【PIRATE CAVE(海賊の島)】 どうやらシナリオのタイトルは『Tropico2 Pirate Cave』に因んで付けられた…
今回のシナリオは3つ目のPILGRIM HAVEN。 タイトルの意味が分からないので最初敬遠していたが、 辞書を引くと『巡礼者の安息の地』という意味らしい。 最初宗教関連のマップかと思ったが、実は観光MAPだった。 観光客を一定数呼び集めればクリア。 とりあえ…
あいあむぷれじでんて。 キャンペーンモードの1つ目のシナリオBANANAをクリアしたら新たに3つシナリオ開放。 2つ目のシナリオ、SECOND CHANCEとひとつ飛ばして4つ目のシナリオINDUSTRY TITANをプレイしてみた。 【SECOND CHANCE】 20年以内に鉄を一定量輸出…
アイアムプレジデンテ! チュートリアルも終わったのでキャンペーンモードを始めるのである。 ウム。 副官君よ、ちゃんと補佐するのだぞ。 アイアムプレジデンテ。 最初はひとつしか島を選べない。 バナナ島だ。 チュートリアルの続きみたいな感じっすかね。…
メメント(クリストファー・ノーラン: 原案、今野雄二: 著、ソニーマガジンズ刊) 映画を見て気になったので書籍版を読んでみた。あくまでもノベライズ版、ということで原作、というわけではないみたい。時間軸の進み方は順方向。DVDの特典の『逆再生』と同…
Tropico 3 (輸入版)出版社/メーカー: Kalypso Mediaメディア: DVD-ROM購入: 6人 クリック: 67回この商品を含むブログ (4件) を見る トロピコ3というゲームを買った。 ジャケットの髭面のおっさんがツボにハマって衝動買いしてしまった。 カリブの海に浮かぶ…
某運送業者からの荷物が、通常なら1日で届く距離なのに4日かかった。 別に急ぎでもなかったのでそれは構わないのだが、荷物がナマモノだったら・・と思うとちょっと怖い。 きちんと冷蔵されていても4日経つとモノによっては結構痛んでしまう。 さらに現場…
デザインパターンではないような気もするけど、Scala Wikiに載っていたのでやってみる。 "If it walks like a duck and quacks like a duck, it must be a duck" (もしもそれがアヒルのように歩き、アヒルのように鳴くのなら、それはアヒルである) オブジ…
Monostateパターン。 インスタンスは複数作られるが、全てのインスタンスが同じ状態にあるパターン。 実装するには変数を全てクラス変数にする。 このパターンを使うくらいならSingletonパターンでいい気がするので、使い道が思い浮かばないパターン。 ただ…
GoFデザインパターン以外のパターンもやってみる。 まずはBefore Afterパターン。 ある手続き(本処理)の前後に必ず特定の処理を行わせたいときに使うパターン。 try〜finallyで本処理を囲う。 本処理で例外が発生しても必ず後処理が実行される。 パターン…
最近Scalaばっかり触っていたらJavaの書き方を忘れてしまった。 どれくらい酷いかっていうと型推論が効かなくてイラっとくるくらいのプチ重症。 そんなわけで、リハビリがてらTom猫7.0を使ってServlet 3.0をちょっとだけ触ってみた。 Servlet 3.0ではweb.xml…
デザインパターンのMementoパターンを勉強していたら、 無性に映画のメメントが見たくなった。 GoF23パターンを一通り終えた自分へのご褒美(?)として、メメントのDVDを買ってきた。 制作2001年と、思ったより新しいのに少し驚いた。 90年代だと思ってたの…
Scala de Design Patternのまとめ。Gang of Fourの23パターンとそれ以外のデザインパターンが少しある。結構ふざけた例とか分かりにくい例が多いけどそれはご愛嬌。 Scalaの言語自体の機能やライブラリが強力なので、ここで挙げたやり方以外にもっと色々なや…
Façadeパターン。 関連する手続きを1つのクラスに集約して使いやすいインターフェイスを提供する。 いい例が思い浮かばなかった・・package designpattern.gof4.facadeobject Facade { def doStuff { ModuleA.methodA ModuleB.methodB } }object ModuleA { d…
Builderパターン。package designpattern.builderimport scala.Enumerationsealed trait Animal { val value: String } object Lion extends Animal {val value = "Lion"} object Eagle extends Animal {val value = "Eagle"} object Human extends Animal {…
Mementoパターン。 GoF23パターンのうち、パターン名がラテン語なのはこれだけ。 擬似乱数発生装置を作ってみた。 16bitの乱数を生成する。 アルゴリズムは混合合同法。 Seed値固定の場合はn番目に得られる数値はいつも同じ。 package designpattern.memento…
Visitorパターン。 Accepterをパターンマッチングで処理できるので、 Acceptor毎にvisitメソッドを定義しなくて良い。package designpattern.visitortrait Acceptor { def accept(visitor: Visitor) = visitor.visit(this) }case class AcceptorImpl1 extend…
Interpreterパターン。 Wikipediaの例のパクり。 逆ボーランド記法の式のparse。 これくらいなら意外と簡単にできるもんなんすね。import scala.collection.mutable.Stacktrait Expression { def interpret(s: Stack[Int]) }class Num(number: Int) extends …
Chain of Responsibilityパターン。 ケロロでやってみた。sealed abstract class 階級 { val 値: Int } object 軍曹 extends 階級 { val 値 = 6 } object 伍長 extends 階級 { val 値 = 5 } object 二等兵 extends 階級 { val 値 = 1 }trait ケロン星人 { va…
Stateパターン。 Scalaのtraitでフィールドも抽象宣言できるのを使ってみた。trait State { val name: String val value: Int override def toString = "Name: " + name + " Value: " + value }object State1 extends State { val name = "State1" val value…
Proxyパターン。 クラスの関数へのコールをフックする。 Decoratorパターンと実装の形は似た感じに。trait Hoge { def doStuff: Unit }class HogeImpl extends Hoge { def doStuff = println("hoge") }trait Proxy extends Hoge { abstract override def doS…
Mediatorパターン行きます。 オブジェクト間のやりとりを仲立ちするMediatorを置くパターン。 下の例ではGroupにMemberが追加される毎に今までいたMemberがgreetする。 class Member(name: String) { override def toString = name def greet(guest: Member)…
Prototypeパターン。 ScalaでCloneableインターフェイスを実装するには@cloneableアノテーションを使う。 java.lang.Cloneable interfaceもしくはscala.collection.mutable.Clonaable traitをextendsする方法もある。 @cloneableアノテーションを用いた場合…
Observerパターン。 trait Subject { var observerCollection = List[Observer]() def addObserver(o: Observer) def notifyObservers }trait Observer { def notify(value: Int): Unit }object Main { def main(args: Array[String]) = { val concreteSubje…
Bridgeパターン。trait Color { def getColor: String }trait White extends Color { def getColor = "白い" }trait Pink extends Color { def getColor = "桃色の" }abstract class Animal extends Color { println(this) override def toString = "私は" +…
Commandパターン。 あまりScalaっぽくない。trait Command { def execute: Unit }class CommandA extends Command { def execute = println("Execute CommandA") }class CommandB extends Command { def execute = println("Execute CommandB") }class Recei…