Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2009-04-27

成績発表するよ!

| 22:33

【せんせい】

 成績発表です。

 いつもの、「言う」ではない方法で表示させて見ましたよ~。

 予告どおり、科目別と、総合とで集計を取ってみました。

 成績に応じて、もっと何かいろいろ違ったコメントがあると面白いと思いますが、それを考えるのが面倒なために保留としています;

【でし】

 は2科目だけなので、余白が多いですが、学校らしく5~6科目にして、下のほうに何か書くと、それっぽくなりそうですね!

【せんせい】

 そうなのですが・・・

 ぶっちゃけもうクイズは飽きたのですぅ~(汗)

 だって、動作テストのたびに自分が作った同じ問題解くんですよ~?

 やっぱり作るならパズルゲームだよねー。

 15パズルは、(んなには)飽きなかった。

#------------------------------------------------------------
*成績発表
  塗り色は$804000。線色は$000000。線太さは3。
  成績表の0,0から400,400へ四角。
  塗り色は$FFFFFF。線色は$000000。線太さは3。
  成績表の10,10から390,390へ四角。

  文字書体は「MS Pゴシック」。文字サイズは20。文字色は$000000。
  成績表の0,20,400,30へ中央,中央で「成績表」を枠内文字描画。
  文字書体は「MS Pゴシック」。文字サイズは18。文字色は$000000。
  成績表の50,65,150,30へ左,中央で「科目」を枠内文字描画。
  成績表の200,65,100,30へ左,中央で「正解率」を枠内文字描画。
  成績表の300,65,100,30へ左,中央で「得点」を枠内文字描画。

  文字書体は「MS Pゴシック」。文字サイズは16。文字色は$000000。
  数を0から科目数-1まで繰り返す
    成績表の50,100+30*数,150,30へ左,中央で(科目¥数,0)を枠内文字描画。
    成績表の200,100+30*数,100,30へ左,中央で「{(成績¥数,2)}%」を枠内文字描画。
    成績表の300,100+30*数,100,30へ左,中央で「{(成績¥数,1)}点」を枠内文字描画。
    正解率=正解率+成績¥数,2

  成績表の50,100+30*科目数から380,100+30*科目数へ
  成績表の50,100+30*科目数+5,150,30へ左,中央で「総合」を枠内文字描画。
  成績表の200,100+30*科目数+5,100,30へ左,中央で「{正解率/科目数}%」を枠内文字描画。
  成績表の300,100+30*科目数+5,100,30へ左,中央で「{総合得点}点」を枠内文字描画。

  成績表の可視はオン。
#-------------------------------------------------------------

【せんせい】

 内容的には、情報を表示をするだけなので、たいしたことはやっていませんね。

 昨日作った枠内文字描画をうれしがって使いまくっていますけど、結局ほとんど左詰にしたのでまったく意味なし(汗)

 しかも、何気に無駄っぽいコードだし;

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20090427

2009-04-25

○×を表示するよ!

| 21:07

【せんせい】

 昨日、さりげなくスルーした、まで何問正解して何問不正解なのかを表示する部分です。

 同じ書式で「正解何問、不正解何問」と文字表示するのはたやすいのですが、ちょっと趣向を変えて○×で表示していくことにしてみましょう。

#------------------------------------------------------------
*マウス判定
  もし、マウス待ち=「オンならば
    母艦のマウス押した時は
      数を0から3まで繰り返す
        もし、(母艦のマウスX>選択板x)かつ
        (母艦のマウスY>選択板y+(選択板高さ+選択板隔)*数)かつ
        (母艦のマウスX<選択板x+選択板幅)かつ
        (母艦のマウスY<選択板y+選択板高さ+(選択板高さ+選択板隔)*数)ならば
          もし、選択肢¥数が答えならば
            得点=得点+残り。
            総合得点=総合得点+残り。
            タイマー停止。
            ノルマ=ノルマ-1
            得点描画
            正解数=正解数+1
            当たりで正誤表示。
            「当たり」と言う。
            問題設定
          違えば
            タイマー停止。
            外れで正誤表示。
            「ハズレ。答えは{答え}」と言う。
            問題設定

  違えば
    母艦のマウス押した時は
      戻る
#-----正誤表示-----------------------------------------------
*正誤表示(sで)
  x=440+35*((番号-1)%5)。y=135+35*((番号-1)/5を切り下げ)
  もし、s=当たりならば
    文字書体は「MS ゴシック」。文字サイズは18。文字色は$FF0000。
    表画面のx,yへ「○」を文字描画。
  違えばもし、s=外れならば
    文字書体は「MS ゴシック」。文字サイズは24。文字色は$0000FF。
    表画面のx-5,y-5へ「×」を文字描画。
  違えばもし、s=消去ならば
    塗り色は$FFFFEE。線色は$FFFFEE。線太さは0。
    表画面の435,130から615,130+35*(問題数/5を切り下げ)へ四角。
  表画面の435,130,180,70を母艦の435,130へ画像部分コピー。
  描画処理反映

#------------------------------------------------------------

【でし】

 おぉ~、ぱちぱちぱち~。

 しかし、これで1科目10問以内という縛りが出来てしまいました(笑)

【せんせい】

 そうなんです;

 でもどうせ、んな山ほど問題考えるつもりもないし。

 さて、関数引数についてのおさらいです。

 以前、文字遅延描画の対策用の命令を作ったときには、さりげなく文字遅延描画引数をコピペして対応する変数を合わせたら動いたので、大体は分かった気でいたわけですが、最近ようやく引数ってものについてひらめいた気がするので、早速使ってみましたよ!

【でし】

 引数とは(sで)てヤツですね。

【せんせい】

 正確には「s」が引数で、「で」は引数関数に指定してやるための助詞ですね。関数の後ろに()で括って指定してやります。・・・なんてあたりはまあ、大体分かっていたのですが、実際自分で使ってみると、おぉ!っていう感じですね(笑)

 別にフラグを立てても大ないような内容ですが、ちょっとレベルアップした気分~♪

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20090425

2009-04-24

科目別にノルマを設定するよ!

| 19:22

せんせい】

 ではでは、まずは、右側の表示に関して解決していきましょう。

 これらは、基本的には変数の値を参照すればいいだけのことなので、表示に反映すること自体はそう難しくありません。

【でし】

 それにしても、初期の描画は座標をいろいろ変数にしていたのに、こりゃまた見事に数字で決め打ちですね(汗)

【せんせい】

 すいません;

 同じサイズのを縦に並べているだけなので、いくらでもきちんとできると思うんですが、ついついこーなってしまいます;;

 それはさておき、表示自体はそう難しくないので、2次元配列についてもう一度おさらいしてみたいと思います。

#------------------------------------------------------------
ノルマとは整数。
時限とは整数。時限=0。
科目とは配列。  #0科目、1ノルマ
科目=「古典文学,2
日本史,3」
科目数とは整数。科目数=科目の要素数。

#-----得点描画-----------------------------------------------
*得点描画
  塗り色は$FFFFEE。線色は$FFFFEE。線太さは0。
  表画面の435,240から615,280へ四角。
  表画面の435,320から615,360へ四角。
  表画面の435,400から615,440へ四角。

  #ノルマ
  もし、ノルマ≦0ならば
    文字書体は「MS Pゴシック」。文字サイズは20。文字色は$FF0000。
    表画面の435+((615-435)-(「クリア!」の文字幅取得))/2,275-(「クリア!」の文字高さ取得)へ「クリア!」を文字描画。
    表画面の435,240,180,40を母艦の435,240へ画像部分コピー。
  違えば
    文字書体は「MS Pゴシック」。文字サイズは20。文字色は$555500。
    表画面の435+((615-435)-(「残り {ノルマ} 問」の文字幅取得))/2,275-(「残り {ノルマ} 問」の文字高さ取得)へ「残り {ノルマ} 問」を文字描画。
    表画面の435,240,180,40を母艦の435,240へ画像部分コピー。

  #科目得点
  文字書体は「MS Pゴシック」。文字サイズは24。文字色は$555500。
  表画面の610-(得点の文字幅取得),358-(得点の文字高さ取得)へ得点を文字描画。
  表画面の435,320,180,40を母艦の435,320へ画像部分コピー。

  #総合得点
  表画面の610-(総合得点の文字幅取得),438-(総合得点の文字高さ取得)へ総合得点を文字描画。
  表画面の435,400,180,40を母艦の435,400へ画像部分コピー。
  描画処理反映。
#------------------------------------------------------------

#-----情報描画-----------------------------------------------
*情報描画
  塗り色は$FFFFEE。線色は$000000。線太さは2。
  表画面の435,20から615,120へ四角。
  文字書体は「MS Pゴシック」。文字サイズは20。文字色は$555500。
  表画面の450,30へ「{時限+1}時目」を文字描画。
  文字書体は「MS Pゴシック」。文字サイズは24。文字色は$555500。
  表画面の450,70へ(科目¥時限,0)を文字描画。

  #ノルマ設定
  塗り色は$FFFFAA。線色は$FFFFAA。線太さは0。
  表画面の430,210から630,240へ四角。
  文字書体は「MS Pゴシック」。文字サイズは18。文字色は$AA0000。
  表画面の430,210へ「ノルマは {科目¥時限,1} 問です」を文字描画。

    #得点表示
  塗り色は$FFFFAA。線色は$FFFFAA。線太さは0。
  表画面の430,290から630,320へ四角文字書体は「MS Pゴシック」。文字サイズは18。文字色は$AA0000。
    表画面の430,290へ「{科目¥時限,0}の得点」を文字描画。
    表画面の430,370へ「総合得点」を文字描画。

#------------------------------------------------------------

#-----クイズデータセット-------------------------------------
*データセット
  「{科目¥時限,0}.csv」を開く。
  データはそれ。
  
  データを配列シャッフル。
  問題数はデータの要素数。
  ノルマ=科目¥時限,1
#------------------------------------------------------------

【せんせい】

 前は、ノルマを3で決め打ちしましたが、普通面が進むごとにハードルが高くなっていくのが普通ですよね?

 もちろん、1面クリアするごとにプラスしていくという方法でもいいのですが、科目ごとのノルマをあらかじめ個別に設定しておけるようにしてみます。

【でし】

 ますますテストみたくなったかも?(>_<)

【せんせい】

 まで、科目配列は一次配列でしたが、これを二次配列にしちゃいます。

 科目名の後ろに「,」をつけて、任意のノルマ数を入れるだけです。

 これに伴い、まで「科目¥時限」で表示していた科目名は「科目¥時限,0」となります。

【でし】

 して、の科目のノルマが「科目¥時限,1」となる。

 分かってみたら、実に簡単です!

【せんせい】

 までも、さりげなく問題で二次配列をずっと使っていたわけですが、やっぱり自分で一からやってみると、理解した!って気になりますですね☆

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20090424

2009-04-23

ノルマを加えて面クリア制にするよ!

| 18:35

【せんせい】

 今日からは、ノルマ制を導入していきますよ!

 ノルマをクリアした時点で、次の面に進んでくと言うものと、問題は全部解いてもらって、ノルマがクリアできていなければゲームオーバーとなるものとありますけど、は後者を採用です。折角得点をつけるんですからね!

【でし】

 赤点取ったら落第なんですね;

【せんせい】

 まだ全体的に、てきとーなんですけど、とりあえずこんな感じです。

#------------------------------------------------------------
ノルマとは整数。ノルマ=3。
時限とは整数。時限=0。
科目とは配列。
科目=「古典文学
日本史」
科目数とは整数。科目数=科目の要素数。

#-----ノルマ描画---------------------------------------------
*ノルマ描画
    塗り色は$FFFFEE。線色は$000000。線太さは2。
    表画面の435,20から615,120へ四角文字書体は「MS Pゴシック」。文字サイズは20。文字色は$555500。
    表画面の450,30へ「{時限+1}時目」を文字描画文字書体は「MS Pゴシック」。文字サイズは24。文字色は$555500。
    表画面の450,70へ(科目¥(時限))を文字描画。

    #ノルマ設定
    文字書体は「MS Pゴシック」。文字サイズは18。文字色は$AA0000。
    表画面の430,150へ「ノルマは {ノルマ} 問です」を文字描画。
#------------------------------------------------------------

#-----クイズデータセット-------------------------------------
*データセット
    「{科目¥(時限)}.csv」を開く。
    データはそれ。
    
    データを配列シャッフル。
    問題数はデータの要素数。
#------------------------------------------------------------

*終了判定
  もし、正解数≧ノルマならば
    「ノルマクリア!」と言う。
    もし、時限+1=科目数ならば
      終わり。
    違えば
      時限=時限+1
      番号=0
      ノルマ描画。
      データセット。
      問題設定。
  違えば
    「ゲームオーバー」と言う。
    終わり。

#------------------------------------------------------------

【でし】

 なんか、終了が唐突になっちゃいましたよ~?

【せんせい】

 それは、後ほど直しますよ~。

 とりあえずこれで、1科目目問題が全部終わったら、ノルマを達成しているかどうかを判定し、達成していたら次の科目に進む。未達成ならゲームオーバーいう流れまでです。

【でし】

 ここに、さらにいろいろ機能を追加していくんですね!

【せんせい】

 のとーり。概要は出来ましたから、どういうふうにしていくのか、詳細を詰めていきましょう。

【でし】

 やはり、ノルマは正解したらあと何問って減っていって欲しいところです。あと、まで何問正解して何問不正解なのか、リアルタイムで分かったほうがいいかも・・・

 得点も、は総合得点だけですが、課目別の得点も見たいです。

【せんせい】

 右側の表示項目としては、んなところでしょうか。

 あとは成績発表ですけれど、折角なので科目別に集計して出したいですね!

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20090423

2009-04-22

得点を表示するよ!

| 21:56

【せんせい】

 正解数とは別に、得点の要素を盛り込んでみますよ。

 昨日時制限の機能をつけましたから、早く答すれば得点が高くなるようにします。

 ちょっと安易ですが、残り時(1/10秒)をのまま得点とします。

 制限時から経過を引いていったものが「残り」ですから、これを加算していけばOKですね。

#------------------------------------------------------------
#得点表示
文字書体は「MS Pゴシック」。文字サイズは18。文字色は$AA0000。
表画面の430,370へ「得点」を文字描画。
得点描画。
#------------------------------------------------------------

#------------------------------------------------------------
*マウス判定
  もし、マウス待ち=「オンならば
    母艦のマウス押した時は
      数を0から3まで繰り返す
        もし、(母艦のマウスX>選択板x)かつ
        (母艦のマウスY>選択板y+(選択板高さ+選択板隔)*数)かつ
        (母艦のマウスX<選択板x+選択板幅)かつ
        (母艦のマウスY<選択板y+選択板高さ+(選択板高さ+選択板隔)*数)ならば
          もし、選択肢¥数が答えならば
                  得点=得点+残り
            タイマー停止。
            得点描画
                  正解数=正解数+1。
            「当たり」と言う。
            問題設定
          違えば
            タイマー停止。
            「ハズレ。答えは{答え}」と言う。
            問題設定

  違えば
    母艦のマウス押した時は
      戻る
#------------------------------------------------------------

#-----得点描画-----------------------------------------------
*得点描画
    塗り色は$FFFFEE。線色は$FFFFEE。線太さは0。
    表画面の435,400から615,440へ四角文字書体は「MS Pゴシック」。文字サイズは24。文字色は$555500。
    表画面の610-(得点の文字幅取得),438-(得点の文字高さ取得)へ得点を文字描画。
    表画面の435,400,180,40を母艦の435,400へ画像部分コピー描画処理反映。
#------------------------------------------------------------

【でし】

 なるほど。

 ほぼ、表示のためのプログラムで、難しいことは何もないですねー。

 唯一引っかかったというと、タイマー停止の前に得点計算をしないとダメってことくらいでしたか。

【せんせい】

 あ、見た目はほとんど同じになっていますが、15パズルの時は、表示部分をラベルで作りましたが、は普通に描画しています。

 もともと気にはなっていたけどスルーしていましたが、画面が書き換わるときにラベルがチラッとちらつくんですよね。それと、Vistaでは、ラベルの文字にアンチエイリアスかからないです(XPはかかってたり)

 は、タイマーで制限時アニメーションをさせているため、それはもうチラチラしてさすがにひどいので。

 描画のたびに、表示位置に四角を書いて前の表示を消しています(笑)

 

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20090422