fx-5800P【ゲーム】もぐら叩き(6)

fx-5800Pでもぐら叩き
e-Gadget


fx-5800P【ゲーム】もぐら叩き(5) の続き


前回紹介した機能追加は、我が家のゲーマー達には最初は面白いが、しばらくすると慣れてしまって面白くないと言う。

前回は、下記の機能を追加している:

1) 間違ったモグラを叩いた時にペナルティーとしてLIFEを減らす
2) たまには、偽物のモグラが顔を出し、それを叩くとペナルティーとしてLIFEを減らす



そこで、さらに緊張感を追加するために、

3) 偽物のモグラだけでなく、同時に本物のモグラを出し、本物以外を叩くとペナルティーとしてLIFEを減らす

ように追加した。


余計な機能を追加しても、スピードを極力落とさないようにしたいところだ。
本物モグラの座標は、乱数で X と Y を求めて、座標(3X-1、Y)に出現させている。にそこで、偽物モグラが出る座標は、X と Y を入れ替えて、座標(3Y-1、X)に出現させることにする。これにより、偽物モグラのための乱数取得を行わずに済む。



あとは、モグラ出現の処理と、判定処理のスピード低下を極力減らすようにすれば良い。



モグラ出現の処理

今回の機能追加で、モグラの出現モードが3つになった。出現モードは変数 Q で管理している。これまでは、Q は 0 か 1 だったが、今回からは 0、1、2 の3通りになる。

・Q=0: 本物モグラが1匹だけ出現する
・Q=1: 本物モグラと偽物モグラが1匹づつ同時に出現する
・Q=2: 偽物モグラが1匹だけ出現する


なお、Q=1のモードの時は、意地悪く偽物モグラを一瞬先に出すことにする。
ところで、今回追加した出現モードを、Q=1 としたのは、モグラ判定処理のスピード低下防止に関連する。本物モグラが出現するモードを Q=0Q=1 にすると、判定の計算処理を、If Q≦ 1: Then で一括処理できるからだ。




モグラ判定の処理

モグラ出現モードを上記のように設定すると、変更は1カ所で済み、それによるスピード低下は If Q=0 から If Q≦1 への変更に伴う変化のみに依存する。



今回追加・変更した部分を、赤文字で以下に示す。


fx-5800P用プログラム
もぐら叩きゲーム 改造版
==================
10→DimZ              :変数の初期化
35→Z[1]:36→Z[2]
37→Z[3]:21→Z[4]
22→Z[5]:23→Z[6]
31→Z[7]:32→Z[8]
33→Z[9]
17→D:25→E
0→P:0→Q

For 1→B To 3           :初期画面表示
Locate 1,B,"[ ][ ][ ]"
Next
Locate 11,2,"PRIZE"
Locate 12,3,P
Locate 1,4,"LIFE:"
Locate 6,4,L

Lbl 0                  :ゲームメインループ(始まり)

RanInt#(1,9)→T         :モグラ出現のタイミングと座標
RanInt#(1,3)→X
RanInt#(1,3)→Y
RanInt#(0,9)→Z
9+X-3Y→N
If P≧200:Then
Z=2⇒2→Q
Z=1⇒
1→Q
Else 0→Q:IfEnd

Lbl 1                  :モグラ出現のカウントタイマー
Dsz T
Goto 1

0→C                  :モグラを出現させ、叩くまでの処理
If Q=2:Then
Locate 3X-1,Y,"X"
Else
Q=1⇒Locate 3Y-1,X,"X"
Locate 3X-1,Y,"O"
IdEnd
Do
Isz C
If C>E:Then
Break:IfEnd
Getkey→K
LpWhile K=0
Q=1⇒Locate 3Y-1,X," "
Locate 3X-1,Y," "
If Q≦1:Then            :モグラを叩いた後の判定
If C≦D And K=Z[N]
Then P+20-C→P
Else L-1→L
If C>D:Then
P-25→P:IfEnd
IfEnd
Else
If C≦D:Then
L-1→L:IfEnd
IfEnd

Locate 12,3,"      "       :リアルタイム表示
Locate 12,3,P
Locate 6,4,L

L⇒Goto 0              :ゲームメインループ(終わり)

0→DimZ               :ゲーム終了時の処理
For 1→A To 3
For 1→B To 3
Locate 3B-1,A,"Q"
Next:Next
Locate 1,2,"GAME OVER"
==================


持ち点20点、タイムアウト条件やその他の設定は、現在のところ固定されている。これらを変更することで、難易度を変更できる。


そこで、難易度を変更できるようにして、一旦ゲームの完成としようと思う。


つづく...

⇒ もぐら叩き(7)



応援クリックをお願いします。励みになるので...

人気ブログランキングへ


FC2ブログランキングへ



keywords: fx-5800Pゲームプログラミングもぐら叩きプログラム関数電卓

リンク集 | ブログ内マップ
関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

コメントの投稿

非公開コメント

双曲線関数の用途について

すんません親分、夜分にどうも。

記事とは全く関係ない話題申し訳ないのですが、プロ電に付いている双曲線関数ってありますよネ。当方、「こんなモン、何に使うんじゃい」と気になってしょうがないのです。
やす様は、この双曲線関数の用途について、何か御存知ありませんでしょうか。

双曲線関数

akatukiさん

こんにちは、コメントありがとうございます。

双曲線関数って、確かに使わないですね。

三角関数の逆関数までは仕事でも使うのですが、と言うか数学の授業でもほとんど出てこなかったし...影の薄い関数ですよね。

2次関数: ax^2+bxy+cy^2+dx+ey+f=0
の直線でない場合に
・楕円
・放物線
・双曲線
のどれかになるわけですが、楕円や放物線は物理、力学でちゃんと出てきます。双曲線は、懸垂曲線で出てくるくらいですか?

ゲームで使う場合は、その計算特性をうまく利用することになるでしょう。


[sinh(x)]^2 - [cosh(y)]^2 = 1

が典型的な特性ですが、平方の差が1になる、そんな計算でアルゴリズムの効率化ができれは、面白いですね。

或いは、普通の三角関数と同様の加法定理が使えるので、そのあたりで利用価値があるかも知れません。

う~ん、すぐに何かでてくるわけではありませんが、引出を増やしておくことにします。

ありがとうございます。

No title

毎度、夜になってしまいますが御容赦を。

早々のお話、有り難う御座居ます。

> 双曲線関数って、確かに使わないですね。

やはり、そう思いますよネ。
当方も、何かしら使われているからこそ、こうした機能があるのだと思っていたのですが、どうもそうではない感触。

懸垂線の計算に使われるらしいのは、当方も確認しました。あと、惑星の軌道計算なんかに使われているフシがあるらしいのですが、詳細は判りません。

ウーン ... 。

双曲線関数の使い道

はじめましてこんにちは。小学生なので文構成がおかしいかもしれませんが、よろしくお願いします。
手元にあった本を見てみると、一般相対性理論や非線形波動方程式などに使うらしい、、、です。また、建築の「アーチ」の構造も逆懸垂線により造られているらしいです。

Re: 双曲線関数の使い道

Kuさん

こんにちは。

コメントありがとうございます。

私は、大学の工学部で勉強したことがありますが、授業では双曲線関数がまともに取り上げられませんでした。数学の授業で、そんなものもあるから覚えておくと便利かもしれない...程度のものでした。


> 手元にあった本を見てみると、一般相対性理論や非線形波動方程式などに使うらしい、、、です。

小学生とのことですが、このような専門用語をよく使えますね。すごいです。

量子力学の入門編程度しか勉強しなかったので、双曲線関数が使われているとは意識していませんでした。電磁気学や量子力学では、複素数と言うものが必須になりますが、双曲線関数は複素数を取り扱う時に便利な側面があります。....と数学では習っていますが、実際に意識して使いこなしたことがありません。

相対論は、もう数学が難しすぎてさっぱり分かりません。きちんと勉強したこともありまません。素人向けの科学啓蒙書を読む程度ですので、細かい数学には触れたことがありません....と言うか触れっとしても理解には恐ろしく時間と手間がかかると思います...


>また、建築の「アーチ」の構造も逆懸垂線により造られているらしいです。

そうですね、石をアーチ型に組み合わせると、橋を支えられるようになります。


数学や理科に興味をお持ちのようでうね。私も小学生の頃から科学や技術に興味がありました。


関数電卓に搭載されている関数のほとんどは、高校で習うと思います。双曲線関数や複素数などは大学の理工系で習います。

数学は概念の積み重ねですから順を追って勉強する必要がありますが、中学でも高校の勉強を十分できると思います。

最新記事
最新コメント
カテゴリ
C# (3)
検索フォーム
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム関数電卓は、プログラムを作り・使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています

おもしろい・役に立つならクリックしてください。励みになります。

人気ブログランキングへ


FC2ブログランキングへ


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

RSSリンクの表示
最新トラックバック
ブロとも申請フォーム

この人とブロともになる

QRコード
QR