2014年8月24日日曜日

[Fieldrunners2] TURBO DRYERの攻略

TURBO DRYERの難易度HEROICを攻略する方法を紹介します。手順を誤るとクリアーできなくなるので、特に前半は詳しく書いていきます。

使用するタワーは、次の5つです。

  1. GATLING TOWER
  2. MACHINE GUN
  3. GLUE TOWER
  4. ICE TOWER
  5. SPARK TOWER
  6. FRAMETHROWER

 図のように配置して、待ち構えます。

 GATRING TOWERをLevel 2へアップグレードします。

 GATRING TOWERを図のように配置して、敵ユニットを誘導します。

 中央のGATLIG TOWERをLevel 3にアップグレードします。アップグレードしないと逃げられます。

 GATLING TOWERで通路の穴を塞ぎ、MACHINE GUNを設置します。

 MACHINE GUNをそれぞれLevel 2に敵ユニットを倒しつつアップグレードします。余ったお金でGUTLING TOWERを設置し、Level 2までアップグレードします。

 SPARK TOWERを設置します。

 MACHINE GUNを左下に追加し、図のようにLevel 3までアップグレードします。

 SPARK TOWERをLevel 2にアップグレードし、FLAMETHROWERを設置します。

 FRAMETHROWERをLevel 2にアップグレードし、ICE TOWERのLevel 2を設置することで、大型のヘリに備えます。

 SPARK TOWERをLevel 3にアップグレードし、FRAMETHROWERを設置します。

 下のFRAMETHROWERをLevel 3にアップグレードします。

 ヘリ対策のため、GATLING TOWERを売り、GLUE TOWERを設置します。

 FLAMETHROWERをLevel 2にアップグレードします。

 重戦車に対しては、爆弾を使います。

 SPARK TOWERを追加します。

 軽戦車と同時に現れる、スロー系のタワーが効かない敵ユニットを倒すために、GATLING TOWERをアップグレードし、MACHINE GUNを追加します。

 MACHINE GUNをさらに追加します。

411ユニットを倒せました。

2014年8月23日土曜日

ボーネルンド KID-O-KID

 この夏の盆休みは天気の悪い日が多かったので、神戸 元町のBALの地下2Fにある子供を遊ばせる施設へ娘を連れて行きました。娘は、ボールプールとエアトラックが大好きで、2時間近くも走り回っていました(^o^)
  エアトラックを走る娘の写真です。

ボールプールで溺れている娘の写真です。

 これら以外にも、ボーネルンドで販売しているおもちゃ、例えば、マグフォーマなどもたくさん置いてあります。マグフォーマは、子供よりお父さんが巨大なオブジェを作っていまいした\(^O^)/

 まだオムツの外れていない3歳の娘を遊ばせた経験から、気をつけたい事を書いておきます。

1.オムツ交換は済ませてから入場
 オムツを交換するための設備はありますが1カ所しかなく、いつでも使えるとは限りません。また、遊びに夢中になっている娘をオムツ交換のために連れ出す事は至難の技です(-_-;)
 入場前にオムツを替えておいた方が無難です。

2.ハンカチやティッシュを持って入る
 荷物をいれる無料のロッカーがあり、財布と携帯以外の荷物を入れて入ったのですが、娘が泣いて鼻水を垂れ流したときにティッシュを持ってこなかった自分のアホさ加減に気がつきました(T_T)
 ロッカーに取りに行けば良いのですが、泣きながら暴れる娘を抱えてロッカーに行くのは避けたいものです。

3.空調は良く効いているので寒さ対策が必要かも
 子供が走り回る場所でもあるため、空調はよく効いています。人によっては寒いと感じるかも知れませんので、寒さに対する準備は必要でしょう。

2014年7月8日火曜日

3歳児の記憶力

日曜日に娘を連れて、神戸の垂水にあるポルトバザールというアウトレットへ連れて行きました。アウトレットについた時の娘の第一声は、
「トーマスあるかな?」
でした。

娘を連れて行くのは、約1年ぶりなのですが、前回、連れて行った時、トーマスの乗り物に乗せたことを憶えていたようです。

1年前にトーマスに乗せた時は緊張のためか固まっていましたが、今回は素直に喜んでいました。

妻の話では、まだ、ハイハイもできなかった頃の遊びをすると非常に喜ぶので、当時のことを憶えているようです。乳幼児といえども侮ることはできません(~_~;)

最近の研究では、3歳までの記憶も呼び起こすことができるようなので、将来、「お父さんは◯◯◯だった」と言われても良いように行動したいものです。

2014年7月2日水曜日

[Project Euler] Problem 31 「両替の計算」

イギリスでは硬貨はポンド£とペンスpがあり,一般的に流通している硬貨は以下の8種類である.
1p, 2p, 5p, 10p, 20p, 50p, £1 (100p) and £2 (200p).
以下の方法で£2を作ることが可能である.
1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p
これらの硬貨を使って£2を作る方法は何通りあるか?
SICPからコードを頂きます.
(define (first-denomination kinds-of-coins)
  (cond ((= kinds-of-coins 1) 1)
        ((= kinds-of-coins 2) 2)
        ((= kinds-of-coins 3) 5)
        ((= kinds-of-coins 4) 10)
        ((= kinds-of-coins 5) 20)
        ((= kinds-of-coins 6) 50)
        ((= kinds-of-coins 7) 100)
        ((= kinds-of-coins 8) 200)))

(define (cc amount kinds-of-coins)
  (cond ((= amount 0) 1)
        ((or (< amount 0) (= kinds-of-coins 0)) 0)
        (else (+ (cc amount
                     (- kinds-of-coins 1))
                 (cc (- amount 
                        (first-denomination kinds-of-coins))
                     kinds-of-coins)))))

(define (count-change amount)
  (cc amount 8))
計算してみます.
ようこそ DrRacket, バージョン 5.3.3 [3m].
言語: Pretty Big; memory limit: 2048 MB.
> (count-change 200)
73682
> 

2014年6月30日月曜日

[Project Euler] Problem 30 「各桁の5乗」

驚くべきことに, 各桁を4乗した数の和が元の数と一致する数は3つしかない.
1634 = 14 + 64 + 34 + 44
8208 = 84 + 24 + 04 + 84
9474 = 94 + 44 + 74 + 44
ただし, 1=14は含まないものとする.

この数たちの和は 1634 + 8208 + 9474 = 19316 である.

各桁を5乗した数の和が元の数と一致するような数の総和を求めよ.
95は59049ですから, 対象となる数の30万を超えることはありません.
  1. 2から30万までの整数のリストを作る.
  2. 各桁を5乗した結果の和を求める.
  3. 元の数と和が一致するものだけを残す.
手続きは次のようになります.
(require srfi/1)

(define (decimal-format nbr)
  (define (loop ans n)
    (if (= 0 n)
        ans
        (loop (cons (remainder n 10) ans) (quotient n 10))))
  (loop () nbr))

(define (digit-fifth-powers n)
  (fold + 0 (map (lambda (x) (* x x x x x)) (decimal-format n))))
計算してみます.
ようこそ DrRacket, バージョン 5.3.3 [3m].
言語: Pretty Big; memory limit: 2048 MB.
443839
> (filter (lambda (n) (= n (digit-fifth-powers n)))
          (iota 300000 2))
(4150 4151 54748 92727 93084 194979)
> (+ 4150 4151 54748 92727 93084 194979)
443839
> 

2014年6月28日土曜日

[Project Euler] Problem 29 「個別のべき乗」

2 ≤ a ≤ 5 と 2 ≤ b ≤ 5について, ab を全て考えてみよう:
22=4, 23=8, 24=16, 25=32
32=9, 33=27, 34=81, 35=243
42=16, 43=64, 44=256, 45=1024
52=25, 53=125, 54=625, 55=3125
これらを小さい順に並べ, 同じ数を除いたとすると, 15個の項を得る:
4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125
2 ≤ a ≤ 100, 2 ≤ b ≤ 100 で同じことをしたときいくつの異なる項が存在するか?
aとbの直積集合を求められれば答えは求まりそうです.
  1. aとbの直積集合を求める.
  2. aのb乗を求める.
  3. 重複を取り除く.
手続きは次のようになります.
(require srfi/1)

;; 直積集合を求める.
(define (product list-a list-b)
  (apply append
         (map (lambda (a)
                (map (lambda (b) (list a b))
                     list-b))
              list-a)))

;; 重複した要素を取り除く
(define (make-set items)
  (define (loop ans rest)
    (cond ((null? rest) ans)
          ((find (lambda (a) (= (car rest) a)) ans) (loop ans (cdr rest)))
          (else (loop (cons (car rest) ans) (cdr rest)))))
  (loop '() items))

(define dp 
  (map (lambda (a) (apply expt a))
       (product (iota 99 2) (iota 99 2))))
計算してみます.
ようこそ DrRacket, バージョン 5.3.3 [3m].
言語: Pretty Big; memory limit: 2048 MB.
> (take dp 20)
(4
 8
 16
 32
 64
 128
 256
 512
 1024
 2048
 4096
 8192
 16384
 32768
 65536
 131072
 262144
 524288
 1048576
 2097152)
> (length (make-set dp))
9183
> 

2014年6月27日金曜日

[Project Euler] Problem 28 「螺旋状に並んだ数の対角線」

1から初めて右方向に進み時計回りに数字を増やしていき, 5×5の螺旋が以下のように生成される:
21 22 23 24 25
20 07 08 09 10
19 06 01 02 11
18 05 04 03 12
17 16 15 14 13
両対角線上の数字の合計は101であることが確かめられる.
1001×1001の螺旋を同じ方法で生成したとき, 対角線上の数字の和はいくつか?
対角線上の数の増え方にパターンがあります. 一番内側が+2, その外側が+4となっています. まず, そのような数のリストを作ります.
(require srfi/1)

(define c
  (fold (lambda (n ans)
          (cons (+ (car ans) n) ans))
        '(1)
        (apply append
               (map (lambda (n) (list n n n n))
                    (iota 500 2 2)))))
計算してみます.
ようこそ DrRacket, バージョン 5.3.3 [3m].
言語: Pretty Big; memory limit: 2048 MB.
> (take (reverse c) 20)
(1 3 5 7 9 13 17 21 25 31 37 43 49 57 65 73 81 91 101 111)
> (fold + 0 c)
669171001
>