レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
おちゃめくらぶ掲示板
-
これが本当の今年最後のプチコンプログラム(?)
12月22日にこれで年内に作るプチコンプログラムは終了と書いたばかりなのにまたもう1つ
作ってしまったにょ(1行プログラムだけど)
1行プログラム「VS」
X=128ACLS:FOR I=-60TO 1GCLS:X=X+!((20AND BUTTON())%5)*6-3GLINE-1,9,X,9,2WAIT-I:I=-GSPOIT(X,9)NEXT
http://ww5.tiki.ne.jp/~ochame/petitcom/1line.htm#09
(※リンク先のプログラムは初出分から改良を加えているため上記のリストとは異なっている)
これはポケコンではおなじみの対戦型ゲームにょ。
元祖となっているのはPB-100用なのだけどこれは同時キー入力ができないことを上手く
活用した内容になっているにょ。(複数のボタンを押した場合には押していないのと同じ
ように認識される)
しかし、その判定を悪用も可能になっているので同時に複数のボタンを入力判定が可能な
プチコンではその悪用ができないようにするにょ。
大したことはやってないのだけど一応解説を書いておくにょ。
このゲームで必要な処理はボタン判定とゲーム終了処理にょ。
まずは、ボタン入力判定を書くとこのゲームで使われているのは[←]ボタンと[A]ボタンのみ
となっているため20AND BUTTON()でそれ以外のボタンを押している場合の排除が可能にょ。
この値が「0もしくは20」、「4もしくは16」という2つのIF文によって判定を行うのが最も
簡単だけどそんなことをしなくても5で割り切れるか否かで判断が可能にょ。(10で割っても
20で割ってもいいけど5ならば1文字で済む)
ちなみに上記リンク先の新バージョンでは(20AND BUTTON())%12%8となっているけどこれは
「0もしくは20」、「4もしくは16」を%12で「0もしくは8」、「4」にして、次の%8で「0」と
「4」にしているにょ。
相対的な移動量を4(マイナス方向2、プラス方向2)に設定すれば別途移動量を掛け合わせる
ことも不要になるためさらに2文字分短縮できるにょ。(これによってゲーム終了時にBEEPを
入れることも可能になった)
ゲームの終了はメーターが一杯になったかどうかはX>=255かどうかで判断できるし、
メーターが無くなったかはX<=0かどうかで判断できるけど勝敗は見た目で分かるため
X<=0もしくはX>=255の場合を考えればいいにょ。
ここでX=0やX=255になることがないならばXの値が画面外を指しているかどうかだけで
問題ないためGSPOIT(X,9)の値が-1かどうかで判断できるにょ。
この時点のプログラムはこれにょ。
X=128ACLS:FOR I=0TO 1GCLS:X=X+!((20AND BUTTON())%5)*6-3GLINE-1,9,X,9,2I=-GSPOIT(X,9)WAIT 1NEXT
GLINEのY座標が0ではなく9なのは先日作った「タイピング」と同じように「OK」の文字と
重ならないようにするためのものにょ。
これで一応は問題ないのだけどやっぱりこのゲームの場合はRUNをしてすぐに始まった場合には
1Pの方が圧倒的に有利になるにょ。
そのためゲームをRUNをしたら1秒(60フレーム)くらいは待ってゲームを開始したいところ
だけどあと残り使用可能文字数は5文字しかないにょ。
残り5文字だと先頭にWAIT 60を入れることもできないにょ。
実際は先頭ではなく最初の表示をした後にウエイトが欲しいにょ。
WAIT 1の部分を最初だけWAIT 60にしたいのだけど最初かどうかはループのカウンタの数字を
-1より小さくすることで判定が可能にょ。(このゲームでは実行中はIの値は-1となる)
つまり、FOR I=-2TO 1 としておけば WAIT 1+(I<-1)*59 でスタート時のみ60フレームの
ウエイトになるにょ。
しかし、これでは1行に収まらないにょ。(最初のACLSを省いても1文字入らない)
したがって、唯一短縮できる可能性があるのはこのWAIT処理なのでそこを簡略化するしか
ないにょ。
それでできたのが冒頭のプログラムにょ。
実はこのプログラムは3Dゲームではなく1Dゲームを希望しているツイートがあっため即興で
考えたものにょ。
1D(1次元)となると使えるのは1本の線分だけしかないためそれで成立するようなゲーム
ということで思いついたのがおなじみの対戦ゲーム「VS」だったにょ。
これは本来は1P用のゲージ、2P用のゲージがありそれで勝敗を競っていたのだけど2Pの
ゲージを背景と同じ色にすれば1本の線だけでゲームができるため1行に収めることが可能に
なったにょ。
というわけで、今年発表したプチコンプログラムはこれで51作品(サンプルを除き41作品)
となったにょ。
|
|
|
掲示板管理者へ連絡
無料レンタル掲示板