自然選択体験ゲ−ム(?)

SpxJ

SPX in JAVA Applet の説明書
& DSプチコン版 & スマホ用 & au用[CrxJ]

もくじ

  1. 目的
  2. はじめ方,終わり方
  3. 蛾のみつけ方
  4. 蛾のつかまえ方
  5. 蛾の進化
  6. 遺伝型と表現型
  7. 生殖
  8. 表示モ−ドと色調
  9. 世代更新の表示
  10. 動作環境
  11. SPX小史
  12. 虫の名前について
  13. 連絡先

【目的】

 マウスでを捕食するゲ−ム(?)です.自然選択によっておこる進化を体験してもらうのが目的です.捕食者が視覚によって探索することで,被食者側に隠蔽的色彩が発達することと,捕食者側にサ−チングイメ−ジが形成されること,これらを体験的に理解できる,のではないかなぁ.

 ゲ−ム,というからには,勝ち負けとか,得点とか,そういうものがあるのが普通だと思うのですが,このSPXJにはそれがありません.まぁ,ステ−ジ数がありますが.時間切れ,ゲ−ムオ−バ−がないので,やろうと思えばいくらでも,自分から終了するまで続けられます.


【はじめ方,終わり方】

 アプレットですのでブラウザ(「インターネットエクスプローラ」とか「ネットスケープナビゲータ」とか)の頁上で表示されていれば,既に操作できる状態です.

 ゲ−ム(?)中は,ひたすら蛾をクリックして捕食するのみです.

 ブラウザの当該頁が閉じれば終了します.別頁に移動したり,元の頁に戻ったりしてもいいです.

SpxJアプレット実行

【蛾のみつけ方】

 [場]の背景は4色の不規則なモザイクで,その上に10匹の蛾が潜んでおり,斜め(4方向ある)に止まっています.色彩は個体ごとに違いますが,左右対称なのでそれを目安にして探索すればよいでしょう.また,背景にしかない色,蛾にしかない色がありますのでこれも目標になります.


図2.潜んでいる二匹の蛾


【蛾のつかまえ方】

 ゲ−ム(?)中,捕食するにはマウスを使います.蛾の中胸をクリックすることで捕食できます.捕食した個体は画面の右側に並べられます.中胸以外の所をクリックしても反応しません.


図3.中胸をクリック

 10匹中8匹を捕食すると,世代が更新し[ステ−ジ]が変わります.背景が再構築されると同時に,生き残った2匹から次の世代が10匹発生し,[場]に再配置されます.繁殖の際には両親の形質が子へ遺伝し,一定の比率で突然変異を起こします.

 背景の模様3の色を基本とし,これに2〜5の色で[木の葉]的な点を散布したあと,2〜5の色で[木の幹]的な縦線を描き,更に[木の葉]を散布しています.これらは乱数によっていますので,毎回同じではありません.


【蛾の進化】

 捕食と繁殖の結果,蛾は進化します.ただし変化しうるのは色彩のみです.外形やその他のパラメ−タは変わりません.蛾が表現しうる色は限られています.
 画面の左側には常に初代の全個体(10匹)がならんで表示されます.右側には現世代の捕食済個体(8匹まで)が表示されていきます.較べてみればそこに「進化」が.


図4.たとえば17世代での進化

 蛾の遺伝様式は実際の(生物の)蛾のものとは異なっています.体細胞,生殖細胞ともにn=8の半数性で,受精直後に減数分裂したあと片方の細胞が発生するような設定になっています.スギコケなどの場合を思い浮かべると近いかも知れません.
 個体に雌雄の区別はありません.とにかく,生き残った2個体の間で次代が作られます.でんでん虫か,あんたら.


【遺伝型と表現型】

 蛾の色彩パタ−ンは8本の染色体上にある各1個(計8個)の遺伝子で決定されます.これら遺伝子座 I 〜 VIII は挙動も効果も独立しています.つまり,交雑の際は各遺伝子は独立して組み合わされ,独立して表現型に影響します.どの遺伝子座も遺伝子の状態は直接パレットを指定する整数値,3,4,5,6のどれかです.


図5.8つの遺伝子座と遺伝型の2例

 ここで遺伝子座 I, II, ... VIII の状態がそれぞれ5,3,...5である個体は,いわば遺伝子ベクトル5,3,...5と単純化できます.これが蛾の遺伝型といえるでしょう.
 ところで,蛾は下の図のような形をしています.


図6.蛾のシルエット

 蛾の体の各部分の色彩は,それぞれどの遺伝子座に支配されるかが決まっています(図7上).従って,表現型(図7下左)は遺伝型(図7下右)を直接反映しています.


図7.遺伝子の支配部位


【生殖】

 出現個体(10匹)のうち8匹が捕食されて死んだ(=2匹が生き残った)段階でステ−ジが進み,場が変わり,繁殖が行われます.この時,以下のようにして,繁殖個体の遺伝子ベクトルが次世代の出現個体に遺伝します.


図8.捕食を免れた2匹が次世代の親になる

 まず,生き残った2匹の出現個体(仮にi,j)を繁殖個体とします(図8).子孫を残す事なく無念な最期を遂げた蛾たちの冥福をお祈り申し上げます.

 そして,次代の出現個体10匹(k)の各遺伝子座(l)ごとに遺伝子の状態を決定します(図9).基本的には両親どちらかの状態が遺伝します(確率それぞれ 0.45)が,低い確率で突然変異(確率 0.1)もおこります.


図9.2個体から生じる次世代10匹

 人生を全うした2匹の繁殖個体も安らかにお眠り下さい.


【表示色】

 歴史的しがらみから,PC-9801版,Macintoshアプリ版,Windowsアプリ版と同じ色調にしてあります.8つのパレットしか使用していませんが,ディスプレイを 256 色以上にしてください.各パレットの使用対象と色調はおよそ下図のようになります.色の見え方は機種や設定によって異なります.


図10.8つの色(標準モ−ド)

 2〜5が背景の色,3〜6が蛾の色です.従って,6は蛾に特徴的な色,2は蛾にはない色です.蛾を見つけ出すときの参考になります.


【世代更新の表示】

 ステ−ジが進み,世代が更新される際は,巨大なボタンが出現して視野を妨げるだけです.ボタンをクリックすると消えますので,次世代を続けてください.
 アプリ版では成長過程を表示して時間稼ぎをしていましたが,本アプレット版ではあっさり削除.


【作動環境とソースリスト】

 作動環境が … 実は微妙です.

 SpxJはJAVAアプレットです.たいていのパソコンとブラウザは,普通,これを動かす機能を持っています.21世紀製のものなら動きます.しかし,なるべく使わない設定になっている事が多く,設定を変えてやねばならない場合も少なくありません.

 表示可能な場合でも,システムや設定によってはアプレットがすぐには表示されない仕掛けになっていることが多いです.ブラウザが「動かしても良いですか?」「有用かもしれないけど,世間には凶暴なアプレットも存在します.大丈夫ですか?」と,しつこく確かめてきます.なんと世知辛いWWW界.

 表示できない状態のときは,灰色の四角い領域が表示されたり,その左上に赤×印が表示されたり,小さな湯気茶碗が表示されたり,中央に豆文字で何やら言い訳が表示されたりします.状況は様々ですので,それぞれ対処していただくしかありません.
 また,設定の変更がうまく行った場合,ひさびさに目覚めたアプレット実行機能は,まず色々なモノの最新版をダウンロードしたがるかもしれません.それらを根気よく更新してやる必要があります.

 ソースリストはこれ↓です.

SpxJ.java 12KB

 商用の利用は禁止します.
 改造,移植は自由ですが,その際には由来を明記してください.


【SPX小史】

PC-9801版

 このゲ−ム(?)は,1992年10月展示オ−プン予定(当時)の兵庫県立自然系博物館(仮称)の[種と系統]のコ−ナ−で使用する[種系統ゲ−ム]のたたき台として,1991 年ごろ,NEC PC-9801 用の DOS アプリとして作製したものです(QuickBASIC Ver.4.5).

マッキン版,ウインドウズ版

 1996 年に,基本的なル−ルやアルゴリズムや色彩を 98 版そのままに Macintosh 版[SPXまたはSPX-M]をリメイクしました(FutureBASIC II).
 その Macintosh 版が好評でしたので,1997 年に今度は Windows 版[SPX-w]をつくりました( VisualBASIC 2.0J ).SPX はシンプルでプリティがモット−です.当時 VB 界では 4 から 5 へバ−ジョンアップだと騒いでいましたが,Ver. 2 を使用.博物館のサイトにダウンロード用の頁を作ってソースリストもダウンロードできる状態にしたのであります(↓).20世紀末(2000)には生態学の教科書に取り上げていただいたりもしておりました.


博物館サイトの[SPX ダウンロ−ドサ−ビス]の頁

Macintosh版アプリ & Windows版アプリ
および,それらのソ−スリストがダウンロード可能

アプレット版

 ところが …

 あるとき気づくと,これらのソースリストが自分でも利用できない状況になっているぢゃあ,あ〜りませんか!?

 頁自体は健在で,ファイルは問題なくダウンロードでき,実行できるのですが.ソースリストはプリントアウトするのが関の山.それをいじくれる環境が消滅しています.が〜ん! 旧式PCの動態保存に努めている筆者でもこの状態.

 以前から,というか当初から /*BASICではねぇ*/ というご意見もありましたので,放置10年を経た2007年,JAVAに書き直すことにしました.ソースリストも公開しておきます(↑↑).アプレットですが,やってる事は読めると思います.
 またMacintosh版等に同梱していたこの説明書(html文書)も,少し加筆してWEBに常設しておきます.


携帯電話で動く姉妹規格

携帯電話

 ところで2007年にはauの携帯電話で再び勝手アプリ(JAVA)が動くようになりました.「オープンアプリプレーヤー」というやつです.ワンセグの陰にかくれてあまり宣伝されておらず,ひっそりと装備されています.
 将来的に au/KDDI がオープンアプリをどこまで本気でサポートしてくれるか怪しいのですが,上記の JAVA 化のついで(どっちが「ついで」か?)に,これへの対応も行いました.画面が小さく[SPX]そのままの移植は困難なので,縮小規格(
下表,CRX)とします.これがau用のオープンアプリの[CrxJ]です.[CrxJ]は au の 2007 年春以降の機種(2007 年 3 月末:W51SA, W51S, W51H, W51CA)で動きます.詳しくは au のサイトをご覧ください.

au用オープンアプリ[CrxJ]ダウンロードの頁
QRコード読み取り機能でお入りください

注:パソコンからは実行もダウンロードも不可能

プチコン版

 あと… 2011 年に 3DS が発売になって,いろいろと立体写真を表示させて喜んでいると,”プチコン(PetitComputer)”なる DSi ウェアがあることを知りました.
 3DSなどでダウンロードできる一種のゲームソフト(有料: 800P)なのですが,ゲームというよりは教育的ソフト … でもなく,懐かしソフトです.昔の BASIC インタプリタを DS シリーズ上に再現しており,ターゲットはオッサン連中.アラフォーの MSX 世代のようです.公式サイトには”プチコンでは今どきライン文で直線を引き、囲まれた範囲をペイント文で塗りつぶせます。”などと述べてあります.

 驚くべきは,組んだプログラムを他の機体に移す現実的な手段がない事です.いやいや一応,本体同士の通信機能を使っての送受信はできるのですが … プチコンのオッサンはそんなに高密度に生息していません.
 プチコンのプログラムは一個のゲーム機の内だけに息づくコードでしかなく,テキストとして他のファイルに書いてSDカードに保存するとか,メールで送ったり,どこかに書き込む,ということができません.クラウドのご時世に全くの引き篭りなのです.
 プリントアウトさえ全くできません.
 ですから,ユーザーは画面を写真に撮って,その画像を読みながら手で打ち込むという,まぁ修行みたいな事をしているようなのです,嬉々として.しかもマトモなキーボードはなく,DSの「下画面」に表示されるソフトキーボードをタッチペンでブチョプチョと押して入力.僅かに一行ごとのコピペだけができるだけです.
 そんな環境での”写経”こそがプチコンの本質なのかもしれません.

 で,これ用の SPX を書いてみました.なんと,一晩でほぼ完成.この環境,つまり上下画面の構成に合うようにチョコチョコ手直しするのがまた楽しい.思い付きでどんどん弄れるのがプチコンの良いところです.
 増築改築の繰り返しで 400 行ほどになっているプログラムをここ↓に大公開! 動いている様子を YouTube に上げてあります.リストの画像を貼って,手入力版のリストも貼り付けておきますので修行にお使いください.ぜんぜん洗練されてないのと,後者はきっと間違いがあると思いますのでご了承の程を.

DSプチコン版SPXの頁

 …との奇怪な状況も一年で終結.2012 年には プチコンmkII が登場しました(有料: 800P).もちろん上位互換.
 MkIIになって,プチコン(甲)からプチコン(乙)への伝達は;プチコン(甲)でSDへの書き出し(*.ptc)⇒PC上で(サーバサイドで)QRコードへ変換⇒プチコン(乙)QRコードの読み込み,という経路でつながるようになりました.で,さっそく↑にもQRコードを掲載.
 旧版からコンバートしたままのプログラムを SD に書き出し(*.pct)て変換するとQRコード7枚を要する(これを 7QR と容量表記するらしい)のに,MkIIでロード,セーブしなおしてからやると4枚に!
 なお,矢印は一方通行です.プチコンで *.ptc を読み込んだりはできません.ただこの *.ptc,PC上での編集は不可能なフリをしていますが,中身はほとんどテキストなので *.bas とかに書き換えてテキストエディタでかなり扱えそうです.

スマホ用CANVAS版

 あと,2011年で,世の中スマホだらけになってしまって,ヘンテコな機械がいろいろと登場しました.付いてるボタンが機械ごとに一定しないという…「どれでも動く」は実現しにくいようで,みんな困っています.
 アンドロイド向けの SPX を書こうと思ったのですが,筆者のPCではエミュレータさえまともに動きません.現実的なところで JavaScript の CANVAS でやってみました.ずっと昔に JavaScript を試した時にはボタンとか窓の操作しかできなかったのですが,今では半透明の図が描けるようになっています.それどころか;

var ctx = canvas.getContext("2d");

と,わざわざ”2D”を指定です.
 すぐにでも3Dオブジェクト,半透明の立方体や球ををグリグリできそうな勢いなのです.

 まぁ,SPX は徹底的に2Dなゲーム(?)なのですが.現状の JavaScript には丁度扱いやすいプログラムのようです.スマホの指操作や3DSのタッチペン操作はマウスと同じ扱いなので,書く側としては有難いです.わりと簡単に完成しました(2011年)(SPX20周年!).

 実際にスマホで触ってみたところ,やはり指の操作は難しいです.こんな道具では「点を指す」ができません.いちいち押し拡げて,太い指でねちょっと触って「ここ」て.お箸の国の人ですから,苦痛です.正確な指点はぜったい無理なので当たり判定をゆるめにしてあります.
 3DSの方はタッチペンの操作がずっとマシなのですが,プログラムが要領悪いためかグラフィックの書き換えにやや時間がかかります.
 スマホの場合,ローカルファイルに持っておけばどこでも(たとえば洞窟の中でも)動くのですが,3DSはオンラインでないと動きません.
 まぁ,お試しください.

スマホ用SPX on CANVAS版の頁
QRコード読み取り機能でお入りください

注:パソコンのブラウザでは作動しないことがあります


【虫の名前について】

 最後に,デザイン等についての薀蓄をば.「蛾」の外形はスズメガの類を想定してあります.名称の[SPX]もスズメガ科(Sphingidae)の語源であるスフィンクス(Σφιγξ)に基づいています.[CRX]のほうは外形がヒョウタン形の「甲虫」,クチカクシゾウムシの仲間(クチカクシゾウムシ亜科:Cryptorhynchinae)です.名前は「隠吻」の意の属名クリプトリンクス(Κρυπτορυγχοσ)からです.
 なお[SPX]や[CRX]では読むときとまどうし,ホモニムも多そうなので,和名として「マダラカクモンスズメ」と「マメヒサゴクチカクシゾウムシ」とつけておく事にします(急遽決定,2007/03/31).

規格名 ステージサイズ
幅×高
生息昆虫
和名
個体サイズ
縦×横
SPX 80×60 マダラ
カクモンスズメ
6×6
CRX 44×40 マメヒサゴ
クチカクシゾウムシ
4×4

 なお冒頭の「兵庫県立自然系博物館(仮称)」は,1992年に[兵庫県立人と自然の博物館]という名前で開館.[種系統ゲ−ム]は[ス−パ−モスバ−ド]として公開してあります.
 が,なにしろマシンが X68k.機材の更新ができない状態です.2007年3月末の時点では3機中1機が辛うじて稼動中でしたが.2011年には完全消滅しています.



【製作者】

沢田佳久