スズキ レッツ4にSHADのボックスSH29を取り付け

レッツ4用にSHADの「SH29」を取り付けた。
SH29はAmazonで購入。
レッツ4の荷台が小さいため,台座を取り付けるのに苦労したのでメモ。

荷台はこのサイズ

台座の部品など

実際には長いネジがもう4本付属しており,設置にはそちらを使用した。
写真上部の金具で荷台の下から固定するのだが,ご覧の通り一方が長く作られている。これが苦労の原因。

シートから遠い側は荷台の幅が狭くなっているため,台座の中心付近を固定することになるのだが,ここで金具の長い端が台座の底に当たり,金具と荷台との間に隙間ができてしまう。

おそらく金具の長い端は台座の外縁にある溝に当たるように設計されているのだろう。レッツ4の荷台が小さいため,そこまで届かないのだ。

金具の湾曲部にワッシャーを噛ませて隙間を埋めることも試したが,うまく固定できなかった。
そこで,台座の金具が当たる部分を削ることに。

左右1カ所ずつ,溝を広げる感じで台座の裏側を削る。柔らかい素材なので,普通のカッターでサクサク削れた。
取り付け結果はこんな感じに。


当然台座の強度は落ちることになるので,お薦めは出来ない。

シートに近い側はこんな感じで固定。

全4カ所をこのように固定。

上から見ると

しっかり固定できた。

台座にカバーをはめ込み,ボックスを取り付けて完成!

AOJ Vol.1 0115 Starship UAZ Advance

AOJ「Starship UAZ Advance」に挑戦。

方針

  1. 簡単のため,自機の座標を原点として考える
  2. 敵機の座標を(x_e, y_e, z_e)(自機原点)とする
  3. バリアの3点を(x_0, y_0, z_0), (x_1, y_1, z_1), (x_2, y_2, z_2)(自機原点)とする
  4. ベクトル\vec{V_e} = (x_e, y_e, z_e)を,バリア3点のベクトル\vec{V_i} = (x_i, y_i, z_i)i = 0 \dots 2)の和,\vec{V_e} = s\vec{V_0} + t\vec{V_1} + u\vec{V_2}で表す
  5. s, t, uが定まる場合
    • s < 0 or t < 0 or u < 0ならば,ビームはバリアの外
    • s + t + u < 1ならば,敵機はバリアの手前
  6. s, t, u不定の場合
    • ビームがバリアの一辺と平行になっている
    • 敵機がバリアの辺上にないか調べる
  7. 自機がバリア上にある場合も考え,自機と敵機を入れ替えて上記手順を行う

RubyWarriorに挑戦

同僚に教えてもらった「Ruby Warrior - Popular Free Ruby Programming Tutorial Game」に挑戦してみたのでコードを晒してみる。

https://github.com/nrmnr/ruby_warrior

当初、ターン制が分かってなくて、1ターンに2アクション起こして怒られたりした。
そこがわかれば、Level1Level2Level3のあたりは問題無し。コードがメッセージループ処理っぽくなるのは仕方ないか。

Level4で飛び道具を使う敵に苦戦。前のターンとのhealth値の比較で、攻撃されてるかどうかを判定する。

  1. 自分のターン(healthを保存)
  2. 敵のターン ←ダメージ!
  3. 自分のターン(healthが減っていれば攻撃されている)

みたいな。

  • Rubyの学習と言うより、パズルを解く感覚で面白かった。
  • CodeGolfしたり、少ないターンでクリアしたり、もう少し遊べそう。
  • 単一のコードで全面クリアできるかと思ったけど、Levelによって使えないメソッドがあって無理っぽい。

追記

元はCLI版のゲームだったみたい。インストール方法などは↓このへんで。
Ruby Warrior Strategy Guide - Jumpstart Lab Curriculum
二次元マップもあって,まだ先は長かった。

Google playカード

気づけばブログ一年ほったらかし。

Google playカードが日本でも購入できるようになったとのことで、早速買ってみた。

裏はこんな感じ。


クラッチ部分は削ると粉が出るタイプ。

https://play.google.com/redeem
にアクセスして、コードを入力するだけ。

無事にチャージできました。

MacOS+Emacs24.2でemacsclientが「can't find socket」エラー

家PCをiMacにして、いろいろと遊ぶ。
Emacsも最新の24.2をダウンロードし、インストール。
しかしターミナルからemacsclientを起動すると「can't find socket」エラーが発生。
(server-start)もしてるし…と思い調べてこちらの情報を発見。
~/.bash_profileに

alias emacsclient="/Applications/Emacs.app/Contents/MacOS/bin/emacsclient"

の一行を加えてターミナルを再起動。
今度はうまくいった。よかった。

Ruby 1.9.2と1.9.3のinitialize

Rubyを1.9.2と1.9.3の挙動の違い(バグ修正?)を見つけたのでメモ。

class C
  def m
    puts 'hoge'
  end
end

c = C.new 'fuga' # 引数に意味はない
c.m

としたとき,

# 1.9.2
#=> hoge
# 1.9.3
#=> (ArgumentError)

になる。
むしろ1.9.2のバグ?