Mac 版 'とびだせ どうぶつの森' マイデザイン作成ツール AnimalCrossingDesign を公開。ニンテンドー3DS内蔵ブラウザを使って、画像をMac に保存する PHP プログラム公開、Wii U、Kindle Fire HD 購入

今年最後の更新になります。

ニンテンドー3DSとびだせ どうぶつの森‘ で遊んでいるのですが、マイデザインでアップルのロゴマークを作ってみようとドット絵に挑戦してみました。しかし、私に絵心がないのかぜんぜんそれらしいものが作れません。

そこで、まとめ Wiki

とびだせ どうぶつの森@まとめwiki - トップページ
http://www49.atwiki.jp/doubutsunomori3ds/

に紹介されているマイデザイン作成ツールを利用してみようと思いました。

しかし、ちょうど良いパレットが見つかりません。

そこで、 Mac で動作するマイデザイン作成ツールを作ってみました。(動作環境は Mac OS X 10.7 Lion Mac OS X 10.6 Snow Leopard 以上です。)

QRコード出力ができないので、実用性に乏しいですが、良かったらダウンロードしてください。

下記 URL で公開します。

Mac 版 'とびだせ どうぶつの森' マイデザイン作成ツール AnimalCrossingDesign
http://kyoshiaki.sakura.ne.jp/osx/Sample/AnimalCrossingDesign.zip
Mac OS X 10.6 Snow Leopard 以上で動作するように変更。
http://kyoshiaki.sakura.ne.jp/osx/Sample/AnimalCrossingDesign_101.zip

おまけに、ニンテンドー3DS内蔵ブラウザを使って、’とびだせ どうぶつの森‘ のスクリーンショットを Mac に保存する PHP プログラムも付けておきました。

注意) ‘開発元が未確認のため開けません’ というダイアログが出る場合は、Finder 上で AnimalCrossingDesign を右クリック (CTRL + 左クリック) して、メニューから ‘開く’ を選び、’開いてもよろしいですか’ とダイアログがでるので ‘開く’ ボタンをクリックしてください。

後、拙作マイデザイン作成ツール AnimalCrossingDesign を使って作ったアップルのロゴマーク QR コード

を公開します。

Wii U プレミアムセット (WUP-S-KAFC)

Wii U プレミアムセット (WUP-S-KAFC)

Wii U ベーシックセット (WUP-S-WAAA)

Wii U ベーシックセット (WUP-S-WAAA)

Wii UKindle Fire HD を購入しました。Wii U は、アップデートに時間がかかる以外は問題がありません。任天堂TwitterMiiverse (ミーバース) には、未来を感じました。SNS として可能性を感じます。はてなが開発に参加しているようです。

Kindle Fire HD 16GB

Kindle Fire HD 16GB

Kindle Fire HD でコミックを購入してみました。コミックは7インチサイズで問題なく読むことができます。

Kindle Fire HD の詳しい説明は

Amazon.co.jp ヘルプ: Kindle Fire HD
http://www.amazon.co.jp/gp/help/customer/display.html/ref=help_search_1-3_bc?ie=UTF8&nodeId=201047790

で読めます。

また、上記 ヘルプでは紹介されていませんが、スクリーンショットを撮るには、音量 – ボタンと電源ボタンを同時に押すと撮れます。

Kindle Fire HD と Mac 間でファイルを転送するには、

Amazon.co.jp ヘルプ: Kindle Fireにコンテンツを転送またはダウンロードする
http://www.amazon.co.jp/gp/help/customer/display.html/ref=help_search_1-4?ie=UTF8&nodeId=201073220&qid=1356429070&sr=1-4
Android File Transfer (Mac) - ダウンロード
http://android-file-transfer.softonic.jp/mac

Android File Transfer が必要です。

Kindle Fire HD と Mac を USB で接続して、Android File Transfer で表示されるウインドウのファイルを Finder で開いたフォルダにドラッグ・ドロップすれば、コピーできます。逆に Finder から、Android File Transfer のウインドウにドラッグ・ドロップすれば、Kindle Fire HD にコピーできます。

米国のアカウントと日本のアカウントを統合するか悩んでいます。

TI-Nspire CX CAS 版 Neko (Kitty) 公開、iPad 上で動作する Lua スクリプト言語開発 Codea、とびだせ どうぶつの森

以前、紹介したように Texas Instruments Nspire CX CAS Graphing Calculator (以下略 TI-Nspire CX CAS) を購入しました。
TI-Nspire CX CAS では、Lua スクリプト言語でプログラムを組むことができます。

それで、Amazon.com から Kindle

Beginning Lua Programming (Programmer to Programmer)

Beginning Lua Programming (Programmer to Programmer)

を購入し、読んでいる途中なのですが、実際に TI-Nspire CX CAS で Lua スクリプト言語プログラミングに挑戦してみました。
初めての Lua スクリプト言語プログラミングなので、稚拙です。

プログラムの題材は、私が、いろいろなプラットフォームに移植している Neko

Neko (ソフトウェア) - Wikipedia
http://ja.wikipedia.org/wiki/Neko_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)

です。

名前は、Kitty (子猫) にしてみました。良かったら下記 URL からダウンロードしてください。

Kitty Version 1.0.0
猫 (Neko) Version 1.0.0
http://kyoshiaki.sakura.ne.jp/osx/Sample/Kitty.zip

プログラムの実行は、TI-Nspire CAS Student Software の Content Explorer で Computer から Kitty.tns ファイルをダブルクリックして開き、Tab 1.2 を選択すると実行画面が表示されます。Content Explorer を使って TI-Nspire CX CAS 本体 (Connected Handhelds) に Kitty.tns ファイルをドラッグ・ドロップすれば、コピーできます。

TI-Nspire CAS Student Software で Tab 1.2 を開き、メニュー ‘Insert/Script Editor/Edit Script’ を選択すると Script Editor が起動し、ソースを確認することができます。

また、iPad 上で Lua スクリプト言語でプログラムを組むことができる Codea を購入してみました。

App Store
Codea
https://itunes.apple.com/jp/app/codea/id439571171?mt=8
カテゴリ:仕事効率化
\850

折角、覚えた Lua スクリプト言語を活かして見たいですね!

また、年甲斐もなく

とびだせ どうぶつの森
http://www.nintendo.co.jp/3ds/egdj/index.html

を買ってみました。どうぶつの森が、どのようなゲームなのかあまり理解していなかったので、Wiki

とびだせ どうぶつの森@まとめwiki - トップページ
http://www49.atwiki.jp/doubutsunomori3ds/
とびだせ どうぶつの森 攻略まとめWiki
http://ebiyokan.straw-berry.net/butsumori_3ds/
Animal Crossing City, the Animal Crossing wiki - Wild World, City Folk, codes, and more
http://animalcrossing.wikia.com/wiki/Animal_Crossing_Wiki

で確認しながら、進めました。(英語の勉強に、英語版 Wiki も利用しています。)

任天堂公式ページ

とびだせ どうぶつの森
http://www.nintendo.co.jp/3ds/egdj/index.html
とびだせ どうぶつの森:配信プレゼント
http://www.nintendo.co.jp/3ds/egdj/item/present.html
とびだせ どうぶつの森:マイデザイン
http://www.nintendo.co.jp/3ds/egdj/item/design.html
とびだせ どうぶつの森ニンテンドーhttp://www.nintendo.co.jp/3ds/egdj/item/village.html

の配信プレゼント、マイデザイン、ニンテンドー村を訪れるのをお忘れなく。

私が作成したホビット村のスクリーンショットです。(スクリーンショットを撮るには、L+R ボタン同時押しです。スクリーンショットのファイルは、SDカードに保存されるので、パソコンからアクセスするか、3DS 内蔵ブラウザを利用します。)

また、スクリーンショット画像をニンテンドー3DSから取り出すのに、いちいち SD カードを使うのは、面倒です。そこで、ニンテンドー3DS のブラウザ経由で、Mac に保存するプログラムを PHP で組んでみました。

OSX 10.8 Mountain Lion で Web 共有と PHP5 を有効にしているので、~/サイト (~/Sites) フォルダに PHP プログラムを置き、ニンテンドー3DS のブラウザでアクセスし、画像を Mac にアップロードできます。単純なプログラムです。スクリーンショットを付けておきます。要望があれば、公開するかもしれません。

ニンテンドー3DS内蔵ブラウザで、Mac にアクセスした状態。

Safari
http://localhost/~あなたのアカウント/AnimalCrossing/3DS.php
ニンテンドー3DS内蔵ブラウザ
http://プライベートアドレス(例: 192.168.1.2)/~あなたのアカウント/AnimalCrossing/3DS.php
Finder
/Users/あなたのアカウント/Sites/AnimalCrossing/data

Apple Education Event、Land of Lisp

随分遅くなりましたが、本年も宜しくお願いします。

Apple Education Event, January 2012
http://events.apple.com.edgesuite.net/1201oihbafvpihboijhpihbasdouhbasv/event/index.html
Apple Keynotes - iTunes Podcast
http://itunes.apple.com/jp/podcast/apple-keynotes/id275834665

1月19日、Apple はニューヨークで開催したメディアイベントで、「iBook 2」、電子書籍作成アプリ「Books Author」、iOS向けに「iTunes U」のアプリを発表しました。

早速、iBooks Author をダウンロードし、試してみました。ウィジェットを追加できる仕組みは、可能性を感じますね。OS 純正の Calculator.wdgt を追加して遊んでみました。ウィジェクト作成ソフト Dashcode も随分進歩しています。すっかり、使い方を忘れてしまったので、

ヘルプ/Dashcode User Guide
▼ デュアルプロダクトWebアプリケーションチュートリアル
▼ プロジェクトを開始する
▼ ウィジェットまたはWebアプリケーションのユーザインターフェイスをデザインする
▼ テストする/共有する
Webアプリケーションを動作形式で保存する

を拾い読みし、基本操作を学びました。

Dashcode で Dashboard のテンプレートから、カスタムを選びます。プロジェクトウインドウ左側 (ナビゲータ) の ‘実行と共有’ をクリックします。ウインドウ右下に ‘ディスクに保存…’ ボタンが現れるのでクリックすると、拡張子が wdgt 形式のファイルで保存されます。iBooks Author では、中央の ‘ウィジェット‘ ボタンから ‘HTML’ を選択します。現れたエリアにウィジェットをドラッグ・ドロップすれば追加できます。プレビューするには、iPad が必要になります。拙作 YKMinesweeper.wdgt を作り直してみたいですね!

Land of LISP: Learn to Program in Lisp, One Game at a Time!

Land of LISP: Learn to Program in Lisp, One Game at a Time!

以前にも書いたように、Land of Lisp [ asin:1593272812 ] を読書中です。サンプル orc-battle.lispsbcl で実行してみました。sbcl については Homebrew

brew update
brew install sbcl

を利用してインストールしました。

sbcl を起動し、 load 関数で orc-battle.lisp を読み込み、(orc-battle) で実行しました。

~ $ sbcl
This is SBCL 1.0.53, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
* (load "~/lisp/Land of Lisp/orc-battle.lisp")
T
* (orc-battle)
You are a valiant knight with a health of 30, an agility of 30, and a strength of 30
Your foes:
1. (Health=3) A fierce BRIGAND
2. (Health=6) A malicious hydra with 6 heads.
3. (Health=2) A fierce BRIGAND
4. (Health=6) A slime mold with a sliminess of 4
5. (Health=6) A wicked orc with a level 6 club
6. (Health=7) A fierce BRIGAND
7. (Health=1) A wicked orc with a level 8 club
8. (Health=8) A fierce BRIGAND
9. (Health=10) A malicious hydra with 10 heads.
10. (Health=4) A slime mold with a sliminess of 5
11. (Health=7) A malicious hydra with 7 heads.
12. (Health=4) A fierce BRIGAND

キーの入力状態になるのですが、入力状態の前に出力した文字列が表示されません。sbcl の場合 (read) を呼ぶ前に (force-output) を呼ぶ必要があります。

orc-battle.lisp の場合

(defun player-attack ()
(fresh-line)
(princ "Attack style: [s]tab [d]ouble swing [r]oundhouse:")
(force-output)
(case (read)
(s (monster-hit (pick-monster)
(+ 2 (randval (ash *player-strength* -1)))))
(defun pick-monster ()
(fresh-line)
(princ "Monster #:")
(force-output)
(let ((x (read)))

上記のように (read) の前に、(force-output) を2箇所、追加しました。これで正しく動作しました。

* (orc-battle)
You are a valiant knight with a health of 30, an agility of 30, and a strength of 30
Your foes:
1. (Health=3) A fierce BRIGAND
2. (Health=6) A malicious hydra with 6 heads.
3. (Health=2) A fierce BRIGAND
4. (Health=6) A slime mold with a sliminess of 4
5. (Health=6) A wicked orc with a level 6 club
6. (Health=7) A fierce BRIGAND
7. (Health=1) A wicked orc with a level 8 club
8. (Health=8) A fierce BRIGAND
9. (Health=10) A malicious hydra with 10 heads.
10. (Health=4) A slime mold with a sliminess of 5
11. (Health=7) A malicious hydra with 7 heads.
12. (Health=4) A fierce BRIGAND
Attack style: [s]tab [d]ouble swing [r]oundhouse:

終了するには、(sb-ext:quit) を実行します。

 You have been killed. Game Over.
NIL
* (sb-ext:quit)
~ $ 

sbcl ではなく clisp も試したくなったのですが、Homebrew でインストールするとビルドに失敗します。llvm-gcc ではなく gcc が必要なようです。
自分で gcc をビルドするのは大変なので

kennethreitz/osx-gcc-installer - GitHub
https://github.com/kennethreitz/osx-gcc-installer

の osx-gcc-installer を利用しました。Xcode をインストールした状態で osx-gcc-installer をインストールしたので、問題があるかもしれません。

Homebrew で gcc を使ってビルドするには、環境変数 CC を設定するのではなく

brew install clisp --use-gcc

オプション –use-gcc を使うと良いようです。

clisp を使って orc-battle.lisp を実行するには、sbcl のような (force-output) を追加する必要はありません。

~ $ clisp
i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
I I I I I I I      8     8   8           8     8     o  8    8
I  \ `+' /  I      8         8           8     8        8    8
\  `-+-'  /       8         8           8      ooooo   8oooo
`-__|__-'        8         8           8           8  8
|            8     o   8           8     o     8  8
------+------       ooooo    8oooooo  ooo8ooo   ooooo   8
Welcome to GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>
Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2010
Type :h and hit Enter for context help.
[1]> (load "~/lisp/Land of Lisp/orc-battle.lisp")
;; Loading file /Users/yoshiaki/lisp/Land of Lisp/orc-battle.lisp ...
;; Loaded file /Users/yoshiaki/lisp/Land of Lisp/orc-battle.lisp
T
[2]> (orc-battle)
You are a valiant knight with a health of 30, an agility of 30, and a strength of 30
Your foes:
1. (Health=8) A wicked orc with a level 1 club
2. (Health=9) A malicious hydra with 9 heads.
3. (Health=1) A fierce BRIGAND
4. (Health=9) A slime mold with a sliminess of 3
5. (Health=9) A malicious hydra with 9 heads.
6. (Health=8) A wicked orc with a level 1 club
7. (Health=2) A slime mold with a sliminess of 5
8. (Health=7) A malicious hydra with 7 heads.
9. (Health=5) A fierce BRIGAND
10. (Health=2) A slime mold with a sliminess of 4
11. (Health=5) A malicious hydra with 5 heads.
12. (Health=5) A slime mold with a sliminess of 5
Attack style: [s]tab [d]ouble swing [r]oundhouse:
NIL
[3]> (exit)
Bye.
~ $ 

clisp を終了するに、(exit) を使ってください。

orc-battle.lisp は、簡単なプログラムです。それで、ゲームに勝つのもそんなに難しくないと思っていました。ところが、なかなか勝つことができません。それで、ソースを熟読して攻撃パターンや、ヘルスポイントの計算方法を理解し、ようやく勝てるようになりました。単純なゲームですが、熱中してしまいました。絶妙なバランスです。ソースの熟読には、別の理由もあったのですが!

orc-battle.lisp で勝利した動画を添付しておきます。後、おまけとして、最近取り組んでいたプログラムの動作模様も公開します。( 04 分 01 秒から始まります。)

現在、Kindle 版 Land of Lisp

IV. Lisp is Science
15. Dice of Doom, a Game Written in the Function Style
Implementing Dice of Doom, Version 1
P312
Location 7551
Calculating Passing Moves

まで読んだのですが、Common Lisp を理解するには、最良の本ですね!Practical Common Lisp も持っているのですが、Land of Lisp の方が基本的な知識を得ることができます。Practical Common Lisp では、途中で投げ出してしまったので、気付かなかったのですが、Common Lisp では、構造体も使えるのですね!

P163
Location 4314
Common Lisp Structures
> (defstruct person
name
age
waist-size
favorite-color)
PERSON
> (defparameter *bob* (make-person :name "Bob"
:age 35
:waist-size 32
:favorite-color "blue"))
> *bob*
#S(PERSON :NAME "Bob" :AGE 35 :WAIST-SIZE 32 :FAVORITE-COLOR "blue")
> (person-age *bob* )
35
> (setf (person-age *bob* ) 36)
> (person-age *bob* )
36