• 締切済み

Flash lite1.0の計算クイズ

足し算と引き算の問題をランダムで表示させ、 テキストボックスに答えを入力すると言うクイズを作成しています。 ですが、足し算と引き算を表示させるスクリプトを書いても引き算しか表示されません。また、引き算は2-5等、答えがマイナスになってしまう物もあります。 足し算と引き算をランダムに出し、引き算の場合マイナスにならないようにする為にはどのようにすればいいでしょうか? 分かる方がいらっしゃれば教えて下さい。

noname#43612
noname#43612
  • Flash
  • 回答数2
  • ありがとう数3

みんなの回答

noname#35109
noname#35109
回答No.2

#1です。 > 足し算と引き算を表示させるスクリプトを > 書いても引き算しか表示されませんので > 引き算は表示されます。 すみません。 読み間違えで,逆でしたね。 大変申し訳ございません。 しかし,この意味がわかりません。 // 問いテキストフィールドの表示# toi = a add "+" add b add "="; toi = c add "-" add d add "="; これだと, 当然 toi という変数名のテキストフィールドには, 引き算しか表示されませんよ。 例えば↓これだと, //////////////// a = 5; a = 10: a = 3; //////////////// まず, a に 5 が代入されて, a に 10 が代入された後, a に 3 が代入されるわけですから, a は 3 です。 3 以外になりようがありません。 何がしたいのでしょうか? PCがわからないことでも, スクリプトを人間が見れば雰囲気でしたいことがわかる場合がありますが, したいことが人間にもわかりません。 というか,引き算を表示させたい以外にわかりません。 > 足し算と引き算を表示させるスクリプトを > 書いても… と日本語で書かれているところからして, 足し算も引き算も両方とも表示させたいということでしょうか? それだと, toi というテキストフィールドが1つしかない場合, toi というテキストフィールドを「複数行」表示できる設定にして, 2行分の文字が入るように縦に大きく広げて, ///////////////////////////////////////////////////////////////// // 問いテキストフィールドの表示# toi = a add "+" add b add "=" add newline add c add "-" add d add "="; ///////////////////////////////////////////////////////////////// こんな感じにするべきだと思います。 newline は改行コードです。 または, 足し算と引き算を別の変数に入れるべきです。 toi というテキストフィールド1つだけだと, それは実現出来ませんから, toi1 と toi2 というテキストフィールド を作って, ///////////////////////////////////////////// // 問いテキストフィールドの表示# toi1 = a add "+" add b add "="; toi2 = c add "-" add d add "="; ///////////////////////////////////////////// こんな感じにするべきだと思います。 あと,書かれている, -------------------------- c>d; // 問いテキストフィールドの表示# -------------------------- この c>d; というのは, 書いていても問題は生じませんが,書いていても全く意味はありません。 「c は d より大きい」 と書いてあるだけです。 人間もコンピュータも,「はぁ,そうですか。」と思うしかありません。 質問者さまでもそうでしょう。 「CさんはDさんより背が高い。」 と言われても, 「へー,そうですかー…... それで?」 となるでしょう。 それで返答がなければ無視するだけです。 というわけで, 上の2例は,足し算も引き算も両方表示させるという方法です。 つまり最初のご質問の回答にはなっていると思います。 あと, > 2-5等、答えがマイナスになってしまう物もあります についての回答ですが, -------------------------- c = random(99)+1; // a と足しても99までにしかならない乱数を代入 d = random(99-a)+1; -------------------------- これはまずいですね。 結論が, toi = c add "-" add d add "="; なのですから, d を出すときに a の値は全く関係がありません。 c と d のみについて考えないとなりません。 したがって次のようになると思います。 ----------------------------------- d = random(99)+1; // 99以下で c 以上の乱数 c = random(100-d)+d; ----------------------------------- ActionScript 以前に算数です。 そして,d と c を求める順が逆です。 まず,引く数 d を先に求めて,そこから引かれる数 c を求めないと答えがマイナスになる場合も当然あります。 引く数 d にランダムで仮に 48 という数が代入されたとします。 引かれる数 c は 48 以上でないとなりません。 だから, c = random(100-d)+d; の最後 +d が必要になります。 とりあえず, c = random(100)+48; これで,d は必ず 0 以上になります。 しかし c = random(100)+48; だと,c は 100 を越えることがあります。 48 を足した分,48を引かなければなりません。 c = random(100-48)+48;   ↓つまり↓ c = random(52)+48; これで c は 48 以上,99以下の数になります。 ====================== とりあえず回答出来るのはここまでですね。 ボタンのスクリプトに至っては, 上のことがハッキリしない限り,正常に動作しないと思います。 ActionScript の前に何がしたいのかを具体的にハッキリさせることが第一です。 そして次に算数も必要です。 ////////////////////////////////////////// 大変申し訳なく,また失礼にあたる アドバイスなのですが, ちゃんとした Flash の本(例えば,「教えて!Flash8」 まつむらまきお氏著) などを買って, 普通の Flash をまず始められてはいかがでしょうか? Flash Lite の,それも 1.0 なんかしていても, 難しいだけですし,スクリプトも変なので,ひとつも Flash 自体が上達しませんよ。 今や,Flash Lite 2.0 が発売の中心になっていると思います。 Flash Lite 1.0 や 1.1 というのは, 過渡期の特別変な存在だと思ってください。 Flash 4 時代を背負った,今や通用しないスクリプトだらけです。 こういうマイナーな言語(実は ActionScript1.0 とも 2.0 とも似ても似つかない言語)を 将来的に上達したとしても, その頃には誰も,Flash Lite 1.0 など見向きもしていないと思います。 かなり 普通のFlashが出来る方で,Flash Lite 1.0 や 1.1 の開発をされるのなら全く問題はないと思いますが。 大きなお世話かもしれませんが,正直以上のように思います。 なお, 上の newline とか, add とか,random() 関数 とか… 全て今の Flash では普通使わない,もしくは使ってはならない言葉なのですよ。 それをわかった上で研究されるのなら良いとは思います。 しかし言えることは, 絶対に,普通の Flash では私が回答したり,質問者さまが書いてくださっているスクリプトは使用しないでください。 正常に動かないなどトラブルの種になるだけです。 (私は Flash 4 (1999年)から Flash と付き合っているので,たまたま Flash Lite 1.0 の言語がわかるだけです。普通の人はわかりませんし,わかっても今後どうしようもない言語です。)

noname#43612
質問者

お礼

説明が下手で申し訳ございませんでした。 足し算と引き算を1つのテキストフィールドに ランダムで表示させると言う事でした。 Flash Lite 1.0をやるのに少し事情があったのですが Flash8も勉強していこうと思います。 ありがとうございました。

noname#35109
noname#35109
回答No.1

>> 足し算と引き算を表示させるスクリプトを書いても引き算しか表示されません。 足し算は表示されて,引き算は表示されないのですか? さっぱり意味がわかりません。 よりしければそうなるスクリプトを書いてみてください。 また, >> 引き算は2-5等、答えがマイナスになってしまう物もあります。 表示されているではないですか。書いていることが矛盾しているようにも思えますが。 いったいどういうことなのでしょう? ========================= 表示されているという前提で, 答えがマイナスになってしまうのが困るのであれば, 困るか困らないかは質問者さまが決めることで, マイナスになって困るとは決まったことではありませんが, もし困るのであれば, 「引く数」をランダムに出して, 「引かれる数」をそれより大きくすれば良いだけのことだと思います。 大きくするといっても,たとえば,  1兆5千3百50億 - 3 = ? のような問題であっては,きっと困るわけでしょう。 だから, 「引かれる数」は「引く数」以上で,なおかつ,○○までの乱数を出せばいいと思います。 ========================= とにかく, どういう仕組みで足し算と引き算の問題をランダムで表示させているのかわかりませんし, 引き算が表示されない理由もさっぱり見当がつきませんよ。

noname#43612
質問者

お礼

回答ありがとうございます。 >> 足し算は表示されて,引き算は表示されないのですか? 足し算と引き算を表示させるスクリプトを書いても引き算しか表示されませんので 引き算は表示されます。 スクリプトは以下のように記入しています。 ◆問題表示のスクリプト _focusrect = false; // 問題数表示 m_count=count+1 add"/"add n; // a にランダムな 0~99 までの 100個の乱数を代入 a = random(99)+1; // a と足しても99までにしかならない乱数を代入 b = random(99-a)+1; c = random(99)+1; // a と足しても99までにしかならない乱数を代入 d = random(99-a)+1; c > d; // 問いテキストフィールドの表示# toi = a add "+" add b add "="; toi = c add "-" add d add "="; // 答案の初期化 touan = ""; ◆決定ボタンのスクリプト on (press, keyPress "*") { // カウントに 1 を加算 count++; c++; // もし答案が正解であれば if (touan eq a+b) { // 得点に 1 を加算 tokuten++; // フレーム3へ gotoAndStop(3); } else { // それ以外(不正解)であればフレーム4へ gotoAndStop(4); } if (touan eq c-d) { // 得点に 1 を加算 tokuten++; // フレーム3へ gotoAndStop(3); } else { // それ以外(不正解)であればフレーム4へ gotoAndStop(4); } }

関連するQ&A

  • Flash lite1.0の計算クイズ

    初めまして。 初心者ですがモバイル版のFlash lite1.0で計算クイズを作成したいと思っています。 スタート画面でスタートを押すとクイズが始まり ランダムで問題が表示され、答えを数字ボタンで入力後 正解だと○不正解だと×と表示され また問題へ進んでいき、100問終了後 正解率とかかった時間をランキングに飛ばす と言う仕様で作成していきたいと思っているのですが 現在作成しているスクリプトではランダムはできているのですがクイズが9問までしかできません。 また、問題を表示できても答えを入力し、正解・不正解の表示をさせる方法がわかりません。 問題を100問作成する方法と答えを入力する方法を教えてください。(答えは二桁まで入力可能にしたいです) 説明がわかりづらいかもしれませんが 宜しくお願いします。

    • ベストアンサー
    • Flash
  • 【数字ランダム】計算問題ランダム計画

    1から10の乱数を使った 足し算、引き算を考えていまして、 ダイナミックテキスト(mondai)に 式と答えを表示。 同じ数字の組み合わせの問題が続けて出るので それを回避するために、 皆様のお知恵をお借りしたいと思いました。 自分が考えている回路図は、 //乱数[0-9] randam_a = Math.floor(Math.random()*10); randam_b = Math.floor(Math.random()*10); //足し算か引き算か計算ちぇっく check = Math.floor(Math.random()*2); ※このあたりに前回のrandam_a & randam_bの 値を調べて同じならば、前回と違う値が入るまで loop処理を加える。 //足し算ならば if (check == 0){   total = randam_a - randam_b ;   mondai = String(randam_a)+"+"+String(randam_b)+"="+String(total); //引き算ならば } else if (check == 1) {    total = randam_a + randam_b ;    mondai = String(randam_a)+"-"+String(randam_b)+"="+String(total); //引き算の処理ならば }else if (check == 1){ (略してます) } という流れを考えてます。 それ以外に、いけそうな処理の流れが あれば、そのチャートも知りたいので 解説して頂けると勉強になります>< 宜しくお願いします!

    • ベストアンサー
    • Flash
  • JavaScriptで簡単なクイズを作りたいんですが

    今HPを作っていて簡単なクイズを入れたいのですが JavaScriptを使ってしようと思ったのですが行き詰りました・・・ クイズの形式は問題をあらかじめ書いていて テキスト部分に答えを書いて ボタンをクリックすると「正解!」や「不正解!答えは○○」 と表示されるようなものです いろんなサイトを見たのですがよく理解できませんでした サンプルのソースなどを書いていただくとありがたいです 宜しくお願いします

  • Flashでランダムクイズゲームを作成する方法

    こんにちは。 Flashを使用してクイズゲームを作成しています。 30問から10問ランダムに出題して、正解の点数を出すようにする予定です。 現在↓のサイトを参考にして作成してます。 http://orange.2-d.jp/flash/action/19.html しかし、重複でランダム表示されてしまい行き詰まっています。 どのボタン、フレームにどのような命令をしたら良いのか分かりません… Flashに詳しい方、教えていただけると嬉しいです。

  • 2進数の計算について

    ITパスポートを受けようと思っているのですが、テクノロジ系の初歩的な部分と思われるところでつまずいてしまっています。 2進数同士の引き算、足し算がの繰上げ繰り下げが分かりません; どなたか分かり易く解説お願いします。 因みに、こんな問題です。 「2進数10110を3倍にしたものはどれか。」(選択肢が4つあります) 10110+10110+10110=答え なのは分かっているのですが、普通の計算と違うので何度テキストを読み返しても分かりません; お願いします。

  • クイズゲームのフォームについて

    こんばんは。VB初心者です。 VB6.0を用いてのクイズゲームを作成することになりました。 フォームの内容は以下のようなものです。 ・問題文(ラベルorテキストボックス) ・ヒントの動画(MCIコントロール) ・四択選択肢(オプションボタン) ・正解不正解(ピクチャボックス) ・解説(ラベルorテキストボックス) これを20問作るのですが、フォームを20個作らずに各コントロールの中身だけを変化させていきたいのですが、どのようなプログラムになるのか検討がつきません。 そこで、大まかなプログラムの流れだけでもいいので教えて欲しいです。 また、クイズ作成において参考になるHPがあれば教えて下さい。宜しくお願いします。

  • VB2008で日付と時間の計算

    教えて下さい。 VBで日付と時間の足し算をしたいのですがやり方がわかりません。 フォームに6つのテキストボックスを配置し、6つのテキストボックスには それぞれ日・時・分の数値を入力します。 例えばヤフーオークションの終了時刻を計算したい場合、 TextBox1~3に現在の日時を入力し、TextBox4~6に残り時間を入力します。 現在時刻 [4] 日 [17] 時 [44] 分 残り時間 [3] 日 [6] 時間 [30] 分 この数値の足し算結果をメッセージボックスに終了時刻として表示させるようにしたいのですが、やり方が分からず困ってます。 教えていただけないでしょうか。

  • access

    accessの超初心者で文がおかしくなるかもしれませんがよろしくお願い致します。 フォームのテキストボックスに計算した答えを出したいのが私のしたい質問です。 具体的には同テーブル内にある       A 100       B  50 の引き算の答えを表示させたいのですが具体的にはどういった方法をとればいいでしょうか? テーブル内のA、Bは直接入力しているのでテキストボックスにはその答えが何らかの方法で表示させればいいのですがその方法が皆目見当がつかずよろしくお願い致します。

  • クイズ作成:15個の問題から5個をランダム選択

    JavaScriptを用いてクイズを作成しておりまして、次のことを試してみたいのですが、アドバイスをいただきたく思います。 ○目的○ 「15個の問題数の中から5個をランダムに選択して、それらを1問ずつ順番に表示する(あと、できれば最終画面で正解数を表示する)」 現時点では、15問を無限にランダム表示している状態です。 ちなみに次のようなプログラムになっております。↓ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー <html> <head> <title>リンク</title> </head> <body bgcolor="black" text="white" topmargin="60" leftmargin="80"> <script language="JavaScript"><!-- myCnt = 15; // リンク先の数 myTable = new Array( // リンク先の登録 "クイズテスト2.html", "クイズテスト3.html", "クイズテスト4.html", "クイズテスト5.html", "クイズテスト6.html", "クイズテスト7.html", "クイズテスト8.html", "クイズテスト9.html", "クイズテスト10.html", "クイズテスト11.html", "クイズテスト12.html", "クイズテスト13.html", "クイズテスト14.html", "クイズテスト15.html", "クイズテスト16.html" ); function myRndLink(){ // 適当に選んでリンクする関数 myRnd = Math.floor(Math.random()*myCnt); // 0~(myLine-1)の乱数を求める location.href = myTable[myRnd]; // リンクする } // --></script> <form> <div align="right"> <font size="5">クイズをお楽しみください!</font><br><br><br> <font size="5">こちらからどうぞ → <input type="button" value="START" onClick="myRndLink()"></font><br> </div> <br><br> <div align="right"> <img src="..\00. ダウンロード素材\オーディオ\ライン\line02.gif" width="800"> </div> </form> </body> </html> ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 目的を達成するためにはどうすればよいか、アドバイスをいただけますようお願いいたします。

  • アクションスクリプトで、足し算、引き算をするには?

    FLASHのアクションスクリプトでテキストエリアに打ち込んだ数字を足し算、引き算させるには、どう記述すればよいのでしょうか? その際、数字のみしか、打ち込めないようにすることは可能ですか? 参考になるサイト等ありましたら、教えていただけないでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Flash

専門家に質問してみよう