Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2009-08-29

当たりすぎるサイコロ!?

| 00:06

 1.531はどうもおかしいので、とりあえずバージョンを1.524に下げてみました。

 ナゾの色々な現象は消えて、やっぱり1.531からの不具合なのかなー。

 でも、さらっと検索した感じじゃ、同現象っぽいの報告は見当たらないねえ。

 むむむ。


 アドベンチャーのほうは、意味が分からずちょっと検証がすぐには難しそうだったので、とりあえずちょぼいちで遊んでみる。


 ところが・・・


 当たりすぎです!

 サイコロですから、乱数ですから、6に1の確立でしか当たらないはずなんですが・・・

 3やっても4やっても、当たり続けます!!

 いやー、これがほんとの博打なら大もうけ! 神が降りてきたかと思うトコかもしれませんが・・・おかしいです(汗)


 ちなみに、仕方ないので試しに1.523入れてみました。

 直りました・・

 どーなってんの?(--;


 乱数が何かおかしくなったのかなー。

 それにしても、こっちで選んだやつが出てくるっていうのは??

 確かに、本当のちょぼいちは、先にサイコロ振って、それの目を当てるんだけど、どーせ関係ないじゃんと、サイコロの表示と処理を一緒にするために、答を選択した後にサイコロを振っているので、こっちが予想した目はわかった状態でサイコロを振るわけだ。

 けど・・・どこでどう違ったら、予想の値が出目に反映されてしまうんだろう。

 しかも、毎必ず絶対当たるわけじゃあないんですよねー。

 6に1くらいは外れる・・みたいな・・・(イメージ

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

2009-05-24

なでしこの苗を買ったよ!

| 22:14

 あかりちゃんと、かほりちゃんです★

 矮性で横に株が広がるタイプなので、グラウンドカバーによさそうです♪

 さて、サイコロは、もう少し作りこむつもりですが、一通り動くようになったのでUPしておきます。

#------------------------------------------------------------
#   ちょぼいち
#さいころ1個を振り、出た目に賭ける賭博。賭け者は1から6の好きな目に賭け、
#当たれば4~5の配当が払われ、負けると全額没収される。
#------------------------------------------------------------


#-----母艦設計------------------------------------------------
!母艦設計=「母艦の可視はオフ母艦のタイトルは「さいころ」
母艦のWは640。母艦のHは480。
母艦を$FFDDAAで画面クリア母艦のスタイルは「枠固定」
母艦オフに最大化ボタン有効変更。
母艦中央移動

『#親部品名,部品名,テキスト,ショートカット,オプション,イベント
なし,ファイルメニュー,ファイル(&F),,,
 -,開くメニュー,開く(&O),Ctrl+O,,
 -,-,,,,
 -,閉じるメニュー,閉じる(&X),Ctrl+X,,終わる
』をメニュー一括作成。

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

#-----宣言---------------------------------------------------
ダイスサイズとは整数=100
半径とは整数=10

元手とは整数=100
所持金とは整数=元手
賭け金とは整数=0
配当とは整数=4
予想とは整数。

賭場サイズとは整数=300
板サイズとは整数=70
左マージンとは整数=15
上マージンとは整数=15

マウス待ちとは整数オン
出目とは整数。

裏画面とはイメージの可視はオフのWはダイスサイズ*6。のHはダイスサイズ+板サイズ*2。

処理用とはイメージの可視はオフ。


#---サイコロ振るところ----
賭場とはイメージの可視はオフのWは賭場サイズ。のHは賭場サイズ。
賭場を$775533で画面クリア。

#---胴元がしゃべるところ----
テキストウィンドウとはイメージの可視はオフのWは600。のHは100。
テキストウィンドウを$222222で画面クリア。

#---所持金表示----
文字書体は「MS 明朝|24|」。
母艦の左マージン+賭場サイズ+50,上マージン+20へ「所持金:」を文字描画母艦の左マージン+賭場サイズ+170,上マージン+20,50,33へ「{所持金}」を右,下で枠内文字描画母艦の左マージン+賭場サイズ+230,上マージン+20へ「文」を文字描画。

#---勝負ボタン----
勝負ボタンとはボタンのテキストは「勝負!」
のXは左マージン+賭場サイズ+60。のYは上マージン+板サイズ*2+120。
のWは80。のHは30。
文字書体は「MS 明朝|18|」。
の有効はオフ。
勝負ボタンのクリックした時は~
  マウス待ち=オフ。
  勝負ボタンの有効はオフ。
  待ったボタンの有効はオフ。
  サイコロ振る。
  勝ち負け判定。

#---待ったボタン----
待ったボタンとはボタンのテキストは「待った」
のXは左マージン+賭場サイズ+170。のYは上マージン+板サイズ*2+120。
のWは80。のHは30。
文字書体は「MS 明朝|18|」。
の有効はオフ。
待ったボタンのクリックした時は~
  所持金=所持金+掛け金。
  掛け金=0。
  所持金表示。
  勝負ボタンの有効はオフ。
  待ったボタンの有効はオフ。
  「1」で胴元セリフ。


#---お金を賭けるところ----
賭け板とはイメージの可視はオフのWは板サイズ*2。のHは板サイズ*6

賭け板設定とは配列。 #0ボタン表示位置X、1ボタン表示位置Y、2ボタン幅、ボタン高さ
6
  賭け板設定¥回数,0は左マージン+賭場サイズ+50+(板サイズ*((回数-1)%3))。
  賭け板設定¥回数,1は上マージン+80+(板サイズ*((回数-1)/3を切り下げ))
  賭け板設定¥回数,2は板サイズ
  賭け板設定¥回数,3は板サイズ

#---お金を賭ける窓----
賭け窓とはフォーム。賭け窓をウィンドウ背景色画面クリア。
賭け窓の幅は240。賭け窓の高さは180。
賭け窓のXは母艦のX+(母艦の幅-賭け窓の幅)/2。賭け窓のYは母艦のY+(母艦の高さ-賭け窓の高さ)/2。
賭け窓はオフにシステムメニューボタン有効変更。
賭け窓のスタイルは「枠固定」

金額スピンとはスピンエディタ。金額スピンの親部品は賭け窓。
金額スピンのXは50。金額スピンのYは60。
金額スピンの文字サイズは22。
金額スピンの幅は120。金額スピンの高さは30。
金額スピンの最小値は1。

OKボタンとはボタン。OKボタンの親部品は賭け窓。
OKボタンのXは30。OKボタンのYは120
OKボタン文字書体は「MS 明朝|10|」。
OKボタンのテキストは「OK」
OKボタンのクリックした時は~
  掛け金=金額スピンのテキスト。
  所持金=所持金-掛け金。
  塗り色は$FFDDAA。線色は$FFDDAA。線太さは0。
  賭け窓をウィンドウ背景色画面クリア。
  賭け窓の可視はオフ。賭け窓を閉じる。
  所持金表示。
  「2」で胴元セリフ。

キャンセルボタンとはボタンキャンセルボタンの親部品は賭け窓。
キャンセルボタンのXは130。キャンセルボタンのYは120
キャンセルボタン文字書体は「MS 明朝|10|」。
キャンセルボタンのテキストは「キャンセルキャンセルボタンのクリックした時は~
  賭け窓をウィンドウ背景色画面クリア。
  賭け窓を閉じる
  「0」で胴元セリフ。

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


#-----メインルーチン-------------------------------------------
母艦の可視はオン。

サイコロ準備
ゲーム画面準備

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

#-----マウス入力待ち-------------------------------------------
母艦マウス移動した時は~
  もし、マウス待ち=オンならば
    賭け板の賭け板設定を母艦へマウスインアウト反映。
  違えば
    戻る母艦のマウス押した時は~
  もし、マウス待ち=オンならば
    もし母艦の押されたボタン=左ならば
      もし、前選択ボタン=0でなければ
        もし、前選択ボタン=1ならば
          予想=3
        違えばもし、前選択ボタン=3ならば
          予想=1
        違えば、
          予想=前選択ボタン
        賭ける
    違えば
      戻る
  違えば
    戻る
#------------------------------------------------------------

#------------------------------------------------------------
*賭ける
  金額スピンの最大値は所持金。
  金額スピンのテキストは所持金。
  文字色ウィンドウ文字色文字書体は「MS 明朝|16|」
  賭け窓の30,20へ「{予想} 番に賭けるよ!」を文字描画。
  賭け窓をモーダル表示。
#------------------------------------------------------------
*所持金表示
  文字書体は「MS 明朝|24|」。文字色は黒。
  母艦の左マージン+賭場サイズ+170,上マージン+20から左マージン+賭場サイズ+170+50,上マージン+20+33へ四角。
  母艦の左マージン+賭場サイズ+170,上マージン+20,50,33へ「{所持金}」を右,下で枠内文字描画。
#------------------------------------------------------------

#-----サイコロを振る-------------------------------------------
*サイコロ振る
    r=6の乱数。出目=r+1。
    x=r*ダイスサイズ。y=0。
    
    処理用をダイスサイズ,ダイスサイズへ画像高速リサイズ。
    裏画面のx,y,ダイスサイズ,ダイスサイズを処理用の0,0へ画像部分コピー。
    処理用を母艦の左マージン+(賭場サイズ/2-ダイスサイズ/2),上マージン+(賭場サイズ/2-ダイスサイズ/2)へ画像合成改。
#------------------------------------------------------------

#-----勝ち負け判定-------------------------------------------
*勝ち負け判定
  もし、出目=予想ならば
    「当たり」と言う。
    所持金=所持金+掛け金*配当。
    所持金表示。
  違えば
    「外れ」と言う。

  もし、所持金≦0ならば
    「破産しました」と言う。
    終わり。
  違えば
    賭場を母艦の左マージン,上マージンへ画像コピー。
    「1」で胴元セリフ。
#------------------------------------------------------------

#-----ゲーム画面準備-------------------------------------------
*ゲーム画面準備

  #---お金を賭けるところ----
  処理用を板サイズ,板サイズ*6へ画像高速リサイズ。
  数を0から5まで繰り返す
    塗り色は$DDAA00。線太さは0。
    x=0
    y=数*板サイズ
    処理用のx,yからx+板サイズ,y+板サイズへ四角
    数で条件分岐
      0ならば
        板数=「三」
      1ならば
        板数=「二」
      2ならば
        板数=「一」
      3ならば
        板数=「四」
      4ならば
        板数=「五」
      5ならば
        板数=「六」
    文字サイズは42。文字色は$000000。文字書体は「MS 明朝」
    処理用のx+5,y+5へ板数を文字描画。

  処理用を賭け板の0,0へ画像コピー。
  処理用を画像ネガポジ。
  処理用を賭け板の板サイズ,0へ画像コピー。
  
  賭場を母艦の左マージン,上マージンへ画像コピー。
  テキストウィンドウを母艦の左マージン,上マージン+賭場サイズ+10へ画像コピー。
  賭け板の0,0を賭け板設定で母艦へマウスオーバーボタン表示。
  「1」で胴元セリフ
#------------------------------------------------------------

#-----胴元のセリフ-------------------------------------------
*胴元セリフ(Sで)
  テキストウィンドウを母艦の左マージン,上マージン+賭場サイズ+10へ画像コピー。
  文字色白色文字書体は「MS 明朝|16|」。
  母艦の左マージン+10,上マージン+賭場サイズ+20へ「【胴元】」を文字描画。
  もし、S=「0」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「さあ、張った張った!」を100で文字遅延描画

  もし、S=「1」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「どの目にいくら張るんだい?」を100で文字遅延描画
    マウス待ち=オン。

  もし、S=「2」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「{予想}に{掛け金}文だな?」を100で文字遅延描画
    母艦の左マージン+30,上マージン+賭場サイズ+75へ「良ければ勝負だ!」を100で文字遅延描画
    勝負ボタンの有効はオン。
    待ったボタンの有効はオン。
    マウス待ち=オフ。
#------------------------------------------------------------


#-----サイコロ画像の準備---------------------------------------
*サイコロ準備
  裏画面を$000000で画面クリア。
    数を0から5まで繰り返す。
    もし、数=0ならば                #1のサイコロ
      線色は$000001。塗り色は$FFFFFF        #地の色は白
      外枠。                    #ダイスの外枠
      線色は$FF0000。塗り色は$FF0000        #目の色は赤
      半径=15。                 #大き目
      中点。
    
    もし、数=1ならば                #2のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=10。
      左上点。右下点。
    
    もし、数=2ならば                #3のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=10。
      中点。左上点。右下点。
    
    もし、数=3ならば                #4のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=10。
      左上点。左下点。右上点。右下点。
    
    もし、数=4ならば                #5のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=10。
      中点。左上点。左下点。右上点。右下点。
    
    もし、数=5ならば                #6のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=9。
      左上点。左下点。右上点。右下点。左中点。右中点。

*外枠
  x=数*ダイスサイズ。y=0。
  x2=x+ダイスサイズ。y2=ダイスサイズ。
  裏画面のx,yからx2,y2へ30,30で角丸四角。

*中点
  xx=(x+ダイスサイズ/2)-半径。yy=ダイスサイズ/2-半径
  xx2=(x+ダイスサイズ/2)+半径。yy2=ダイスサイズ/2+半径。
  裏画面のxx,yyからxx2,yy2へ。

*左上点
  xx=(x+ダイスサイズ/4)-半径。yy=ダイスサイズ/4-半径
  xx2=(x+ダイスサイズ/4)+半径。yy2=ダイスサイズ/4+半径。
  裏画面のxx,yyからxx2,yy2へ。

*左下点
  xx=(x+ダイスサイズ/4)-半径。yy=(ダイスサイズ/4)*3-半径
  xx2=(x+ダイスサイズ/4)+半径。yy2=(ダイスサイズ/4)*3+半径。
  裏画面のxx,yyからxx2,yy2へ。

*右上点
  xx=(x+ダイスサイズ/4*3)-半径。yy=ダイスサイズ/4-半径
  xx2=(x+ダイスサイズ/4*3)+半径。yy2=ダイスサイズ/4+半径。
  裏画面のxx,yyからxx2,yy2へ。

*右下点
  xx=(x+ダイスサイズ/4*3)-半径。yy=(ダイスサイズ/4)*3-半径
  xx2=(x+ダイスサイズ/4*3)+半径。yy2=(ダイスサイズ/4)*3+半径。
  裏画面のxx,yyからxx2,yy2へ。

*左中点
  xx=(x+ダイスサイズ/4)-半径。yy=ダイスサイズ/2-半径
  xx2=(x+ダイスサイズ/4)+半径。yy2=ダイスサイズ/2+半径。
  裏画面のxx,yyからxx2,yy2へ。

*右中点
  xx=(x+ダイスサイズ/4*3)-半径。yy=ダイスサイズ/2-半径
  xx2=(x+ダイスサイズ/4*3)+半径。yy2=ダイスサイズ/2+半径。
  裏画面のxx,yyからxx2,yy2へ。

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

#------------------------------------------------------------
●枠内文字描画({グループ=?}OBJのX,Y,W,HへSをA,Vで)
  xxとは整数。yyとは整数。
  もし、A=左ならば
    xx=X
  違えばもし、A=中央ならば
    xx=X+(W-(Sの文字幅取得))/2
  違えばもし、A=右ならば
    xx=(X+W)-(Sの文字幅取得)
  もし、V=上ならば
    yy=Y
  違えばもし、V=中央ならば
    yy=Y+(H-(Sの文字高さ取得))/2
  違えばもし、V=下ならば
    yy=(Y+H)-(Sの文字高さ取得)
  OBJのxx,yyへSを文字描画。
#------------------------------------------------------------
●画像合成改({グループ}Sを{グループ}DのX,Yへ)
 Cとは整数
//マスク画像はSの透過色を黒色それ以外を白色にしたもの
 マスク画像をイメージとして作成
 マスク画像→可視はオフ
 マスク画像→画像はS→名前
 マスク画像の0,0を画像色取得してCに代入
 マスク画像をCで画像マスク作成
//ソース画像はSの透明色を黒色に変換したもの
 ソース画像をイメージとして作成
 ソース画像→可視はオフ
 ソース画像→画像はS→名前
 マスク画像を画像ネガポジ
 マスク画像をソース画像の0,0へ画像ANDコピー
 マスク画像を画像ネガポジ
//合成実行
 マスク画像をDのX,Yへ画像ANDコピー
 ソース画像をDのX,Yへ画像ORコピー
 マスク画像→壊す
 ソース画像→壊す
#------------------------------------------------------------

●マウスオーバーボタン表示({グループ=?}OBJ1のX,YをAで{グループ=?}OBJ2へ)
  A\0,0=X。A\0,1=Y
  (Aの要素数-1)
    OBJ1のX,Y+(回数-1)*(A¥回数,3),(A¥回数,2),(A¥回数,3)をOBJ2の(A¥回数,0),(A¥回数,1)へ画像部分コピー。


●マウスインアウト反映({グループ=?}OBJ1のAを{グループ=?}OBJ2へ)
  (Aの要素数-1)
    もし、((OBJ2→マウスX)>(A¥回数,0))かつ
      ((OBJ2→マウスX)<(A¥回数,0)+(A¥回数,2))かつ
      ((OBJ2→マウスY)>(A¥回数,1))かつ
      ((OBJ2→マウスY)<(A¥回数,1)+(A¥回数,3))ならば
        選択ボタン回数。
    違えばもし、(回数=Aの要素数)かつ(選択ボタン=0)ならば
      選択ボタンは0。
    ここまで

  もし、前選択ボタン<>選択ボタンならば
    もし、前選択ボタン>0ならば
      OBJ1の(A\0,0),(A\0,1)+(前選択ボタン-1)*(A¥(前選択ボタン),3),(A¥(前選択ボタン),2),(A¥(前選択ボタン),3)をOBJ2の(A¥(前選択ボタン),0),(A¥(前選択ボタン),1)へ画像部分コピー。
    もし、選択ボタン>0ならば
      OBJ1の(A\0,0)+(A¥(選択ボタン),2),(A\0,1)+(選択ボタン-1)*(A¥(選択ボタン),3),(A¥(選択ボタン),2),(A¥(選択ボタン),3)をOBJ2の(A¥(選択ボタン),0),(A¥(選択ボタン),1)へ画像部分コピー。
  前選択ボタン=選択ボタン
  選択ボタン=0
  描画処理反映

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

 あと、またまた新発見!

 太字とか斜体とかの文字スタイルの指定の仕方がわかりました。

文字書体は「フォント名|サイズ|スタイル」

 のように、「|」で区切って指定できるようです。

 文字書体文字サイズも一緒に指定できるなんて、便利じゃないですか~♪

 スタイルは「太字斜体」みたいに続けて書くことで、複数指定できるようです。

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

2009-05-18

アスターの種をまいたよ!

| 23:56

 副賞(参加賞?)の種を早速まきました。

 水仙、チューリップが終わるので、の隙に。

 楽しみですね♪

 てなわけで、これから庭仕事も忙しくなるし、夏は意外と野外派なので、更新はぼちぼちになると思いますけど引き続きよろしくです。

【せんせい】

 さてさて、前は懸案のクイズに一応の片をつけたので、どうしようかなと、考えていましたが、一応違うことをしたいなーと思って、アドベンチャーゲームについて考え中だったのですが、突然ひらめいたので、サイコロ(ちょぼいち)は、こんな風な画面にしようかなーというのを作ってみました。

#------------------------------------------------------------
#   ちょぼいち
#さいころ1個を振り、出た目に賭ける賭博。賭け者は1から6の好きな目に賭け、
#当たれば4~5の配当が払われ、負けると全額没収される。
#------------------------------------------------------------


#-----母艦設計------------------------------------------------
!母艦設計=「母艦の可視はオフ母艦のタイトルは「さいころ」
母艦のWは640。母艦のHは480。
母艦を$FFDDAAで画面クリア母艦のスタイルは「枠固定」
母艦オフに最大化ボタン有効変更。
母艦中央移動

『#親部品名,部品名,テキスト,ショートカット,オプション,イベント
なし,ファイルメニュー,ファイル(&F),,,
 -,開くメニュー,開く(&O),Ctrl+O,,
 -,-,,,,
 -,閉じるメニュー,閉じる(&X),Ctrl+X,,終わる
』をメニュー一括作成。

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

#-----宣言---------------------------------------------------
ダイスサイズとは整数=100
半径とは整数=10

元手とは整数=100
所持金とは整数=元手
賭け金とは整数=0
配当とは整数=4
予想とは整数。

賭場サイズとは整数=300
板サイズとは整数=70
左マージンとは整数=15
上マージンとは整数=15

裏画面とはイメージの可視はオフのWはダイスサイズ*6。のHはダイスサイズ+板サイズ*2。

処理用とはイメージの可視はオフ。


#---サイコロ振るところ----
賭場とはイメージの可視はオフのWは賭場サイズ。のHは賭場サイズ。
賭場を$775533で画面クリア。

#---胴元がしゃべるところ----
テキストウィンドウとはイメージの可視はオフのWは600。のHは100。
テキストウィンドウを$222222で画面クリア。

#---お金を賭けるところ----
賭け板とはイメージの可視はオフのWは板サイズ*2。のHは板サイズ*6

賭け板設定とは配列。 #0ボタン表示位置X、1ボタン表示位置Y、2ボタン幅、ボタン高さ
6
  賭け板設定¥回数,0は左マージン+賭場サイズ+50+(板サイズ*((回数-1)%3))。
  賭け板設定¥回数,1は上マージン+80+(板サイズ*((回数-1)/3を切り下げ))
  賭け板設定¥回数,2は板サイズ
  賭け板設定¥回数,3は板サイズ


#---所持金表示----
所持金ラベルとはラベルのテキストは「所持金:{所持金}文」
のXは左マージン+賭場サイズ+50。のYは上マージン+20。
のWは250。のHは50。
文字サイズは24。文字書体は「MS 明朝」。

#---勝負ボタン----
勝負ボタンとはボタンのテキストは「勝負!」
のXは左マージン+賭場サイズ+100。のYは上マージン+板サイズ*2+120。
のWは100。のHは30。
文字サイズは18。文字書体は「MS 明朝」。
#------------------------------------------------------------


#-----メインルーチン-------------------------------------------
母艦の可視はオン。

サイコロ準備
ゲーム画面準備

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

#-----マウス入力待ち-------------------------------------------
母艦マウス移動した時は~
  賭け板の賭け板設定を母艦へマウスインアウト反映。
母艦のマウス押した時は~
  もし母艦の押されたボタン=左ならば
    もし、前選択ボタン=0でなければ
      もし、前選択ボタン=1ならば
        予想=3
      違えばもし、前選択ボタン=3ならば
        予想=1
      違えば、
        予想=前選択ボタン
      予想を言う
勝負ボタンのマウス押した時は~
  サイコロ振る
#------------------------------------------------------------

#-----ゲーム画面準備-------------------------------------------
*ゲーム画面準備

  #---お金を賭けるところ----
  処理用を板サイズ,板サイズ*6へ画像高速リサイズ。
  数を0から5まで繰り返す
    塗り色は$DDAA00。線太さは0。
    x=0
    y=数*板サイズ
    処理用のx,yからx+板サイズ,y+板サイズへ四角
    数で条件分岐
      0ならば
        板数=「三」
      1ならば
        板数=「二」
      2ならば
        板数=「一」
      3ならば
        板数=「四」
      4ならば
        板数=「五」
      5ならば
        板数=「六」
    文字サイズは42。文字色は$000000。文字書体は「MS 明朝」
    処理用のx+5,y+5へ板数を文字描画。

  処理用を賭け板の0,0へ画像コピー。
  処理用を画像ネガポジ。
  処理用を賭け板の板サイズ,0へ画像コピー。
  
  賭場を母艦の左マージン,上マージンへ画像コピー。
  テキストウィンドウを母艦の左マージン,上マージン+賭場サイズ+10へ画像コピー。
  賭け板の0,0を賭け板設定で母艦へマウスオーバーボタン表示。
#------------------------------------------------------------
  文字色白色文字サイズは14。
  母艦の左マージン+10,上マージン+賭場サイズ+20へ「【胴元】」を文字描画。
  母艦の左マージン+30,上マージン+賭場サイズ+50へ「いくら賭けるんだい?」を100で文字遅延描画
#------------------------------------------------------------

#-----サイコロを振る-------------------------------------------
*サイコロ振る
    r=6の乱数
    x=r*ダイスサイズ。y=0。
    
    処理用をダイスサイズ,ダイスサイズへ画像高速リサイズ。
    裏画面のx,y,ダイスサイズ,ダイスサイズを処理用の0,0へ画像部分コピー。
    処理用を母艦の左マージン+(賭場サイズ/2-ダイスサイズ/2),上マージン+(賭場サイズ/2-ダイスサイズ/2)へ画像合成改。
#------------------------------------------------------------


#-----サイコロ画像の準備---------------------------------------
*サイコロ準備
  裏画面を$000000で画面クリア。
    数を0から5まで繰り返す。
    もし、数=0ならば                #1のサイコロ
      線色は$000001。塗り色は$FFFFFF        #地の色は白
      外枠。                    #ダイスの外枠
      線色は$FF0000。塗り色は$FF0000        #目の色は赤
      半径=15。                 #大き目
      中点。
    
    もし、数=1ならば                #2のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=10。
      左上点。右下点。
    
    もし、数=2ならば                #3のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=10。
      中点。左上点。右下点。
    
    もし、数=3ならば                #4のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=10。
      左上点。左下点。右上点。右下点。
    
    もし、数=4ならば                #5のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=10。
      中点。左上点。左下点。右上点。右下点。
    
    もし、数=5ならば                #6のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=9。
      左上点。左下点。右上点。右下点。左中点。右中点。

*外枠
  x=数*ダイスサイズ。y=0。
  x2=x+ダイスサイズ。y2=ダイスサイズ。
  裏画面のx,yからx2,y2へ30,30で角丸四角。

*中点
  xx=(x+ダイスサイズ/2)-半径。yy=ダイスサイズ/2-半径
  xx2=(x+ダイスサイズ/2)+半径。yy2=ダイスサイズ/2+半径。
  裏画面のxx,yyからxx2,yy2へ。

*左上点
  xx=(x+ダイスサイズ/4)-半径。yy=ダイスサイズ/4-半径
  xx2=(x+ダイスサイズ/4)+半径。yy2=ダイスサイズ/4+半径。
  裏画面のxx,yyからxx2,yy2へ。

*左下点
  xx=(x+ダイスサイズ/4)-半径。yy=(ダイスサイズ/4)*3-半径
  xx2=(x+ダイスサイズ/4)+半径。yy2=(ダイスサイズ/4)*3+半径。
  裏画面のxx,yyからxx2,yy2へ。

*右上点
  xx=(x+ダイスサイズ/4*3)-半径。yy=ダイスサイズ/4-半径
  xx2=(x+ダイスサイズ/4*3)+半径。yy2=ダイスサイズ/4+半径。
  裏画面のxx,yyからxx2,yy2へ。

*右下点
  xx=(x+ダイスサイズ/4*3)-半径。yy=(ダイスサイズ/4)*3-半径
  xx2=(x+ダイスサイズ/4*3)+半径。yy2=(ダイスサイズ/4)*3+半径。
  裏画面のxx,yyからxx2,yy2へ。

*左中点
  xx=(x+ダイスサイズ/4)-半径。yy=ダイスサイズ/2-半径
  xx2=(x+ダイスサイズ/4)+半径。yy2=ダイスサイズ/2+半径。
  裏画面のxx,yyからxx2,yy2へ。

*右中点
  xx=(x+ダイスサイズ/4*3)-半径。yy=ダイスサイズ/2-半径
  xx2=(x+ダイスサイズ/4*3)+半径。yy2=ダイスサイズ/2+半径。
  裏画面のxx,yyからxx2,yy2へ。

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


●画像合成改({グループ}Sを{グループ}DのX,Yへ)
 Cとは整数
//マスク画像はSの透過色を黒色それ以外を白色にしたもの
 マスク画像をイメージとして作成
 マスク画像→可視はオフ
 マスク画像→画像はS→名前
 マスク画像の0,0を画像色取得してCに代入
 マスク画像をCで画像マスク作成
//ソース画像はSの透明色を黒色に変換したもの
 ソース画像をイメージとして作成
 ソース画像→可視はオフ
 ソース画像→画像はS→名前
 マスク画像を画像ネガポジ
 マスク画像をソース画像の0,0へ画像ANDコピー
 マスク画像を画像ネガポジ
//合成実行
 マスク画像をDのX,Yへ画像ANDコピー
 ソース画像をDのX,Yへ画像ORコピー
 マスク画像→壊す
 ソース画像→壊す
#------------------------------------------------------------

●マウスオーバーボタン表示({グループ=?}OBJ1のX,YをAで{グループ=?}OBJ2へ)
  A\0,0=X。A\0,1=Y
  (Aの要素数-1)
    OBJ1のX,Y+(回数-1)*(A¥回数,3),(A¥回数,2),(A¥回数,3)をOBJ2の(A¥回数,0),(A¥回数,1)へ画像部分コピー。


●マウスインアウト反映({グループ=?}OBJ1のAを{グループ=?}OBJ2へ)
  (Aの要素数-1)
    もし、((OBJ2→マウスX)>(A¥回数,0))かつ
      ((OBJ2→マウスX)<(A¥回数,0)+(A¥回数,2))かつ
      ((OBJ2→マウスY)>(A¥回数,1))かつ
      ((OBJ2→マウスY)<(A¥回数,1)+(A¥回数,3))ならば
        選択ボタン回数。
    違えばもし、(回数=Aの要素数)かつ(選択ボタン=0)ならば
      選択ボタンは0。
    ここまで

  もし、前選択ボタン<>選択ボタンならば
    もし、前選択ボタン>0ならば
      OBJ1の(A\0,0),(A\0,1)+(前選択ボタン-1)*(A¥(前選択ボタン),3),(A¥(前選択ボタン),2),(A¥(前選択ボタン),3)をOBJ2の(A¥(前選択ボタン),0),(A¥(前選択ボタン),1)へ画像部分コピー。
    もし、選択ボタン>0ならば
      OBJ1の(A\0,0)+(A¥(選択ボタン),2),(A\0,1)+(選択ボタン-1)*(A¥(選択ボタン),3),(A¥(選択ボタン),2),(A¥(選択ボタン),3)をOBJ2の(A¥(選択ボタン),0),(A¥(選択ボタン),1)へ画像部分コピー。
  前選択ボタン=選択ボタン
  選択ボタン=0
  描画処理反映

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

【せんせい】

 の学習内容としては、まで変数の宣言は、宣言時に値を与える場合、

ダイスサイズとは整数。ダイスサイズ=100

 と書いていましたが、

ダイスサイズとは整数=100

 と書けることがわかりましたです(汗)

【でし】

 ちょっとしたことですけど、変数が多くなればなるほど、だいぶ楽ですよね。

【せんせい】

 まだゲームとしては動作しませんけど、お金を賭ける部分の動作を決めたら、以前作った基本動作の応用でさくっと作れそうな気も…

【でし】

 ところで、相変わらずラベルはチラチラしますねー。

【せんせい】

 ーでした。思わず忘れて、癖でラベルにしちゃいましたが直しましょう。

 それにしても、描画処理の伴わない、マウス判定とかだけでもチラッとするのはなぜなんでしょう。それともやっぱどこかで無駄に動いているかな…?

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

2009-04-20

バグを修正するよ!

| 19:33

【せんせい】

 と言うわけで、突然ですがサイコロです。

 熱に浮かされてるに、突然天啓がひらめいたのです!

【でし】

 知恵熱だったわけですね;

【せんせい】

 まずは、前のコードです。

 「賭ける」と「答える」、両方の修正箇所に問題があるように書いていますが、実際に問題があったのは、「答える」のほうだけでした。

#-------------------------------------------------------------
#数当てゲーム
所持金とは整数。所持金=5
賭け金とは整数。賭け金=0
配当とは整数。配当=2
所持金>0の
  R=6の乱数+1
  賭ける


*賭ける
  「いくら賭ける?(1~{所持金})」と尋ねる。
  賭け金=それ
  もし、(それ<1)または(それ)または(それ>所持金)ならば
    賭ける。                    #←ここと
  違えば
    答える
*答える
    「1~6のど~れだ?」と尋ねるもし、(それ<1)または(それ)または(それ>6)ならば
      答える                    #←ここが問題!
    もし(R=それならば
      所持金=所持金+賭け金*配当
    「当たり!{改行}所持金が{所持金}に増えました」と言う
    違えば
      所持金=所持金-賭け金
    「ハズレ。答えは{R}でした。{改行}所持金が{所持金}に減りました」と言う
  ここまで
「破産しました」と言う。
終わり。
#-------------------------------------------------------------

 「賭ける」のほうは、もし違えばの構文が完結していますから、もしで自分を呼び出しても、の後戻ってくることはありません。(もしかしたら戻ってくるのかもしないけど、処理する命令はもうないからリターンされるっていうか?)

 「答える」のほうは、もしの文が2つ並列されている為、最初のもしで自分を読んでしまうと、一連の処理が終わった後に、次のもし違えばを実行してしまうのでした。

 というわけで、こうなりました。

#-------------------------------------------------------------
#数当てゲーム
所持金とは整数。所持金=5
賭け金とは整数。賭け金=0
配当とは整数。配当=2
所持金>0の
  R=6の乱数+1
  賭ける


*賭ける
  「いくら賭ける?(1~{所持金})」と尋ねる。
  賭け金=それ
  もし、(それ<1)または(それ)または(それ>所持金)ならば
    賭ける。
  違えば
    答える

*答える
    「1~6のど~れだ?」と尋ねるもし、(それ<1)または(それ)または(それ>6)ならば
      答える
    違えば    #はじめのもしに対応する違えばの中に入れただけなのさ;
        もし(R=それならば
          所持金=所持金+賭け金*配当
      「当たり!{改行}所持金が{所持金}に増えました」と言う
        違えば
          所持金=所持金-賭け金
      「ハズレ。答えは{R}でした。{改行}所持金が{所持金}に減りました」と言う

「破産しました」と言う。
終わり。
#-------------------------------------------------------------

 これであれば、「賭ける」のほうと同じく完結するんで、大丈夫でした。

 分かってみたら、穴に入りたいよーなイージーミスでした(汗)

 ゲームなんかだと特に、関数から関数へ飛びまくってぐるぐるるよーなプログラムになりがちだから、よくよく気をつけないとダメだねえ・・・っていうか、いうプログラム自体が問題?!

【せんせい】

 明日は、クイズに戻りますよ~。

 答の、時制限をつけようとおもいます!

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

2009-04-09

クイズで遊ぶよ!

| 21:32

【せんせい】

 と言うわけで、次からはクイズです!

【でし】

 えらく唐突ですねー; サイコロはどーなったんですか?

 まさか、あれで完成と言うわけでは・・・(汗)

【せんせい】

 そうではありませんが、一応目的である画像の扱いの基本(裏画面についてと、重ねあわせ処理について)は解決させたので、先に進もうと思います。


 ちなみに、サイコロの後の抱負としては・・・

①まず第一に、若干バグっていることが判明しました。

続ける?」の二択のとき、稀に表示が変になっちゃうというか、透過したはずのサイコロの4隅が表示されたり、所持金が1文減ったものが重なって表示されたりするみたいな?

終了確認の前後がなにかおかしいんでしょうが、発生頻度が低いので、どういうタイミングで発生するのかも、つかめていません;

②あとは、もっとゲームっぽさを目指して、実際のちょぼいちは、一~六の数が書かれた板の上にお金を賭けるらしいので、んな感じにしたいなと思っています。主に、見た目や操作性の追求ですね。

【でし】

 そういう部分をあれこれ考えるのも、楽しいですよね!

【せんせい】

 して、クイズのほうですが、最後、唐突に終わらないで、成績発表くらいはして欲しいなあ。

 あと、選択肢は毎順番を違えて出るようにしたい。でないと答えではなくだんだん体で場所を覚えて解答できるようになっちゃうからね。

 とりあえず二次元配列はよく分からないので、これから勉強するのです(笑)

 このままの見た目で最後に成績発表するとか、ノルマを設定してクリア制にするとかは、わりと簡単に出来そうな気がしますが、これから進むアドベンチャーゲームを視野に入れた見た目のいいクイズゲームを目指しますよ!


【でし】

 楽しみです!

 ・・・って、は前口上だけなんですか?!

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