[FM]FULLMSX for BLOG

詳しいMSXパソコンなどの情報はホームページで!
https://fullmsx.web.fc2.com/

確率変動させる 1/2000の確率を変えレア度を上げる

2022-05-30 17:53:44 | 1chipMSX

お久しぶりです。MSXBASICで確率変動をさせてみたいと思います。
ちょっと宝箱の当たりの確率について考えてみました。

このプログラムではこんなふうな結果になりました。
2000回で1900回目とかハマっていることもありますが、
1300回ぐらいまで回せば1回は宝箱が当たりそうな感じになります。
よくハマると言いますが確率が厳しいのかもしれませんね。

当たりかたを厳しくやってみたいと思います。
5000回の確率で2000回以上は最後になるように設定します。

こんなふうに最後に当たる確率が増えます。
逆に2000以下はレアモンスター出現みたいな設定もいいですね。
Cの値を大きくすればレアの出現率が下がり激レアにできます。
自由に変えることができるので試してみてください。

 

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MSXロゴ図形制作プログラム CADの基本機能をプラスしたい

2022-05-10 21:32:44 | 1chipMSX

 移行記念パッケージ(仮)にロゴ制作プログラムを作りました。
使用できるのは直線、三角形、四角形、円で点データと図形データを記録できます。うまく使えば面取り(C、R)もできます。
データ化したので画面に何か書いて消したり自由に使えるようになりそうです。
またグリッドも白から紺色に変えました。
さらに制作中のものは丸文字が描けるように円弧(R)を描けるようにしています。今回のプラスしたかった機能はこんな感じです。

例えば開始点169度の点から円を4等分した点を表示できます。
赤い点が減色されて黒くなってしまいましたが、
頂点をクリックすることで図形を描くことができそうです。
ラジアンの割合を変えることで6等分にして6角形など
多角形を描くことができそうですね。

今度は円弧補間で0.1ピッチのラジアンで50点を表示しました。

実はCIRCLE命令で点表示していて座標指定以外の方法です。
当時のMSXBASICはゲームだけではなく、調べてみるとかなり多用途に応用できたように思います。
ただインタープリタだったから遅かったです。そういうわけでMSXturboR相当にスピードアップ。

こんなふうに任意の角度からRを弧を設定できそうな雰囲気になってきました。

また弦を指定して二等辺三角形など多角形を作ることもできます。

ラジアンからSINとCOSに距離をかけるとZX,ZYの増分値が出て座標が出ます。
せっかくなので、判別のしかたも書いておきます。一番ラクな方法はMSXBASICのバージョン取得です。

?  PEEK(&H2D)をすることでマシンタイプを調べることができます。
PEEKはメモリの内容を表示する命令です。これを利用してマシンごとに判別します。

「EEEE」とならないように待ち時間を調整します。

さて、今回はカーブ機能も追加されました。
ctrlキーを押しながらカーソルを動かすと高速移動できます。

任意の直線の垂線を引き半径を計算して例えば240度を指定するとこんなふうに描くことができるようになりました。
円弧は反時計回りのほか時計回りにも対応しています。

時計回りは-90と入力します。図形データは圧縮のためX,Yは7から255までで0~6まではラジアン数値に使っています。
この領域の座標データがあった場合は弾かれます。

使ってみると斜線は基準線がないのでメッシュを45度にした定規が欲しい感じもします。

実はMSXのロゴはMSX2からで当時は幾何学的な映像のコンピュータグラフィックスが流行していました。
MSX1からMSX2に変わる頃は線画CGで音が流れるプログラムとかあったので、
もしかするとMSXの斜め移動できるのはその名残かもしれません。

当時は週刊少年マガジンの別冊のハレー彗星マガジン(講談社)の本の
表紙がハレー彗星のコアの部分のCGとか本の裏表紙がCASIOのMSXだったりしましたね。

結局、DEFINTの高速案はやめてマシン速度調整で対応にしました。
というわけでは5月中(5/22)のアップデートで第一期は終わりにします。では。

 

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MSXBASICで計算問題を作る 回答時間を測る

2022-05-04 09:43:34 | 1chipMSX

 おはようございます。
今回は計算問題を作って、さらに回答時間を計算するプログラムを入れました。

かなりシンプルなプログラムです。

15行はランダムの宣言で他のBASICではRONDOMIZEという命令になると思います。
たしかシステムタイマーを呼び出してBASICでは数値を加算しているのですが、
RND変数を使用する場合は加算しないでそのままの数値を使います。
この宣言がない場合は規則的なランダム数値?になるようです。
MSXBASICの場合はRND(-TIME)になります。

RAとRBは倍率です。どこまでの範囲にするか最大値を決めます。
RNDはラジアンみたいに0から1の数値でこれに倍率をかけています。
最小値は+1でRNDで0の場合は1になります。最後に3.1245の場合はINTで3にします。

これをAとBの値に入れAとBの足し算表示です。
TIME=0でタイマーをゼロにセットINPUTで入力した後、回答を表示しタイマーを表示します。
TIME変数はMSXBASICの場合は1/60秒になっています。0を入力すれば終了です。

15行を削除して同じ問題にしたり50行と80行の+を-や*に変えてみたり
TIMEをTIME/60にして秒表示にすることができます。
TIME変数は0~65535、最大で約18分までです。


コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする