2013年7月23日火曜日
サンプル:人間対戦チェスプログラム
人間対戦のチェスプログラムです。
間違ってもコンピューターとの対戦など出来ません。
見た目も非常にシンプルです。
結局、中途半端なプログラムに終わっています。
適当に改良してください(^_^;)。
iPadの縦横画面および日英に対応しています。
Zipファイル :XBches.zip
これは珍しく完全自作なので、転載ほか、いかように使っていただいても結構です。
駒のパターンは、実はUnicodeにある文字フォントです。
Unicodeではこんなものまであるのです。
(チェスがあるのですから、トランプなんて当然あります。)
2013年7月18日木曜日
「グラフィックが表示できん」とお嘆きの貴兄に
外人で、「グラフィックが表示されんから金返せ」などと言う奴が居たのですよ。
取説にはグラフィックの表示手順についてちゃんとく書いたし、サンプルも多数出している。
その上ここでも何も聞かずにこんな馬鹿なこという奴は、きっと何を触っても何も出来ないのだろうと、あきれかえってしまうわけです。
ってなわけで、そんな奴は無視して、日本語だけで、グラフィック表示の仕方を簡単に説明します。
・・・まずは、取説からの抜粋・・・
描画しているのは、4ページあるグラフィック画面の内、GPAGE0のページです。
・・・
グラフィックを描画するプログラムを書く場合、グラフィックを1画面しか使わないのであれば、変更すべきはgColor()とline()の部分だけであって、他は定型として使い回せば良いのです。
何も難しいことはありません。
ある程度の手順を覚えなければならないことは、どの言語を使っても同じです。
いや、言語じゃなくてもアプリでも、それどころか世の中にある物全て、全く何も覚えずに使える物なんてないのです。
くれぐれも、何も努力をしないで「出来ないのは相手が悪い」などという愚かな発想に至らないように。
取説にはグラフィックの表示手順についてちゃんとく書いたし、サンプルも多数出している。
その上ここでも何も聞かずにこんな馬鹿なこという奴は、きっと何を触っても何も出来ないのだろうと、あきれかえってしまうわけです。
ってなわけで、そんな奴は無視して、日本語だけで、グラフィック表示の仕方を簡単に説明します。
・・・まずは、取説からの抜粋・・・
グラフィック画面は4画面あります。それをページと呼びます。 どのページに描画するかはapage()、どのページを表示するかはvpage()、 テキスト画面、グラフィック画面およびスプライト&BG画面の表示順位はvpriority()で
設定します。 従って、グラフィックの描画プログラムは基本的に、vpage() 表示ページ指定 vpriority() 表示優先順位指定 apage() 描画対象ページ指定 wipe() クリア gColor() 描画色指定 描画命令群という順で記述することになります。
・・・ ということです。この手順を守れば、確実にグラフィックは表示できます。 これはX-BASIC/68でもほとんど同じです(優先順位指定と色指定が違うけど)。
・・・例・・・これで、(0,0)~(100,100)の間に白の直線を引きます。vpage(B_TPAGE+B_GPAGE0,YES) vpriority(GPAGE0,TPAGE,GPAGE1,GPAGE2,GPAGE3) apage(GPAGE0) wipe() // gColor(255,255,255,255) line(0,0,100,100) // end
描画しているのは、4ページあるグラフィック画面の内、GPAGE0のページです。
・・・
グラフィックを描画するプログラムを書く場合、グラフィックを1画面しか使わないのであれば、変更すべきはgColor()とline()の部分だけであって、他は定型として使い回せば良いのです。
何も難しいことはありません。
ある程度の手順を覚えなければならないことは、どの言語を使っても同じです。
いや、言語じゃなくてもアプリでも、それどころか世の中にある物全て、全く何も覚えずに使える物なんてないのです。
くれぐれも、何も努力をしないで「出来ないのは相手が悪い」などという愚かな発想に至らないように。
2013年7月13日土曜日
サンプル:ルナ・レスキュー
MZ-80Kの傑作ゲーム、「ルナ・レスキュー」を移植しました。
しかも、ベタ移植です(本当は少しだけアレンジしてあるんだけど)。
昔はこんなゲームを楽しんでいたんだということを、
ある人はなつかしく、ある人とは新鮮な気持ちで知ってください。
基本的には「I/O別冊 MZ活用研究」よりの移植です。
もとネタがあるので、転載禁止です。
iPad縦画面のみ対応、日英対応です。
Zipファイル :XBlunar.zip
しかも、ベタ移植です(本当は少しだけアレンジしてあるんだけど)。
昔はこんなゲームを楽しんでいたんだということを、
ある人はなつかしく、ある人とは新鮮な気持ちで知ってください。
基本的には「I/O別冊 MZ活用研究」よりの移植です。
もとネタがあるので、転載禁止です。
iPad縦画面のみ対応、日英対応です。
Zipファイル :XBlunar.zip
2013年7月5日金曜日
2013年7月2日火曜日
V2.2のバグとその回避法
X-BASIC for iOS v2.2に以下のバグが発見されました。
1. print/printsで先頭文字が全角の時、それ以下に半角文字があっても全て全角幅で表示されてしまう
これはV2.2でのみ発生します。
当面の回避法は、print/prints()の表示文字列中、全角と半角を分離してください。
print "ABCあいう"
↓
print "ABC";"あいう"
2. 単項演算子と2項演算子を含む式で「システムエラー」もしくは「式の型が異なる」が発生する
「例1」
if a>=-128 and a<=-1 then {
}
「例2」
a=(a>=-1 or a<=128)
回避するには、負数を()でくくります。
「例1」
if a>=(-128) and a<=(-1) then {
}
「例2」
a=(a>=(-1) or a<=128)
もしくはifを個別に分割します。
if a>=-128 then {
if a<=-1 then {
}
}
・・・ではありますが、いずれもV2.3で修正済みですので、バージョンアップするのが一番手っ取り早いです(^_^)。
この他の、V2.2までに発生していてるバグは以下の通りです。
実行時エラーは小規模プログラムでは直りましたが、大規模プログラムでは 大幅にずれる問題が解決できていません。
1. print/printsで先頭文字が全角の時、それ以下に半角文字があっても全て全角幅で表示されてしまう
これはV2.2でのみ発生します。
当面の回避法は、print/prints()の表示文字列中、全角と半角を分離してください。
print "ABCあいう"
↓
print "ABC";"あいう"
2. 単項演算子と2項演算子を含む式で「システムエラー」もしくは「式の型が異なる」が発生する
「例1」
if a>=-128 and a<=-1 then {
}
「例2」
a=(a>=-1 or a<=128)
回避するには、負数を()でくくります。
「例1」
if a>=(-128) and a<=(-1) then {
}
「例2」
a=(a>=(-1) or a<=128)
もしくはifを個別に分割します。
if a>=-128 then {
if a<=-1 then {
}
}
・・・ではありますが、いずれもV2.3で修正済みですので、バージョンアップするのが一番手っ取り早いです(^_^)。
この他の、V2.2までに発生していてるバグは以下の通りです。
- dim floatに{}で初期値を指定するとエラーになる
- 配列を引数に持つ関数の中で、子関数にその配列を渡すときエラーが発生する
- 配列の2次元目以降の要素番号チェックが正しくない
- 外部関数内で発生したエラーのメッセージが表示されない
- 配列要素番号が(通しで)32767を超えると動作が異常になるかエラーが発生する
- グローバルもしくはローカルの変数領域が64KB以上必要なとき、うまく確保できない
- emailSend()で添付ファイルをzipで圧縮するとき、正しいzipファイルが生成されない
- randomize()がrandomise()になってる(綴りミス)
- 実行時エラーの指す行がずれている
実行時エラーは小規模プログラムでは直りましたが、大規模プログラムでは 大幅にずれる問題が解決できていません。
登録:
投稿 (Atom)