2018年01月21日

SmileBASIC で「コリドール」(ボードゲーム)

 パソコンミニの SmileBASIC で「コリドール」というボードゲームを実装してみた。二人プレイのみ。コンピュータとの対戦は(まだ)できません。

20180121-1.jpg

 「コリドール」は、正しくは "Quoridor" と書く。Gigamic 社が開発・販売しているゲームです。 ルールの説明と SmileBASIC のソースコードはこちらにあります。

 一人二役の対戦しかしてないのだけれども、二人でプレイしたら雰囲気悪くなりそう。お互いの進路を邪魔し合うゲームだからね。将棋で待ち伏せされたら「ひきょうだ」とか怒り出すタイプの人とはやらない方が無難。

 コンピュータにプレイさせるとしたら、どういう思考プラグラムを作ればいいだろうか。コマを動かす手は最大5種類だから選択肢が少ないが、壁を置く手はルール上可能な手が非常に多いので、案外面倒かもしれない。特に評価が難しそうなのが、「壁を置くことによって、相手に壁を置かれることを防ぐ」という戦略だな。誰か作ってみませんか。BASIC では難しそうだけど。

posted by toshinagata at 21:23| 日記

2018年01月20日

ジャズピアニストとクラシックピアニスト

 「同じ『ピアニスト』でもジャズとクラシックでは脳の使い方が違うことが判明」(Gigazine)。ああ、そりゃそうだろうなあ。クラシックピアノのトレーニングを受けていても、ジャズピアノって弾けるようにはならないんですよね。

 逆はどうなんだろう。ジャズの人で、ある程度その道を極めた後に、クラシックの勉強を始める人がいるじゃないですか。「脳の使い方」はともかくとして、音楽の捉え方が変わって、ジャズの演奏にもいい影響を及ぼしたりするんだろうか。中途半端な音楽になってしまったりしないんだろうか。

 ジャズの人が学ぼうとする音楽は、たいていバッハかモーツアルト。近現代の音楽に興味を持つ人もいるようです。いわゆるロマン派の音楽(たぶんベートーヴェンも含む)はあまり関心を持たれないようです。これも何か意味があるんだろうか。

タグ:音楽
posted by toshinagata at 10:41| 日記

2018年01月16日

PQI Air Card II でラズパイのベアメタル開発

 PQI Air Card II を購入。32 GB の microSD カードとセットで、2,400 円。

20180116-1.jpg

 一見 microSD カードのアダプタなのだが、実は無線 LAN の機能を持っている。SD カードの形をした無線 LAN 機器として FlashAir が有名だけど、この品物は、挿入された microSD を外部記憶装置として認識できる。無線 LAN 部分と記憶装置部分が分離されているため、使い道はさらに広い。

 今回は、ベアメタルラズパイの microSD カードに無線でアクセスできるようにする目的で購入した。こんな風に使っています。サンコーのmicroSD-SD エクステンションケーブル を使って、ラズパイの microSD スロットにフルサイズの SD が接続できるようにする。もともとラズパイに入れていた microSD を PQI Air Card II に入れて、それを SD スロットに挿入する。このままラズパイの電源を入れると、普通に立ち上がります。つまり、microSD-SD アダプタとしてもちゃんと機能している。

20180116-4.jpg

 無線 LAN の設定。立ち上げると、"PQI Air Card" という無線 LAN アクセスポイントが見える。そこに接続して(初期設定ではパスワードはない)、192.168.1.1 にウェブブラウザでアクセスすると、次の画面になる。

20180116-2.jpg

 PQI Air Card に PC からアクセスするとき、初期設定通りに PQI Air Card がアクセスポイントとなっていると、アクセスするたびに通常のインターネット接続と PQI Air Card を切り替えないといけないので、相当に煩わしい。そこで、PQI Air Card が自分ちの無線 LAN アクセスポイントにクライアントとして接続するように設定を変更する。Wifi Setup の画面で、Hotspots の項に自分ちの無線 LAN アクセスポイントの設定を書き込んでおく(下図の@)。

20180116-3.jpg

 ちなみにAは、PQI Air Card をアクセスポイントとして使う時のパスワード。普段は使わないけど、念のために設定しておく。

 立ち上げ時にクライアントモードで起動させるためには、microSD のルートディレクトリに autorun.sh というファイルを作成して、次の内容を書いておけばよい。(この情報は、ひとりぶろぐさん「デジカメ内部でRubyを動かす狂気!無線LAN内蔵SDカードアダプタPQI Air Cardの間違った使い方」による。)

#!/bin/sh
sleep 5
/usr/bin/w2

 再起動して、ターミナルから ftp でアクセス。IP アドレスが何かは推測するしかない。固定 IP で接続する方法ってあるのかな。

$ ftp 192.168.1.17
ftp: Can't connect to `192.168.1.17': Connection refused   #  違った!
ftp: Can't connect to `192.168.1.17'
ftp> quit
$ ftp 192.168.1.18
Connected to 192.168.1.18.     #  通りました
220 Operation successful
Name (192.168.1.18:xxxxxx):    #  ユーザー名もパスワードもなし
230 Operation successful
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 EPSV ok (|||37389|)
150 Directory listing
drwxr-xr-x    4 root     root             0 Dec 31 17:00 mtd
drwxr-xr-x   10 root     root          4096 Dec 31 17:00 sd
226 Operation successful
ftp> ls sd
229 EPSV ok (|||36661|)
150 Directory listing
-rwxr-xr-x    1 root     root         18693 Aug 21  2015 COPYING.linux
drwxr-xr-x    3 root     root          4096 Dec 31  1979 DCIM
-rwxr-xr-x    1 root     root          1494 Nov 18  2015 LICENCE.broadcom
...(snip)...
-rwxr-xr-x    1 root     root       3939492 Jul  3  2017 start_x.elf
226 Operation successful
ftp>

 SmileBASIC のファイルは /sd/PCM/SB, MZ-80C エミュレータのファイルは /sd/PCM/MZ80 に入っている。大文字・小文字は区別される。ディレクトリ名を打ち間違えてもエラーを返してくれないので、要注意。


ftp> cd sd/PCM/SB
250 Operation successful
ftp> put something
local: something remote: something
229 EPSV ok (|||52093|)
150 Ok to send data
100% |***********************************|  3852       27.41 MiB/s    00:00 ETA
226 Operation successful
3852 bytes sent in 00:00 (200.65 KiB/s)
ftp> 

 ところが、SmileBASIC 側で Files しても、ファイルは認識されていない。こっそりファイルを書き換える操作はサポートしていないのかも。結局 reboot が必要だった。さらに、リブートしたあと USB キーボードが認識されない。一度コネクタを抜き差ししないといけない。なんだか、いろいろ不便だな。電源を切って microSD を差し替えて、というよりはよほど楽だけどね。

タグ:Raspberry Pi
posted by toshinagata at 22:19| 日記