HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
1225
ブーシー九九ゲームの作り方!4未解決


ブーシー

リンク

2009/12/25(Fri) 17:23:22|NO.29497

現在、九九計算のゲームをちょっとしたRPG要素を取り入れて作ろうと試みています。

ゲームの構成
①勇者が敵を倒していくというゲーム。
②戦闘=九九の問題を解いていく。
③レベル1の敵から始まり、レベル9のラスボスで終わる。
④レベル1は一の段、レベル9は九の段。
⑤できれば、ランダムもいれてみたい。

こういう計画を立てています。
そこで、質問があります。
ア)「1×1=?」のような画面を表示し、その答えを入力したら「1×2=?」・・・
  のように進めていくにはどのようにすればいいのでしょうか?
  「if」や「getkey」などを使ってやってみているのですが、スクリプトの書き方が
  イマイチよく分かりません。

当方、初心者であり、色々な講座を読んでみてもこのスクリプト制作にうまく繋がらなか
ったので、代表的なスクリプトを教えていただければと思っております。
よろしくお願いします。



この記事に返信する


モノブロス

リンク

2009/12/25(Fri) 18:06:19|NO.29499

簡単な九九ゲームのスクリプトです

screen 0, 320, 240, 0, (ginfo_dispx - 320) / 2, (ginfo_dispy - 240) / 2 title "九九ゲーム  得点0" *初期設定 randomize sco = 0 lv = 1 ;レベル *問題作成 if c = 10 : if lv < 9 : lv += 1 : c = 0 kazu = rnd(9) + 1 ;かける数 kotae = lv * kazu ;答え a = "" ;入力した数字を記録する変数 *問題 cls 0 font "MS ゴシック", 32, 0 : color 0, 0, 0 pos (320 - 16 * 12) / 2, 64 : mes "" + lv + " × " + kazu + " = ?" ;問題表示 objsize 64, 20 ;オブジェクトのサイズの設定 pos 160 - 64, 120 : input a ;入力欄表示 pos 160, 120 : button "答える", *解答 stop *解答 cls 0 font "MS ゴシック", 32, 0 : color 0, 0, 0 if a = kotae : pos (320 - 16 * 4) / 2, 64 : mes "正解" : sco ++ : c ++ ;正解なら正解と表示 if a ! kotae : pos (320 - 16 * 6) / 2, 64 : mes "ハズレ" ;ハズレならハズレと表示 objsize 64, 20 pos 160 - 64, 120 : button "もう一回", *問題 pos 160, 120 : button "次の問題", *問題作成 title "九九ゲーム  得点"+sco stop

rndでかける数をランダムで選んでいます
10問正解するごとにレベルが上がっていきます



ブーシー

リンク

2009/12/25(Fri) 19:07:22|NO.29501

ありがとうございます!!
とても助かりました!



ブーシー

リンク

2009/12/25(Fri) 19:33:36|NO.29502

それと、もう一つ質問させていただいてよろしいでしょうか?
現在、練習用として、画面に「1×1=?」のみ表示させ、その答えのキーを押すと
次の問題が表示されるというようなページを作っています。
しかし、「2×5=?」のときに『10(getkeyで49番と48番)』を押させて、
次の問題に行くようにしたいのですが、0を押した時点で最後のラベルに飛んでしま
います。
どこが可笑しいのでしょうか?

スクリプト↓
*二の段1
cls

pos 0,0
mozi="2×1="
repeat
redraw 2
color 0,0,0:boxf
color 255,255,255
pos 150,100
font "mozi",80,MS明朝
print mozi
getkey b,50
if b==1:goto *二の段2
redraw 1
wait 1
loop
                  ~(省略)~

*二の段5
cls

pos 0,0
mozi="2×5="
repeat
redraw 2
color 0,0,0:boxf
color 255,255,255
pos 150,100
font "mozi",80,MS明朝
print mozi
getkey b,49&48
if b==1:goto *二の段6
redraw 1
wait 1
loop

            ~(省略)~
*二の段9
cls

pos 0,0
mozi="2×9="
repeat
redraw 2
color 0,0,0:boxf
color 255,255,255
pos 150,100
font "mozi",80,MS明朝
print mozi
getkey b,49&56
if b==1:goto *二の段L
redraw 1
wait 1
loop

*二の段L
cls
title "君の勝ちだ!!"
color 100,100,100:boxf
color 255,255,255
font "mes",100,MSゴシック
pos 150,100
mes "you win"
objsize 110,20
pos 440,305 : button "選択画面に戻る",*traning
pos 440,325 : button "メインページに戻る",*hata0
stop


そもそも、このスクリプト自体のつくりが非効率的なのは分かっているのですが、どうにも
これ以外の方法で作ることができなくて。
アドバイスなどもいただけたら幸いです



tsuka

リンク

2009/12/25(Fri) 23:21:48|NO.29509

とっても非効率ですね。
それぞれのラベルの共通の部分と、違っている部分を探して、うまく一箇所でできるようにがんばりましょう。

それと、

getkey b,48&49
という書き方は、できないです。("&"のところです。)



ONION software Copyright 1997-2025(c) All rights reserved.