【プチコン/mkII 両対応】
プチコンはフリーメモリが1MBあり一般的な使い方でプログラムリストを短縮する必要性を感じることはほとんどないかもしれません。それでも、行数や文字数に制限のある1行プログラムや1画面プログラムなどを作ろうとしている人には意味があるし、コード短縮の方法にはどのようなものがあるのかという興味を持っている人はいるでしょう。IF A*!B THEN 〜 | → | IF!B*A THEN 〜 | (スペースを省略OK) |
IF A$==""THEN 〜 | → | IF""==A$THEN 〜 | (スペースを省略OK) |
()[] で囲まれた部分 | |
マイナス NOT ! | |
関数 | |
* / %(乗除余) | |
+ − (加減) | |
== != < <= > >= (比較) | |
AND OR XOR |
A=(B>2) | → | A=B>2 | ・・・ これはOK |
A=4*(B>2) | → | A=4*B>2 | ・・・ これは不可 |
X=X+SGN((8AND B)-(4AND B)) | (SGNを使用) |
X=X-(4AND B)/4+(8AND B)/8 | (ビット演算ANDで得られた値をそのまま使用) |
X=X+!(4AND B)-!(8AND B) | (論理否定を使用) |
X=X-(B%16-B%4+1)%3+1 | (剰余を使用) |
縦反転 | 横反転 | |||||||||||||||
通常の書き方 | BGPUT 0,X,Y,C,P,H,V |
スクリーンデータを使用 | BGPUT 0,X,Y,C+H*1024+V*2048+P*4096 |
IF B==1 THEN Z=1 IF B==9 THEN Z=2 IF B==8 THEN Z=3 IF B==10 THEN Z=4 IF B==2 THEN Z=5 IF B==6 THEN Z=6 IF B==4 THEN Z=7 IF B==5 THEN Z=8 |
ビット演算子 OR を使う | → | 0 OR A (0とORの間のスペースは省略可能) |
剰余(%)を使う | → | A-A%1 |
乗除算を使う | → | A/Z*Z (あらかじめZ=4096としておく) |
FOR I=0TO 1 (処理内容) I=X<255 NEXT |
FOR I=1TO X<255 (処理内容) I=0 NEXT |
FOR I=1TO X<255 (処理内容) NEXT |
FOR X=0TO 255 (メインルーチン) NEXT |
IF A>0 AND B>0 THEN 〜 | → | IF A*B THEN 〜 | |
IF A>0 AND B==3 THEN 〜 | → | IF A*(B==3)THEN 〜 | |
IF A!=1 THEN 〜 | → | IF A-1THEN 〜 |
IF A==0 THEN 〜 | → | IF!A THEN 〜 | (「IF」と「!」の間のスペースは省略できる) |
IF A==0 XOR B==0 THEN 〜 | → | IF!A-!B THEN 〜 | |
IF A==2 THEN 〜 | → | IF!(A-2)THEN 〜 | (ただし、1文字長くなる) |
FOR X=0TO 30 LOCATE X,0:PRINT "□" LOCATE X+1,0:PRINT "@" VSYNC 3 NEXT |
FOR X=0TO 30 LOCATE X,0:PRINT "□@" VSYNC 3 NEXT |
IF A<0 THEN A=A+360 IF A>360 THEN A=A-360 X=SIN(RAD(A)) |
IF A==B THEN PRINT "DRAW" IF A>B THEN PRINT "LOSE" IF A<B THEN PRINT "WIN!" |