2015年5月26日火曜日

IchigoJamの変態BASIC


速度はかなり遅いIchigoJamです。8080の1Mhzより遅いような感じですからね。
ループカウンタを1000くらい回すと10秒近くかかります!?

そして、幾つか変態とも呼べる機能があるのです。
そのひとつが、GOTO文の飛び先に式を入れることができるという機能です。

つまり、
GOTO 100
ではなく
A=100
GOTO A
って感じで動いてしまうのです!??

これを利用して、ハノイの塔をちょろっと書き換えます。
(リストは最後につけます)

なんとなんと、4つあったIF文がたった1つになっちゃいました!!!
この一個も頑張れば減らせそうなんですが、論理演算使ってやるのもどうかな?と思うので、やっていません。

 それにしても、手続きを記述するだけとは言え、IF文一個でハノイの塔って動いちゃうんですねぇ。あひゃひゃ。
 種明かしは、スタックフレームに、次に実行すべき行数を入れて、そこに飛んでいくっていうだけなんです。まぁ、なんかアセンブラで、飛び先を直接書き換えてジャンプするみたいな、本当に低級言語な機能だと思います(褒めてます)。

そして、似たような変態機能がまだあるので、それを使うと、もしかしたら、オセロくらいは作れるかもしれません。こっちの紹介も後日やってみようと思います。

 そうそう、IF文も減ったので、実行速度は通常版より3割か4割くらい早くなりました。でもね、お仕事でこういうプログラム書いちゃダメですよ!!!(笑)
 つーか、書いた本人以外には、理解できないこと間違いなしです!!
解析できた方は、是非とも連絡くださいませ。

10    PRINT"TOWER OF HANOI"
20    A=1:C=0
30    [4]=1000
40    INPUT"LEVEL:",B
50    [5]=B
60    [6]=0
70    [7]=2
80    [8]=1
100  IF[A*5]>1 GOTO 200
140  PRINT [A*5],":",[A*5+1],"->",[A*5+2]
150  C=C+1
160 A=A-1
170 GOTO [A*5+4]
200 [A*5+4]=300
210 A=A+1
220 [A*5]=[(A-1)*5]-1
230 [A*5+1]=[(A-1)*5+1]
240 [A*5+2]=[(A-1)*5+3]
250 [A*5+3]=[(A-1)*5+2]
260 GOTO 100
300 PRINT [A*5],":",[A*5+1],"->",[A*5+2]
310 C=C+1
320 [A*5+4]=160
330 A=A+1
340 [A*5]=[(A-1)*5]-1
350 [A*5+1]=[(A-1)*5+3]
360 [A*5+2]=[(A-1)*5+2]
370 [A*5+3]=[(A-1)*5+1]
380 GOTO 100
1000 PRINT"TOTAL:",C
1010 END

IchigoJamでプログラム書いてみた

教育用ワンボード?コンピュター、IchigoJamです。

使える言語はBASICのサブセット。変数はA-Zの26個の整数型と[0]-[99]の100個の整数型1次元配列。
 メモリは公称4kByteですが、メインが1K,そしてセーブエリアが1KX3つです。

BASIC自体が高校の頃以来なので、とても懐かしい!

そして、なぜか「ハノイの塔」を解くプログラムを書いてみた。
ハノイの塔は、Cとか再帰的呼び出しができる言語の特徴を説明するのに使われるわけなのですが、再帰っておいしいの??って感じのBASICで書いてみます。

 とはいいつつつも、再帰以外の解法を考えるのが面倒なので、古の、再帰呼び出しを自分でコントロールするBASICプログラムです。

塔には0,1,2とIDを振って、そこに置かれる円盤は、数字のIDが付いているものとして、円盤を動かす操作をプリントすることで解法を出力することにします。たとえば、円盤1を0から2へ動かすのは

1:0->2

とします。
 できたプログラムを動かすとこんな感じです。

 


再帰的呼び出しをコントロールするのには、1次元配列をつかって、ローカルスタックフレームを作ります。
 ナイーブに作ったリストはこんな感じ。

10    PRINT"TOWER OF HANOI"
20    A=1
30    C=0
40    INPUT"LEVEL:",B
50    [5]=B
60    [6]=0
70    [7]=2
80    [8]=1
90    [9]=0
100  IF A<1 1000="" goto="" p="">
110  IF[A*5+4]=2 GOTO 500
120  IF[A*5+4]=1 GOTO 300
130  IF[A*5]>1 GOTO 200
140  PRINT [A*5],":",[A*5+1],"->",[A*5+2]
150  C=C+1
160  A=A-1
170 GOTO 100
200 [A*5+4]=1
210 A=A+1
220 [A*5]=[(A-1)*5]-1
230 [A*5+1]=[(A-1)*5+1]
240 [A*5+2]=[(A-1)*5+3]
250 [A*5+3]=[(A-1)*5+2]
260 [A*5+4]=0
270 GOTO 100
300 PRINT [A*5],":",[A*5+1],"->",[A*5+2]
310 C=C+1
320 [A*5+4]=2
330 A=A+1
340 [A*5]=[(A-1)*5]-1
350 [A*5+1]=[(A-1)*5+3]
360 [A*5+2]=[(A-1)*5+2]
370 [A*5+3]=[(A-1)*5+1]
380 [A*5+4]=0
390 GOTO 100
500 A=A-1
510 GOTO 100
1000 PRINT"TOTAL:",C

1010 END

2015年5月6日水曜日

ゲームマーケット2015

こどもの日にあったゲームマーケットです。
会場はビッグサイトの西2会場。L字型になっていてとにかく広い。前回より通路スペースやテーブルの間がゆったりしています。準備中なのでガラガラの状態がこれです。

ブースはこんな感じです。

開始30分で会場は凄い人。かなり広いはずなのに。。。あっとう間にこんな感じ。
プレイエリアも常に回転中で、こんな感じ。
ほとんど休みなしで、他のブースはちょっとみただけで終了しちゃいました。
毎回、人数は増えているみたいです。次もこないとね。


2014年9月7日日曜日

Miix2 8インチが残念な件

最近は週代わりくらいで、持って行くガジェットを変えています。
テザリング用のNexus5は必須として、
8インチタブレット:
 iPad mini / Miix2 8
Windowsマシンとして
   (上記)Miix2 8 / Surface Pro3

できれば、この3つから一つだけにしたい訳ですが...

12インチタブレット/モバイルPCは電車の中で開けないので、単体ではムリ。となると、コンテンツ消費マシーンとして最強なiPad miniにSurface3となるわけですが、できれば、Miix2 8でなんとかならないのか??

 昨日もMiix2持って行ったけど、そもそも、コンテンツ消費マシンとしては、UIが悪い。動画なんか、途中から再開とかできなかったりするし。
 ま、そこは我慢??するにしても、最悪なのは。。。

・タッチパッドが反応しなくなる

ってこと。(-.-)凸

こうなっちゃうと、USBでマウス無理矢理つなげて再起動かけないとどうしようもない。強制シャットダウンも最後は「画面スワイプ」なんだもん。無理だから。
(ちなみに、ドライバがおかしくなるっぽい。バカじゃないの?)

 これはもう、電車の中でなると(昨日はなりましたけどね)どうしようもない。
まさか、いつでもUSBホストケーブルとマウスもって歩くの??って感じ。

 8インチのWindowsタブを買い替えるのが正解かなぁ。Miix2は、この不具合(致命的!)さえなければ良いものなのだけど。つかいきれませんね。


2014年7月11日金曜日

ガジェット・ガジェット

ここ2年くらい、いろんなガジェットをとっかえひっかえ。自分でもあほじゃないかと思いますわ。
もち歩きたいもの(機能):
 音声通話、インターネット接続とそれを実現するもの。

 音声部分はiPhoneで、インターネット接続はイーモバイルのモバイルルータだったのですが、どうしても、モバイルルータって面倒くさいのよね。
  そして、2013年秋には、OCNのMVNOをNexus7に刺して運用開始したのですが、どうしても気に入らない部分があって、Nexus5になってしまいました。Nexus5は画面さえ消しておけば電池の持ちもよいのですが、いまでも、MVNOシムには未練あり。

持って歩くのは3つまで。
・音声通話可能な端末
・PDF閲覧に便利なタブレット
・作業用PC

で、移動式PCには長らくmac book airを使っていて、2012年にはiPad miniを追加な感じで運用。nexus7(2012)もよかったけど、ちょっと画面サイズに難あり。

 2013にはNexus7(2013)にmvnoにして、そのあとがいろいろとひどい。

・10インチのノート/タブレットPC:ASUSだったかな?悪くないんだけど、いろいろと不便。重いし。
・Surface2 : これは今でも使っている。Win8って作業用にはけっこいけてると思うのです。
  ただし、純正(インテル)じゃないので、いわゆるWindowsのソフトが使えないと。
  軽さと画面解像度、そして価格とのバランスは素晴らしいのですがね。
 ほぼ必須なArmyBuilderとかつかえないのよね。
・Surface PRO:純正インテル。でも重い。普通に使う分にはSurface2で十分だよね。
・Miix2 8 : やっぱりインテルマシンがほしいのよ。悪くない。でも、解像度の問題でドキュメントビュワーとしては許容限度ぎりぎり。
・iPad mini retina:読みたいコミックのOS対応問題で、Android/iOSで大き目のタブレットがほしくなる。iPad Airはさすがにでかすぎ。電車の中で使えないよ。Nexusもちょっとアレだし。

なので、
モバイル:Nexus5
タブレット:iPad mini Retine / Miix2 8
作業用:Surface2 / Miix2 8
な感じで運用中。どうしても作業PCのところが難しいですわ。Surface PROシリーズはちょっと重いのだよ。かといってMiix2では限界があるのよね。SUrface3も面白そうだけど、様子見。

surfacepro 3はちょっと気になるけど、12インチはでかすぎる気がします。600gくらいのSurfacePROでないかなぁ。

2012年4月25日水曜日

さてさて

某方面のBlogは垢がついちゃったから、こっちを再開しようかなぁ。
IGの塗装、アバターの塗装、そして旗持ちの塗装を今週中になんとかしたいぞっと。


2009年6月29日月曜日

バッティングセンター

来週の日曜、地元でソフトボール大会がある。
練習なんかあるわけないので、たいていの場合力んで凡打…
 ちゅーことで、今週はバッティングセンターに行ってみることにした。

今日は2ゲーム(40球くらいか??)、100km/hの球速だそうで。

 1ゲーム目は、バットにあたるものの、あまり前に飛ばない。うまくミートできていない、そして若干振り遅れ。
 2ゲーム目はだいぶ慣れてきて、前に飛ぶ(笑)。ま、そんなもんでしょう。

2ゲーム終了後の状態
 右手首がちょっと重い。テニスでおかしくした手首は全然回復してないようです。
 腰はOK.
 空振りは2回くらい。一応あたってはいるのね。

今週はあと2回くらい通うつもり。

おまけ:幸福実現党
 最近、そこらじゅうで宣伝している謎の政党。検索してみたら、大川りゅうほうとかでてきたぞと。
だいたい、減税したぶんはどこかで補填する必要がある。減税にみあう対策を具体的に出すか?、国債を発行して、さらに借金まみれになるのか?あるいは政府機能を思いっきり縮小するのか?

 大体において、相続税を云々ってさ、おまえら親が金持ちってことだよなぁ。偽善者面してるが、結局は、弱者のことはなんも考えてないって、告白してるのといっしょだろ。

 馬鹿みたいだ。

追記:幸福実現党
 2030年に3億人国家!?
  → 気が狂ってるとしか思えない。食料はどうしますか?自給できるの?今の何倍生産すればいいの????????????
   大体が、こういう考えが良くわからない。

    →追記2 もしかして帝国主義か?朝鮮半島と中国の一部を占領すれば3億人になるのか????食糧問題もこっちなら解決か???????

       (おいらは、帝国主義者ではないですよ、念のため)

、憲法9条改正による「毅然とした国家」

二、大統領制による「機動的で責任ある政治」

三、宗教をバックボーンとした「真なる教育改革」

四、経営の思想を取り入れた「根本的な行政改革」

五、民間の助け合いを促す「未来の社会保障」

六、自由競争の促進による「企業家の輩出」

七.都市の潜在能力活用による「未来型都市の建設」

八、世界の経済・金融・文化の中枢となる「世界に開かれた日本」

九、人口百億人時代を見据えた「国家プロジェクト」

十、宗教的寛容の精神に基づく「世界平和の実現」