Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2016/05/20 (金)

完成かな?

| 22:17 | 完成かな? - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - 完成かな? - 雪乃☆雫のなでしこ日和 完成かな? - 雪乃☆雫のなでしこ日和 のブックマークコメント

 ダイスはサイコロキャラメルにし替えて、得点表示部分が白だと、白のサイコロが何だか見づらいから、ちょこっとだけ色替えをして(でもんなに見やすくなったわけでもない;)、勝敗判定の表示と、メッセージ表示を付け加えて・・・

 このメッセージの数々に一番、無駄っぽく行数と時を食っていたり;;;

 ついでに、なこ様を表示させてみたりして、いちおう完成、完成~☆

#-----------------------------------------------------------------------
# 36(Thirty-six)
#-----------------------------------------------------------------------

#-----母艦設計-----------------------------------------------
!母艦設計=「母艦の可視はオフ」

#---メニュー----
『#親部品名,部品名,テキスト,ショートカット,オプション,イベント
なし,ファイルメニュー,ファイル(&F),,,
 -,新規メニュー,新しいゲーム(&N),Ctrl+N,,新規ゲーム
 -,-,,,,
 -,メッセージメニュー,メッセージ速度(&S),Ctrl+S,,
 --,速度1,早い(&1),,,「早い」にメッセージ速度変更。
 --,速度2,普通(&2),,,「普通」にメッセージ速度変更。
 --,速度3,遅い(&3),,,「遅い」にメッセージ速度変更。
 -,-,,,,
 -,閉じるメニュー,閉じる(&X),Ctrl+X,,終わる
なし,ヘルプメニュー,ヘルプ(&H),,,
 -,ルールメニュー,遊び方(&R),Ctrl+R,,遊び方
 -,-,,,,
 -,バージョンメニュー,バージョン情報(&A),Ctrl+A,,バージョン
』をメニュー一括作成。

*メッセージ速度変更(Sに)
  もし、S=「早い」ならば、
    メッセージ速度=0
    速度1のチェックオン。速度2のチェックオフ。速度3のチェックオフ。

  違えばもし、S=「普通」ならば、
    メッセージ速度=30
    速度1のチェックオフ。速度2のチェックオン。速度3のチェックオフ。

  違えばもし、S=「遅い」ならば、
    メッセージ速度=60
    速度1のチェックオフ。速度2のチェックオフ。速度3のチェックオン。
#------------------------------------------------------------

#---母艦----
母艦のタイトルは「36(Thirty-six)」
母艦のクライアント幅は640。母艦のクライアント高さは480。
母艦を$EEAA88で画面クリア母艦のスタイルは「枠固定」
母艦オフに最大化ボタン有効変更。
母艦中央移動。
#------------------------------------------------------------

#-----宣言---------------------------------------------------
プレイヤー名とは文字列=「プレイヤー」
コンピューター名とは文字列=「なこ様」
ナコ様画像とは文字列=「{ランタイムパス}\lib\nako.png」

出目とは配列。
得点とは整数=0
プレイヤー得点とは整数=0
コンピューター得点とは整数=0
プレイヤー罰点とは整数=0
コンピューター罰点とは整数=0

手番とは整数=0
プレイヤーとは整数=0
コンピューターとは整数=1
カウントとは整数=0
ゾロ目とは整数オフ
六ゾロとは整数オフ

マージンとは整数=15
メッセージ速度とは整数=30
速度2のチェックオン。

#---サイコロ設定----
ダイスサイズとは整数=80
ミニダイスとは整数=20

サイコロ赤とは配列。
サイコロ赤=「{ダイスサイズ}
{黒色},{赤色},{白色}
{黒色},{赤色},{白色}
{黒色},{赤色},{白色}
{黒色},{赤色},{白色}
{黒色},{赤色},{白色}
{黒色},{赤色},{白色}」

サイコロ白とは配列。
サイコロ白=「{ダイスサイズ}
{黒色},{白色},{赤色}
{黒色},{白色},{赤色}
{黒色},{白色},{赤色}
{黒色},{白色},{赤色}
{黒色},{白色},{赤色}
{黒色},{白色},{赤色}」

#---サイコロ用イメージ----
線太さ=1
ダイス用¥1にサイコロ赤でサイコロ準備
ダイス用¥2にサイコロ白でサイコロ準備

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

#---サイコロ振るところ----
トレイ幅とは整数=350
トレイ高さとは整数=310
トレイxとは整数。トレイx=(母艦のクライアント幅/2)-(トレイ幅/2)
トレイyとは整数。トレイy=30

ダイストレイとはイメージの可視はオフの幅はトレイ幅。の高さはトレイ高さ。
ダイストレイを$006600で画面クリア。
ダイストレイを母艦のトレイx,トレイyへ画像コピー。

#---メッセージ出すところ----
テキストウィンドウ幅とは整数=610
テキストウィンドウ高さとは整数=115
テキストウィンドウxとは整数=マージン
テキストウィンドウyとは整数。テキストウィンドウy=トレイ高さ+トレイy+マージン

テキストウィンドウとはイメージの可視はオフの幅はテキストウィンドウ幅。の高さはテキストウィンドウ高さ。
テキストウィンドウを$222222で画面クリア。
テキストウィンドウを母艦のテキストウィンドウx,テキストウィンドウyへ画像コピー

#---得点計算するところ----
得点表示幅とは整数=110
得点表示高さとは整数=310
プレイヤーxとは整数=マージン
コンピューターxとは整数母艦のクライアント幅-(マージン+得点表示幅)
得点表示xとは整数。
得点表示yとは整数=マージン

得点表示用とはイメージの可視はオフの幅は得点表示幅。の高さは得点表示高さ。
得点表示用を$FFDDAAで画面クリア。

得点表示用を母艦のプレイヤーx,得点表示y*2へ画像コピー。
得点表示用を母艦のコンピューターx,得点表示y*2へ画像コピー文字書体は「MS ゴシック|12|太字」
母艦のプレイヤーx,0,得点表示幅,得点表示y*2-1へ「{プレイヤー名}」を中央,下で枠内文字描画母艦のコンピューターx,0,得点表示幅,得点表示y*2-1へ「{コンピューター名}」を中央,下で枠内文字描画。

#---サイコロ振るボタン----
ボタンフラグとは整数。  #0=OK、1=ゲーム開始、2=サイコロ振る、3=勝敗判定、4=新規ゲーム

ボタンAとはボタンの可視はオフの幅は100。の高さは30。
のXはトレイx+(トレイ幅/2-ボタンAの幅/2)。のYはトレイ高さ+トレイy-ボタンAの高さ。
ボタンAをクリックした時は~
  ナコ様の可視はオフ。
  もしボタンフラグ=0ならば
    ボタンフラグ=2
    もし、手番=プレイヤーならば、プレイヤー手番。
    違えば、コンピューター手番。
  違えばもしボタンフラグ=1ならば
    ボタンAの有効はオフ。
    「プレイヤーの手番」でメッセージ表示。
    ボタンAのテキストは「ダイスを振る」
    の有効はオン。
    ボタンフラグ=2
  違えばもしボタンフラグ=2ならば
    ボタンAの有効はオフ。
    サイコロ振る。得点計算。得点加算。
  違えばもしボタンフラグ=3ならば
    勝敗判定。
  違えばもしボタンフラグ=4ならば
    ボタンAの有効はオフ
    新規ゲーム。

#---なこ様----
ナコ様とはフォームの可視はオフの親部品は母艦
の画像はナコ様画像。
ナコ様を画像通り変形。
のドラッグ移動オフ。
#------------------------------------------------------------

#-----メインルーチン-----------------------------------------
母艦の可視はオンダイアログIMEIMEオンダイアログタイトルは「名前入力」
「あなたの名前は?(全角7文字以内で教えてね)」と尋ねるもしそれならば、
  プレイヤー名は「プレイヤー」
違えば
  プレイヤー名はそれの14バイト左部分。
  線色は$EEAA88。塗り色は$EEAA88。
  母艦のプレイヤーx,0からプレイヤーx+得点表示幅,得点表示y*2-1へ四角。
  母艦のプレイヤーx,0,得点表示幅,得点表示y*2-1へ「{プレイヤー名}」を中央,下で枠内文字描画。

「挨拶」でメッセージ表示ボタンAのテキストは「よろしく」
の可視はオンボタンフラグ=4
#------------------------------------------------------------
*新規ゲーム
  乱数初期化。
  プレイヤー得点=0
  コンピューター得点=0
  プレイヤー罰点=0
  コンピューター罰点=0
  カウント=0

  得点表示y=マージン。
  得点表示用を母艦のプレイヤーx,得点表示y*2へ画像コピー。
  得点表示用を母艦のコンピューターx,得点表示y*2へ画像コピー。
  ダイストレイを母艦のトレイx,トレイyへ画像コピー。
  描画処理反映。
  手番はプレイヤー。
  「ゲーム開始」でメッセージ表示。
  ボタンAの有効はオン
  ボタンAのテキストは「準備OK!」
  ボタンフラグは1

#-----2Dを振る---------------------------------------------
*サイコロ振る
  2
    処理用をダイスサイズ,ダイスサイズへ画像高速リサイズ。
    r=6の乱数。出目¥(回数-1)=r+1。
    x=r*ダイスサイズ。y=0。
    ダイス用¥回数のx,y,ダイスサイズ,ダイスサイズを処理用の0,0へ画像部分コピー。
    処理用を母艦のトレイx+((トレイ幅/3)*回数-ダイスサイズ/2),トレイy+(トレイ高さ/2-ダイスサイズ/2)へ画像コピー。

    処理用をミニダイス,ミニダイスへ画像リサイズ。
    もし、手番=プレイヤーならば
      得点表示x=プレイヤーx+10+(ミニダイス+10)*(回数-1)
      得点表示y=マージン*2+10+(ミニダイス+10)*(カウント/2)
      処理用を母艦の得点表示x,得点表示yへ画像コピー。
    違えば
      得点表示x=コンピューターx+10+(ミニダイス+10)*(回数-1)
      得点表示y=マージン*2+10+(ミニダイス+10)*((カウント-1)/2)
      処理用を母艦の得点表示x,得点表示yへ画像コピー。
#------------------------------------------------------------
*得点計算
  もし、(出目¥0)=(出目¥1)ならば
    もし、(出目¥0)=6ならば
      得点=36。
      文字色赤色。
    違えばもし、(出目¥0)=1ならば
      得点=0。
      文字色青色。
    違えば
      得点=出目¥0*出目¥1。
      ゾロ目=オン
      文字色黒色。
  違えば
    得点=出目¥0+出目¥1。
    文字色黒色。

*得点加算
  もし、手番=プレイヤーならば
    もし、得点=36ならば
      プレイヤー得点=36
      得点表示。
      「プレイヤー6ゾロ」でメッセージ表示。
      六ゾロ=1
    違えばもし、得点=0ならば
      プレイヤー得点=0
      得点表示。
      「プレイヤー1ゾロ」でメッセージ表示。
    違えば
      プレイヤー得点=プレイヤー得点+得点
      もし、プレイヤー得点>=36ならば
        文字色赤色。
        プレイヤー罰点=プレイヤー得点-36
      得点表示。
      もし、ゾロ目=オンならば
        「プレイヤーゾロ目」でメッセージ表示。
        ゾロ目=オフ
      違えば
        「プレイヤー出目」でメッセージ表示。
    手番=コンピューター。
    ボタンAのテキストは「OK」
    の有効はオン。
    ボタンフラグ=0
    
  違えば
    もし、得点=36ならば
      コンピューター得点=36
      得点表示。
      「コンピューター6ゾロ」でメッセージ表示。
      六ゾロ=六ゾロ+2
    違えばもし、得点=0ならば
      コンピューター得点=0
      得点表示。
      「コンピューター1ゾロ」でメッセージ表示。
    違えば
      コンピューター得点=コンピューター得点+得点
      もし、コンピューター得点>=36ならば
        文字色赤色。
        コンピューター罰点=コンピューター得点-36
      得点表示。
      もし、ゾロ目=オンならば
        「コンピューターゾロ目」でメッセージ表示。
        ゾロ目=オフ
      違えば
        「コンピューター出目」でメッセージ表示。

    もし、(プレイヤー得点>=36)または(コンピューター得点>=36)ならば
      ボタンAのテキストは「勝敗判定」
      の有効はオン。
      ボタンフラグ=3
    違えばもし、カウント=19ならば
      ボタンAのテキストは「無効試合」
      の有効はオン。
      ボタンフラグ=3
    違えば
      手番=プレイヤー。
      ボタンAのテキストは「OK」
      の有効はオン。
      ボタンフラグ=0

*得点表示
  文字書体は「MS ゴシック|16|太字」。
  もし、手番=プレイヤーならば
    得点表示x=プレイヤーx+20+(ミニダイス+10)*2
    得点表示y=マージン*2+10+(ミニダイス+10)*(カウント/2)
    母艦の得点表示x,得点表示y,ミニダイス,ミニダイスへ右,中央でプレイヤー得点を枠内文字描画。

  違えば
    得点表示x=コンピューターx+20+(ミニダイス+10)*2
    得点表示y=マージン*2+10+(ミニダイス+10)*((カウント-1)/2)
    母艦の得点表示x,得点表示y,ミニダイス,ミニダイスへ右,中央でコンピューター得点を枠内文字描画。
#------------------------------------------------------------
*勝敗判定
  #6ゾロでの上がりは累計での上がりに優先する
  もし、六ゾロ=1ならば        #プレイヤーが6ゾロ
    「勝ち」で勝敗表示。「プレイヤー6ゾロ勝利」で勝敗メッセージ表示。
  違えばもし、六ゾロ=2ならば    #コンピューターが6ゾロ
    「負け」で勝敗表示。「コンピューター6ゾロ勝利」で勝敗メッセージ表示。
  違えばもし、六ゾロ=3ならば    #プレイヤーもコンピューターも6ゾロ
    「引き分け」で勝敗表示。「双方6ゾロ」で勝敗メッセージ表示。

  #プレイヤーもコンピューターも6ゾロではない
  違えば
    もし、(プレイヤー得点>=36)ならば        #プレイヤーの点数が36かそれ以上で
      もし、(コンピューター得点<36)ならば        #コンピューターがそれ以下ならば
        「勝ち」で勝敗表示。「プレイヤー勝利」で勝敗メッセージ表示。
      違えばもし、(コンピューター得点>=36)ならば   #コンピューターの点数も36かそれ以上なら
        もし、(プレイヤー罰点<コンピューター罰点)ならば    #罰点のより少ない方が勝ちとなり
          「勝ち」で勝敗表示。「プレイヤー勝利2」で勝敗メッセージ表示。
        違えばもし、(プレイヤー罰点>コンピューター罰点)ならば
          「負け」で勝敗表示。「コンピューター勝利2」で勝敗メッセージ表示。
        違えば                          #それも同じならば引き分け
          「引き分け」で勝敗表示。「引き分け」で勝敗メッセージ表示。
    違えばもし、(コンピューター得点>=36)ならば  #プレイヤーの点数が36に満たずコンピューターの点数が36かそれ以上
      「負け」で勝敗表示。「コンピューター勝利」で勝敗メッセージ表示。
    違えば                        #10でどちらも36を越えなかった場合
      「引き分け」で勝敗表示。「無効試合」で勝敗メッセージ表示。

  六ゾロ=0
  ボタンAのテキストは「もう一度?」
  ボタンフラグ=4

*勝敗表示(Sで)
  ダイストレイを母艦のトレイx,トレイyへ画像コピー。
  文字書体は「MS ゴシック|32|太字」。
  勝敗表示x=(トレイ幅/2)-(Sの文字幅取得/2)+トレイx
  勝敗表示y=トレイy+10
  もし、S=「勝ち」ならば、
    文字色白色母艦の勝敗表示x+2,勝敗表示y+2へ「勝ち」を文字描画。
    文字色赤色母艦の勝敗表示x,勝敗表示yへ「勝ち」を文字描画。
  違えばもし、S=「負け」ならば、
    文字色白色母艦の勝敗表示x+2,勝敗表示y+2へ「負け」を文字描画。
    文字色青色母艦の勝敗表示x,勝敗表示yへ「負け」を文字描画。
  違えばもし、S=「引き分け」ならば、
    文字色白色母艦の勝敗表示x+2,勝敗表示y+2へ「引き分け」を文字描画。
    文字色は$777777。母艦の勝敗表示x,勝敗表示yへ「引き分け」を文字描画。

*勝敗メッセージ表示(Sで)
  文字色白色文字書体は「MS ゴシック|18|太字」。#12文字表示できる
  勝敗表示x=トレイx+30
  勝敗表示y=トレイy+80
  もし、S=「プレイヤー6ゾロ勝利」ならば
    母艦の勝敗表示x,勝敗表示yへ「おめでとう!{改行}6ゾロで{プレイヤー名}の{改行}完全勝利!!」を文字描画。
  もし、S=「コンピューター6ゾロ勝利」ならば
    母艦の勝敗表示x,勝敗表示yへ「残念!!{改行}6ゾロで{コンピューター名}の{改行}完全勝利!」を文字描画。
  もし、S=「双方6ゾロ」ならば
    母艦の勝敗表示x,勝敗表示yへ「双方6ゾロで引き分けです」を文字描画。
  もし、S=「プレイヤー勝利」ならば
    母艦の勝敗表示x,勝敗表示yへ「おめでとう!{改行}{プレイヤー名}の勝ち!!」を文字描画。
  もし、S=「プレイヤー勝利2」ならば
    母艦の勝敗表示x,勝敗表示yへ「{プレイヤー名}の罰点{プレイヤー罰点}点{改行}{コンピューター名}の罰点{コンピューター罰点}点で{改行}{プレイヤー名}の勝ち!」を文字描画。
  もし、S=「コンピューター勝利」ならば
    母艦の勝敗表示x,勝敗表示yへ「残念!!{改行}{コンピューター名}の勝ち!」を文字描画。
  もし、S=「コンピューター勝利2」ならば
    母艦の勝敗表示x,勝敗表示yへ「{プレイヤー名}の罰点{プレイヤー罰点}点{改行}{コンピューター名}の罰点{コンピューター罰点}点で{改行}{コンピューター名}の勝ち!」を文字描画。
  もし、S=「引き分け」ならば
    母艦の勝敗表示x,勝敗表示yへ「引き分けです」を文字描画。
  もし、S=「無効試合」ならば
    母艦の勝敗表示x,勝敗表示yへ「残念でした。{改行}10で決着がつかず{改行}無効試合となります。」を文字描画。
  Sでメッセージ表示。
#------------------------------------------------------------
*プレイヤー手番
  カウント=カウント+1
  ボタンAの有効はオフ。
  ボタンAのテキストは「ダイスを振る」  
  ダイストレイを母艦のトレイx,トレイyへ画像コピー。
  「プレイヤーの手番」でメッセージ表示。
  ボタンAの有効はオン。

*コンピューター手番
  カウント=カウント+1
  ボタンAの有効はオフ。
  ダイストレイを母艦のトレイx,トレイyへ画像コピー。
  「コンピューターの手番」でメッセージ表示。
  サイコロ振る。得点計算。得点加算。
#------------------------------------------------------------
*メッセージ表示(Sで)
  テキストウィンドウを母艦のテキストウィンドウx,テキストウィンドウyへ画像コピー。
  文字色白色文字書体は「MS ゴシック|18|太字」。
  メッセージx=マージン+30。一行目=テキストウィンドウy+30。二行目=テキストウィンドウy+60。
  名前x=マージン。名前y=テキストウィンドウy+5。
  セリフ一行目=テキストウィンドウy+40。セリフ二行目=テキストウィンドウy+70。
  もし、S=「挨拶」ならば
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    ナコ様表示。
    母艦のメッセージx,セリフ一行目へ「こんにちは、{プレイヤー名}!」をメッセージ速度で文字遅延描画。
    母艦のメッセージx,セリフ二行目へ「よろしくね☆」をメッセージ速度で文字遅延描画。
  もし、S=「ゲーム開始」ならば
    ナコ様表示。
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    母艦のメッセージx,セリフ一行目へ「それでは始めよう!」をメッセージ速度で文字遅延描画。
    母艦のメッセージx,セリフ二行目へ「準備はいいかな?」をメッセージ速度で文字遅延描画。 
  もし、S=「プレイヤーの手番」ならば、
    ナコ様表示。
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    母艦のメッセージx,セリフ一行目へ「{プレイヤー名}の番だよ。」をメッセージ速度で文字遅延描画。
    母艦のメッセージx,セリフ二行目へ「ダイスを振ってね。」をメッセージ速度で文字遅延描画。
  もし、S=「コンピューターの手番」ならば、
    ナコ様表示。
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    母艦のメッセージx,セリフ一行目へ「僕の番だね。」をメッセージ速度で文字遅延描画。
    0.5秒待つ。
    母艦のメッセージx,セリフ二行目へ「………… ………… ………… …………」をメッセージ速度で文字遅延描画。
    0.5秒待つ。
    ナコ様の可視はオフ。

  もし、S=「プレイヤー出目」ならば、
    母艦のメッセージx,一行目へ「出目は{得点}です。」をメッセージ速度で文字遅延描画。
    母艦のメッセージx,二行目へ「{プレイヤー名}の点数は{プレイヤー得点}点になりました。」をメッセージ速度で文字遅延描画。
  もし、S=「プレイヤーゾロ目」ならば、
    母艦のメッセージx,一行目へ「{出目¥0}ゾロです。得点は{得点}点。」をメッセージ速度で文字遅延描画。
    母艦のメッセージx,二行目へ「{プレイヤー名}の点数は{プレイヤー得点}点になりました。」をメッセージ速度で文字遅延描画。
  もし、S=「プレイヤー6ゾロ」ならば、
    母艦のメッセージx,一行目へ「6ゾロです!!」をメッセージ速度で文字遅延描画。
    母艦のメッセージx,二行目へ「{コンピューター名}が6ゾロ以外なら{プレイヤー名}の勝ち!」をメッセージ速度で文字遅延描画。
  もし、S=「プレイヤー1ゾロ」ならば、
    母艦のメッセージx,一行目へ「残念!1ゾロです!!」をメッセージ速度で文字遅延描画。
    母艦のメッセージx,二行目へ「{プレイヤー名}の点数が0点になりました。」をメッセージ速度で文字遅延描画。
  もし、S=「コンピューター出目」ならば、
    母艦のメッセージx,一行目へ「出目は{得点}です。」をメッセージ速度で文字遅延描画。
    母艦のメッセージx,二行目へ「{コンピューター名}の点数は{コンピューター得点}点になりました。」をメッセージ速度で文字遅延描画。
  もし、S=「コンピューターゾロ目」ならば、
    母艦のメッセージx,一行目へ「{出目¥0}ゾロです。得点は{得点}点。」をメッセージ速度で文字遅延描画。
    母艦のメッセージx,二行目へ「{コンピューター名}の点数は{コンピューター得点}点になりました。」をメッセージ速度で文字遅延描画。
  もし、S=「コンピューター6ゾロ」ならば、
    母艦のメッセージx,一行目へ「{コンピューター名}が、6ゾロを出しました!!」をメッセージ速度で文字遅延描画。
  もし、S=「コンピューター1ゾロ」ならば、
    母艦のメッセージx,一行目へ「1ゾロです!!」をメッセージ速度で文字遅延描画。
    母艦のメッセージx,二行目へ「{コンピューター名}の点数が0点になりました。」をメッセージ速度で文字遅延描画。

  もし、S=「プレイヤー6ゾロ勝利」ならば
    ナコ様表示。
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    母艦のメッセージx,セリフ一行目へ「ま、負けました・・・」をメッセージ速度で文字遅延描画。
  もし、S=「コンピューター6ゾロ勝利」ならば
    ナコ様表示。
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    母艦のメッセージx,セリフ一行目へ「圧勝だね」をメッセージ速度で文字遅延描画。
  もし、S=「双方6ゾロ」ならば
    ナコ様表示。
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    母艦のメッセージx,セリフ一行目へ「惜しい!」をメッセージ速度で文字遅延描画。
  もし、S=「プレイヤー勝利」ならば
    ナコ様表示。
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    母艦のメッセージx,セリフ一行目へ「ちくしょ~」をメッセージ速度で文字遅延描画。
  もし、S=「プレイヤー勝利2」ならば
    ナコ様表示。
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    母艦のメッセージx,セリフ一行目へ「悔しい~」をメッセージ速度で文字遅延描画。
  もし、S=「コンピューター勝利」ならば
    ナコ様表示。
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    母艦のメッセージx,セリフ一行目へ「ひゃっほう!」をメッセージ速度で文字遅延描画。
  もし、S=「コンピューター勝利2」ならば
    ナコ様表示。
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    母艦のメッセージx,セリフ一行目へ「やったね!」をメッセージ速度で文字遅延描画。
  もし、S=「引き分け」ならば
    ナコ様表示。
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    母艦のメッセージx,セリフ一行目へ「引き分けか・・・」をメッセージ速度で文字遅延描画。
  もし、S=「無効試合」ならば
    ナコ様表示。
    母艦の名前x,名前yへ「【{コンピューター名}】」を文字描画。
    母艦のメッセージx,セリフ一行目へ「なんと?!」をメッセージ速度で文字遅延描画。
#------------------------------------------------------------
*ナコ様表示
  ナコ様のX=母艦のクライアント幅-ナコ様の幅。
  ナコ様のY=母艦のクライアント高さ-ナコ様の高さ。
  ナコ様の可視はオン。ナコ様を最前面表示。
#------------------------------------------------------------
*サイコロ準備({グループ}imgにSで)
  imgをイメージとして作成。
  img→可視はオフ。
  img→幅はS\0*6
  img→高さはS\0
  imgを$00FF00で画面クリア。    #透過色
  目サイズ=S\0/8。
  6
    色設定とは配列。色設定=S\回数。
    線色は色設定¥0。塗り色は色設定¥1。
    外枠(img,S\0)
    線色は色設定¥2。塗り色は色設定¥2。
    もし回数=1ならば
      半径=目サイズ+S\0/40。
      中点(img,S\0)。
    もし回数=2ならば
      半径=目サイズ。
      左上点(img,S\0)。右下点(img,S\0)。
    もし回数=3ならば
      半径=目サイズ。
      中点(img,S\0)。左上点(img,S\0)。右下点(img,S\0)。
    もし回数=4ならば
      半径=目サイズ。
      左上点(img,S\0)。左下点(img,S\0)。右上点(img,S\0)。右下点(img,S\0)。
    もし回数=5ならば
      半径=目サイズ。
      中点(img,S\0)。左上点(img,S\0)。左下点(img,S\0)。右上点(img,S\0)。右下点(img,S\0)。
    もし回数=6ならば
      半径=目サイズ-S\0/80。
      左上点(img,S\0)。左下点(img,S\0)。右上点(img,S\0)。右下点(img,S\0)。左中点(img,S\0)。右中点(img,S\0)。

*外枠({グループ}img,S)
  x=(回数-1)*S。y=0。
  x2=x+S。y2=S。
  imgのx,yからx2,y2へ四角。

*中点({グループ}img,S)
  xx=(x+S/2)-半径。yy=S/2-半径
  xx2=(x+S/2)+半径。yy2=S/2+半径。
  imgのxx,yyからxx2,yy2へ。

*左上点({グループ}img,S)
  xx=(x+S/4)-半径。yy=S/4-半径
  xx2=(x+S/4)+半径。yy2=S/4+半径。
  imgのxx,yyからxx2,yy2へ。

*左下点({グループ}img,S)
  xx=(x+S/4)-半径。yy=(S/4)*3-半径
  xx2=(x+S/4)+半径。yy2=(S/4)*3+半径。
  imgのxx,yyからxx2,yy2へ。

*右上点({グループ}img,S)
  xx=(x+S/4*3)-半径。yy=S/4-半径
  xx2=(x+S/4*3)+半径。yy2=S/4+半径。
  imgのxx,yyからxx2,yy2へ。

*右下点({グループ}img,S)
  xx=(x+S/4*3)-半径。yy=(S/4)*3-半径
  xx2=(x+S/4*3)+半径。yy2=(S/4)*3+半径。
  imgのxx,yyからxx2,yy2へ。

*左中点({グループ}img,S)
  xx=(x+S/4)-半径。yy=S/2-半径
  xx2=(x+S/4)+半径。yy2=S/2+半径。
  imgのxx,yyからxx2,yy2へ。

*右中点({グループ}img,S)
  xx=(x+S/4*3)-半径。yy=S/2-半径
  xx2=(x+S/4*3)+半径。yy2=S/2+半径。
  imgのxx,yyからxx2,yy2へ。
#------------------------------------------------------------
*遊び方
  ダイアログタイトルは「36(Thirty-six)について」
  「【36(Thirty-six)のルール】
   二人で交互に六面ダイス二個を振り合い、点数を累計してゆきます。
   二個の目の和が、のまま点数になり、ゾロ目の場合は二個の目のが点数と
  なりますが、1ゾロの場合はそれまでの点数の累計がクリアされ0点になります。
   早く36点に達した方が勝ちとなりますが、先攻後攻はなく両者同じ回数だけ
  ダイスを振ることが出来るため、双方同時に上がった場合は、36を越えた分が
  罰点となり、より罰点の少ない方が勝ちとなります。
   なお、6ゾロで上がった場合は、36点ぴったりでの上がりとなり罰点はなく、
  また、通常の累計での上がりに優先します。
   罰点も同数の場合や両者ともに6ゾロで上がった場合は、引き分けとなります。」と言う
#------------------------------------------------------------
*バージョン
  ダイアログタイトルは「バージョン情報」
  「{二重カッコ}36(Thirty-six){二重カッコ閉じ}{改行}  Version 1.03{改行}{改行} by 雪乃☆雫」と言う。
#------------------------------------------------------------
●枠内文字描画({グループ=?}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を文字描画。
#------------------------------------------------------------

 やっぱり、こうゆう単純なゲームは、自分でサイコロを振ってこ、相手が人であってこって部分があるよねぇ。

 しかし、の時代は各々スマホのアプリって感じで、みんなでこういった埒もない暇つぶしの遊びをしたりはもうしないんだろうね・・・

 なこ様がもう少し、出目に対して一喜一憂した方が、少しは人っぽくて面白いかとも思ったけど、所詮は焼け石に水っていうか、色々メッセージを考えるのがもうさすがに面倒になったていうか、場合によっちゃむしろ腹立つっていうかなので、やめた~www

 画像合成を使わず、画面の書き換えもしなくて済むように、画像通り変形したフォームを重ねてみたんだけど、このなこ様で、デスクトップマスコットを作ってみたらどうだろう。

 またまたひらめいてしまったw(だから、なでコラはどうした;)

 次は、なでコラです(予定)

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

2016/05/16 (月)

勝敗判定

| 08:57 | 勝敗判定 - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - 勝敗判定 - 雪乃☆雫のなでしこ日和 勝敗判定 - 雪乃☆雫のなでしこ日和 のブックマークコメント

 昨日買い物に行った時、ついでに探してみたら、なるほどサイコロキャラメルはどこにも無かった。

 ってか、ついこないだまでは、ふつーにあったような気がするから、やっぱりYahoo!ニュースに載ったがために、みんな買いに走ったのだろうか。

 人って愚かだな・・・(自分のことでしょ!)



 ・・・さて、実際にやればんな難しいことは無いんだけど、単に、累計点数が先に上ったら勝ちという場合と比べて、勝敗のパターンが結構多いです。

 ざっと書き出してみます。

●6ゾロは全てに優先します
・プレイヤーが6ゾロ=プレイヤーの勝ち
・コンピューターが6ゾロ=コンピューターの勝ち
・双方6ゾロ=引き分け

●ふつーに累計で勝負がつく場合
・プレイヤーが36をえ、コンピューターは36未満=プレイヤーの勝ち
・コンピューターが36をえ、プレイヤーは36未満=コンピューターの勝ち

●プレイヤーもコンピューターも、ともに36をえた場合
◎罰点(累計得点-36)の少ない方が勝ち
・プレイヤーの罰点<コンピューターの罰点=プレイヤーの勝ち
・プレイヤーの罰点>コンピューターの罰点=コンピューターの勝ち
・罰点まで同じ=引き分け

●無効試合
 ふつーにサイコロで遊んでいた時にはの制度はなかったのですが、、
得点表示するスペースの都合により、10で勝負が決まらなければ無効試合
とします。
 滅多にんなことないけど、絶妙なタイミングで双方1ゾロしたりすると、
起こりえます。

 して、これをプログラムにすると、こんな感じ。

#------------------------------------------------------------
*勝敗判定
  ダイアログタイトルは「勝敗判定」
  #6ゾロでの上がりは累計での上がりに優先する
  もし、六ゾロ=1ならば        #プレイヤーが6ゾロ
    「おめでとう!{改行}6ゾロで{プレイヤー名}の勝ち!!」を言う。

  違えばもし、六ゾロ=2ならば    #コンピューターが6ゾロ
    「残念!!{改行}6ゾロで{コンピューター名}の勝ち!」を言う。

  違えばもし、六ゾロ=3ならば    #プレイヤーもコンピューターも6ゾロ
    「双方6ゾロで引き分けです」を言う。

  #プレイヤーもコンピューターも6ゾロではない
  違えば
    もし、(プレイヤー得点>=36)ならば          #プレイヤーの点数が36かそれ以上で
      もし、(コンピューター得点<36)ならば          #コンピューターがそれ以下ならば
        「おめでとう!{改行}{プレイヤー名}の勝ち!!」を言う。
      
      違えばもし、(コンピューター得点>=36)ならば      #コンピューターの点数も36かそれ以上なら
        もし、(プレイヤー罰点<コンピューター罰点)ならば    #罰点のより少ない方が勝ちとなり
          「{プレイヤー名}の罰点{プレイヤー罰点}点{改行}{コンピューター名}の罰点{コンピューター罰点}点で{改行}{プレイヤー名}の勝ち!」を言う。

        違えばもし、(プレイヤー罰点>コンピューター罰点)ならば
          「{プレイヤー名}の罰点{プレイヤー罰点}点{改行}{コンピューター名}の罰点{コンピューター罰点}点で{改行}{コンピューター名}の勝ち!」を言う。

        違えば                          #それも同じならば引き分け
          「引き分けです」を言う。

    違えばもし、(コンピューター得点>=36)ならば    #プレイヤーの点数が36に満たずコンピューターの点数が36かそれ以上
      「残念!!{改行}{コンピューター名}の勝ち!」を言う。

    違えば                          #10でどちらも36を越えなかった場合
      「残念でした。{改行}10で決着がつかず{改行}無効試合となります。」を言う。

  ボタンAのテキストは「もう一度?」
#------------------------------------------------------------

 これで、いちおう遊べて、勝ち負けも判定して言ってもらえるようになったけど、未だ活用されていないテキストウィンドウに、は言わせているメッセージを表示したり、ちょぼいちの時みたく、相手のコンピューターに何かしゃべらせたりする予定。

 あと、コンピューターがサイコロを振る時も、自分でダイスを振るボタンを押してやらなければならないってのは、いかがなものか。

 この辺を手直しすれば、とりあえずは完成と言えるかな?

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

2016/05/13 (金)

サイコロキャラメルを振るよ!

| 21:29 | サイコロキャラメルを振るよ! - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - サイコロキャラメルを振るよ! - 雪乃☆雫のなでしこ日和 サイコロキャラメルを振るよ! - 雪乃☆雫のなでしこ日和 のブックマークコメント

 ある意味本題(爆)の、サイコロキャラメルが振れるようになりましたw

 別に、んなに再現性は高くないし、もちろん明治のロゴとか入ってるわけじゃなく、単なる赤白のサイコロってだけなんですけれどねぇ~www

 結局、全部の色設定を配列にして引数にすることにした~。

 サイコロキャラメルは、全部の面の色が同じカラーリングなんだから、こんな必要ないじゃんとか、角丸じゃないから画像合成通の必要ないじゃんとかゆう野暮なツッコミは不可です!

 おもちゃみたいな、全面色違いのサイコロとかも作りたいんだよ~ん。


 そうそう、普通の一般的なサイコロの、1の目が赤いのは、日の丸に見立てたものなんだって!

 日本だけだったんだね・・・

 まめちしきぃ~。

 ちなみに、そうなったのは大正時代のことらしいから、もし時代劇の丁半博打の場で、目の赤いサイコロが使われていたら、早速テレビ局に電話しなきゃ!(爆)

#サイコロキャラメル

#-----母艦設計-----------------------------------------------
!母艦設計=「母艦の可視はオフ母艦のタイトルは「2Dを振る」
母艦のクライアント幅は640。母艦のクライアント高さは480。
母艦を$006600で画面クリア母艦のスタイルは「枠固定」
母艦オフに最大化ボタン有効変更。
母艦中央移動。
#------------------------------------------------------------

#-----宣言---------------------------------------------------
ダイスサイズとは整数=80

サイコロ一般とは配列。 #サイズ{~}線色,地色,点色{~}...
サイコロ一般=「{ダイスサイズ}
{黒色},{白色},{赤色}
{黒色},{白色},{黒色}
{黒色},{白色},{黒色}
{黒色},{白色},{黒色}
{黒色},{白色},{黒色}
{黒色},{白色},{黒色}」

サイコロ赤とは配列。
サイコロ赤=「{ダイスサイズ}
{黒色},{赤色},{白色}
{黒色},{赤色},{白色}
{黒色},{赤色},{白色}
{黒色},{赤色},{白色}
{黒色},{赤色},{白色}
{黒色},{赤色},{白色}」

サイコロ白とは配列。
サイコロ白=「{ダイスサイズ}
{黒色},{白色},{赤色}
{黒色},{白色},{赤色}
{黒色},{白色},{赤色}
{黒色},{白色},{赤色}
{黒色},{白色},{赤色}
{黒色},{白色},{赤色}」

サイコロ虹とは配列。
サイコロ虹=「{ダイスサイズ}
{$330000},{$FFBBBB},{$CC3333}
{$003300},{$BBFFBB},{$33CC33}
{$000033},{$BBBBFF},{$3333CC}
{$330033},{$FFBBFF},{$CC33CC}
{$333300},{$FFFFBB},{$CCCC33}
{$003333},{$BBFFFF},{$33CCCC}」

#---サイコロ用イメージ----
線太さ=1
ダイス用¥1にサイコロ赤でサイコロ準備
ダイス用¥2にサイコロ白でサイコロ準備

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

#---サイコロ振るボタン----
ボタンAとはボタンの可視はオンの幅は110。の高さは35。
のXは母艦のクライアント幅/2-ボタンAの幅/2。のYは母艦の高さ-100。
のテキストは「サイコロを振る」

ボタンAをクリックした時は~
  サイコロ振る。
#------------------------------------------------------------

#-----メインルーチン-----------------------------------------
母艦の可視はオン乱数初期化。

サイコロ振る
#------------------------------------------------------------

#------------------------------------------------------------
*サイコロ振る
  処理用をダイスサイズ,ダイスサイズへ画像高速リサイズ。
  2
    r=6の乱数。出目¥(回数-1)=r+1。
    x=r*ダイスサイズ。y=0。
    ダイス用¥回数のx,y,ダイスサイズ,ダイスサイズを処理用の0,0へ画像部分コピー。
    処理用を母艦の((母艦のクライアント幅/4)*(回数))-(ダイスサイズ/2)+(母艦のクライアント幅/8),(母艦のクライアント高さ/2)-(ダイスサイズ/2)へ画像合成通。
#------------------------------------------------------------
*サイコロ準備({グループ}imgにSで)
  imgをイメージとして作成。
  img→可視はオフ。
  img→幅はS\0*6
  img→高さはS\0
  imgを$00FF00で画面クリア。    #透過色
  目サイズ=S\0/8。
  6
    色設定とは配列。色設定=S\回数。
    線色は色設定¥0。塗り色は色設定¥1。
    外枠(img,S\0)
    線色は色設定¥2。塗り色は色設定¥2。
    もし回数=1ならば
      半径=目サイズ+S\0/40。
      中点(img,S\0)。
    もし回数=2ならば
      半径=目サイズ。
      左上点(img,S\0)。右下点(img,S\0)。
    もし回数=3ならば
      半径=目サイズ。
      中点(img,S\0)。左上点(img,S\0)。右下点(img,S\0)。
    もし回数=4ならば
      半径=目サイズ。
      左上点(img,S\0)。左下点(img,S\0)。右上点(img,S\0)。右下点(img,S\0)。
    もし回数=5ならば
      半径=目サイズ。
      中点(img,S\0)。左上点(img,S\0)。左下点(img,S\0)。右上点(img,S\0)。右下点(img,S\0)。
    もし回数=6ならば
      半径=目サイズ-S\0/80。
      左上点(img,S\0)。左下点(img,S\0)。右上点(img,S\0)。右下点(img,S\0)。左中点(img,S\0)。右中点(img,S\0)。

*外枠({グループ}img,S)
  x=(回数-1)*S。y=0。
  x2=x+S。y2=S。
//  imgのx,yからx2,y2へS/3,S/3で角丸四角。
  imgのx,yからx2,y2へ四角。

*中点({グループ}img,S)
  xx=(x+S/2)-半径。yy=S/2-半径
  xx2=(x+S/2)+半径。yy2=S/2+半径。
  imgのxx,yyからxx2,yy2へ。

*左上点({グループ}img,S)
  xx=(x+S/4)-半径。yy=S/4-半径
  xx2=(x+S/4)+半径。yy2=S/4+半径。
  imgのxx,yyからxx2,yy2へ。

*左下点({グループ}img,S)
  xx=(x+S/4)-半径。yy=(S/4)*3-半径
  xx2=(x+S/4)+半径。yy2=(S/4)*3+半径。
  imgのxx,yyからxx2,yy2へ。

*右上点({グループ}img,S)
  xx=(x+S/4*3)-半径。yy=S/4-半径
  xx2=(x+S/4*3)+半径。yy2=S/4+半径。
  imgのxx,yyからxx2,yy2へ。

*右下点({グループ}img,S)
  xx=(x+S/4*3)-半径。yy=(S/4)*3-半径
  xx2=(x+S/4*3)+半径。yy2=(S/4)*3+半径。
  imgのxx,yyからxx2,yy2へ。

*左中点({グループ}img,S)
  xx=(x+S/4)-半径。yy=S/2-半径
  xx2=(x+S/4)+半径。yy2=S/2+半径。
  imgのxx,yyからxx2,yy2へ。

*右中点({グループ}img,S)
  xx=(x+S/4*3)-半径。yy=S/2-半径
  xx2=(x+S/4*3)+半径。yy2=S/2+半径。
  imgのxx,yyからxx2,yy2へ。
#------------------------------------------------------------
●画像合成通({グループ}コピー元を{数値=$00FF00}透過色で{グループ}コピー先のX,Yへ)
  # マスクの作成(キャラの透過部分が白、表示部分が黒の画像)
  マスク画像をイメージとして作成。マスク画像の可視はオフ。
  マスク画像→画像はコピー元→名前
  マスク画像を透過色で画像マスク作成

  # キャラの透過色部分を黒に変換
  # はじめからキャラの透過色を黒にすると髪や目や文字に黒が使用出来なくなる
  キャラ画像をイメージとして作成。キャラ画像の可視はオフ
  キャラ画像→画像はコピー元→名前
  マスク画像を画像ネガポジ
  マスク画像をキャラ画像の0,0へ画像ANDコピー
  マスク画像を画像ネガポジ

  # 合成実行
  マスク画像をコピー先のX,Yへ画像ANDコピー
  キャラ画像をコピー先のX,Yへ画像ORコピー
 
  VCL_FREE(マスク画像)
  VCL_FREE(キャラ画像)
#------------------------------------------------------------

 なにがでるかな? なにがでるかな? .... .... ....

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

2016/05/12 (木)

基本的な機能は完成

| 19:24 | 基本的な機能は完成 - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - 基本的な機能は完成 - 雪乃☆雫のなでしこ日和 基本的な機能は完成 - 雪乃☆雫のなでしこ日和 のブックマークコメント

 前に作った、2Dを振るプログラムと合体させるだけで、実際にボタンAを押したら、サイコロが振れるようになります。

 前、実はこまで出来てはいたんだけど、ダイスの見た目をサイコロキャラメルに合わせたらどうかしらとか、しょーもないことを考えていたんだよね。

 サイコロ準備の線色塗り色を変えれば、ダイスの色は簡単に変更出来るのだけれど、2Dを別々の色で表示することまでは考えていなかった。

 2Dを赤白にするためには、サイコロ用の裏画面を2つ用意しなくちゃならないし、サイコロ準備の色指定はのところ決め打ちなので・・・もちろん、サイコロ準備をコピペして赤白2色分作れば簡単にできるんだけど、それをやったら負けでしょ(?)

 かといって、全部の色設定を引数にするってのもねぇ~。一体いくつ引数がつくことになるんだよ・・・(--;

 なにか、スマートな良い方法はないもんか・・・と考えていたんだけど、よく考えたらもサイコロ準備自体が全くスマートじゃないんだから、ダメだこりゃ;・・・とゆうことに気が付いたので、とりあえず一旦保留にして、元のふつーのダイスのままで先に進むことにした(爆)


 さて、得点計算は、前書いた通り、6ゾロならぴったり36点、1ゾロなら0点。それ以外のゾロ目は、二つの目の、普通の出目なら二つの目の和。

 得点加算で、この計算結果を、プレイヤー得点と、コンピューター得点に、っくり同じ手順で代入しているのは、いかにも無駄っぽいけれど、気にしないで!;;;

 得点表示では、この加算結果をタダ表示するだけだとつまらないので、小さく縮小したサイコロの画像で、実際の出目を一緒に表示することにした。

#・手番交代、得点計算、得点とミニダイスの表示

#-----2Dを振る---------------------------------------------
*サイコロ振る
  カウント=カウント+1
  2
    処理用をダイスサイズ,ダイスサイズへ画像高速リサイズ。
    r=6の乱数。出目¥(回数-1)=r+1。
    x=r*ダイスサイズ。y=0。
    裏画面のx,y,ダイスサイズ,ダイスサイズを処理用の0,0へ画像部分コピー。
    処理用を母艦のトレイx+((トレイ幅/3)*回数-ダイスサイズ/2),トレイy+(トレイ高さ/2-ダイスサイズ/2)へ画像合成通。

    # 得点表示用にミニダイスを表示
    処理用をミニダイス,ミニダイスへ画像リサイズ。
    もし、手番=プレイヤーならば
      得点表示x=プレイヤーx+10+(ミニダイス+10)*(回数-1)
      得点表示y=マージン*2+10+(ミニダイス+10)*(カウント/2)
      処理用を母艦の得点表示x,得点表示yへ画像合成通。
    違えば
      得点表示x=コンピューターx+10+(ミニダイス+10)*(回数-1)
      得点表示y=マージン*2+10+(ミニダイス+10)*((カウント-1)/2)
      処理用を母艦の得点表示x,得点表示yへ画像合成通。
#------------------------------------------------------------
*得点計算
  もし、(出目¥0)=(出目¥1)ならば   # ゾロ目
    もし、(出目¥0)=6ならば      # 6ゾロ
      得点=36。
      文字色赤色。
    違えばもし、(出目¥0)=1ならば  # 1ゾロ
      得点=0。
      文字色青色。
    違えば                 # の他のゾロ目
      得点=出目¥0*出目¥1。
      文字色黒色。
  違えば                   # 平目
    得点=出目¥0+出目¥1。
    文字色黒色。

*得点加算
  もし、手番=プレイヤーならば
    もし、得点=36または得点=0ならば
      プレイヤー得点=得点
      得点表示。
    違えば
      プレイヤー得点=プレイヤー得点+得点
      もし、プレイヤー得点>=36ならば
        文字色赤色。
        プレイヤー罰点=プレイヤー得点-36
      得点表示。
    手番=コンピューター。

  違えば
    もし、得点=36または得点=0ならば
      コンピューター得点=得点
      得点表示。
    違えば
      コンピューター得点=コンピューター得点+得点
      もし、コンピューター得点>=36ならば
        文字色赤色。
        コンピューター罰点=コンピューター得点-36
      得点表示。
    
    # 勝負がついたかどうかを確認
    もし、(プレイヤー得点>=36)または(コンピューター得点>=36)ならば
      ボタンAのテキストは「勝敗判定」
      の有効はオフ。
    違えばもし、カウント=19ならば  # 得点表示用に表示出来る上限が10なので
      ボタンAのテキストは「無効試合」
      の有効はオフ。
    違えば
      手番=プレイヤー。

*得点表示
  文字書体は「MS ゴシック|16|太字」。
  もし、手番=プレイヤーならば
    得点表示x=プレイヤーx+20+(ミニダイス+10)*2
    得点表示y=マージン*2+10+(ミニダイス+10)*(カウント/2)
    母艦の得点表示x,得点表示y,ミニダイス,ミニダイスへ右,中央でプレイヤー得点を枠内文字描画。

  違えば
    得点表示x=コンピューターx+20+(ミニダイス+10)*2
    得点表示y=マージン*2+10+(ミニダイス+10)*((カウント-1)/2)
    母艦の得点表示x,得点表示y,ミニダイス,ミニダイスへ右,中央でコンピューター得点を枠内文字描画。

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

 とりあえず、今日ここまで。

 一応、もう一通りは遊べるようになりました。

 得点表示の部分を見れば、別に一目で勝ち負けも分かるけど、やはりちゃんとプログラムのほうで判定して、言って欲しいところ。

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

2016/05/10 (火)

新幹線とサイコロキャラメルと

| 14:38 | 新幹線とサイコロキャラメルと - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - 新幹線とサイコロキャラメルと - 雪乃☆雫のなでしこ日和 新幹線とサイコロキャラメルと - 雪乃☆雫のなでしこ日和 のブックマークコメント

 連休中に北海道新幹見てきた!(乗ったわけではない;)

 東京まで、4時2分なんだってさ。在来の札幌函館とほとんど変わらんね(驚)

 でも、札幌まで延伸されるまでは、もう見る機会ないかも~;;;

f:id:snowdrops89:20160510143447j:image


 それはさておき、明治のサイコロキャラメルが販売終了ってマヂか?!

 水曜どうでしょうのサイコロの旅は、一体どうなるんだ?!

 ・・・じゃなくて、長い汽車旅のの、心の友じゃないか~!!

 (ワタシのサイコロ好きは、TRPG以前に、ここから始まっている)


 ・・・とゆうわけで、当時汽車の中でサイコロキャラメルを使って盛り上がったゲームを作るよ!(なでこらはどうした?!)

 前に2Dを振ってみたのを利用して、折角だから2Dを使ったサイコロゲームにしてみようと思う。

 2Dを使うといえば、当然っ先に思い浮かぶのが時代劇でおなじみの丁半博打ですが、ゲームとして考えると、ちょぼいちと同じ、数当て遊びなんだよね。

 しかもちょぼいちでは、1~6の出目を当てるのに対して、丁半は結局、当てるのは偶数か奇数の二択なんで、実際の博打となればまた違うかも知れないけど、コンピューターゲームとしては単調でたいして面白くもないだろう。

 2Dを使った遊びは他にも色々ありますが、は「36(Thirty-six)」の予定。

 とりあえずこれは、簡単に言えば、二人で2Dを振り合い、点数を累計していき、早く36になった方が勝ちというゲーム。

 同様の、得点累計型のダイスゲームに、「21(Twenty-one)」と「50(Fifty)」ってのがあり、どうもこの2つのほうが有名みたいだ。

 しかも、うちのは何かローカルルールなのか、検索してみると色々うちのとは違うことが書いてあったりもするんだけど、いいんだい!

 ちょっとユキノ家ルールを整理してみる。

【21(Twenty-one)】
 二人で交互に六面ダイス二個を振り合い、二合計が21に近い方が勝ち。
 ただし、21を越えたらバスト(アウト)という、ダイス版ブラックジャック。
 双方二振り終えた段階で、どちらもバストしていなければ、出目の少ない側が、
ヒットする(もう一振る)かどうか選択できます。
 ヒットされた場合、もう一方は、の出目が17以上ならスタンドする(振らない)
こともできますが、17未満なら必ず振らねばなりません。
 ヒットした側は、最大3までヒットし続けることができ、もう一方は、自分が17
を越えたらスタンドするかどうか選択できるようになります。
 ただし一度スタンドしたらそれ以降は、相手が何ヒットしても、もう振れません。
【36(Thirty-six)】
 二人で交互に六面ダイス二個を振り合い、点数を累計してゆきます。
 2個の目の和が、のまま点数になり、ゾロ目の場合は2個の目のが点数と
なりますが、1ゾロの場合はそれまでの点数の累計がクリアされ0点になります。
 早く36点に達した方が勝ちとなりますが、先攻後攻はなく両者同じ回数だけ
ダイスを振ることが出来るため、双方同時に上がった場合は、36を越えた分が
罰点となり、より罰点の少ない方が勝ちとなります。
 なお、6ゾロで上がった場合は、それまでの累計に関わらず、36点ぴったり
での上がりとなり罰点はなく、また、通常の累計での上がりに優先します。
 罰点も同数の場合や両者ともに6ゾロで上がった場合は、引き分けとなります。
【50(Fifty)】
 数人で順番に六面ダイス二個を振り、ゾロ目を出すと点数がもらえます。
 点数を累計してゆき、早く50点に達した人が勝ち。
 6ゾロがボーナスで25点、それ以外のゾロ目は5点。ただし、3ゾロの場合は、
それまでの点数の累計がクリアされ0点。ゾロ目以外の目は無得点です。
  1-1…5点、2-2…5点、3-3…それまでの点数の累計がクリアされ0点になる
  4-4…5点、5-5…5点、6-6…25点
 これは36とは違い、先に振る人が有利になるゲームなので、最初にはじめる時は
ダイスの目の大小などで順番決めを行い、それ以降は勝った人の次の人からスタート
(勝った人が順番の一番最後になる)します。

 全て、サイコロを振っては得点を累計し、定められた数を目指すという意味では、同様の遊びで、出目によって得られる点数の付け方と、目指すべき数をオーバーした場合の処遇が異なるだけなんだよね。

 ゲームとして一番面白いのは、「21」なんだけど、これはトランプのブラックジャックをサイコロでやる的な遊びだから、コンピューターもちょっとは考えなくちゃいけない

 相手があんまりバカすぎると、面白くない

 ・・・というわけで、たいしたことを考える訳じゃ無いんだけど、コンピューターが何か考えるゲームはまだ作ったことがないから、これは後の課題として、とりあえずは、単に点数を累計していくやつを作るよ!

 「50」は一番単純で、しかも、得点なんて計算する必要もなく駅弁の包装紙に正の字でも書いていけばいいんで、汽車の中なんかで暇つぶしするには丁度いい遊びだったんだけど、ゾロ目の時しか得点がもらえないから結構時がかかっちゃって、暇つぶしにしても、対コンピューターの場合、飽きてしまうだろう。

 だいたい、計算はなでしこさんがやってくれるからね。

 ・・・能書きが長くなったけど、いうわけでは「36」w


 今日はとりあえず、画面設計だけ。

 無駄にこの見た目にこだわるから、なんか、こんなことに一番時がかかったりするんだよね~www

 しかし、のわりには、しょぼいけどねぇ~;;;

#-----------------------------------------------------------------------
# 36(Thirty-six)
#-----------------------------------------------------------------------

#-----母艦設計-----------------------------------------------
!母艦設計=「母艦の可視はオフ」

#---メニュー----
『#親部品名,部品名,テキスト,ショートカット,オプション,イベント
なし,ファイルメニュー,ファイル(&F),,,
 -,新規メニュー,新しいゲーム(&N),Ctrl+N,,新規ゲーム
 -,-,,,,
 -,閉じるメニュー,閉じる(&X),Ctrl+X,,終わる
なし,ヘルプメニュー,ヘルプ(&H),,,
 -,ルールメニュー,遊び方(&R),Ctrl+R,,遊び方
 -,-,,,,
 -,バージョンメニュー,バージョン情報(&A),Ctrl+A,,バージョン
』をメニュー一括作成。

#---母艦----
母艦のタイトルは「36(Thirty-six)」
母艦のクライアント幅は640。母艦のクライアント高さは480。
母艦を$FFDDAAで画面クリア母艦のスタイルは「枠固定」
母艦オフに最大化ボタン有効変更。
母艦中央移動。
#------------------------------------------------------------

#-----宣言---------------------------------------------------
マージンとは整数=15

#---サイコロ振るところ----
トレイ幅とは整数=350
トレイ高さとは整数=310
トレイxとは整数。トレイx=(母艦のクライアント幅/2)-(トレイ幅/2)
トレイyとは整数。トレイy=30

ダイストレイとはイメージの可視はオフの幅はトレイ幅。の高さはトレイ高さ。
ダイストレイを$006600で画面クリア。
ダイストレイを母艦のトレイx,トレイyへ画像コピー。

#---メッセージ出すところ----
テキストウィンドウ幅とは整数=610
テキストウィンドウ高さとは整数=115
テキストウィンドウxとは整数=マージン
テキストウィンドウyとは整数。テキストウィンドウy=トレイ高さ+トレイy+マージン

テキストウィンドウとはイメージの可視はオフの幅はテキストウィンドウ幅。の高さはテキストウィンドウ高さ。
テキストウィンドウを$222222で画面クリア。
テキストウィンドウを母艦のテキストウィンドウx,テキストウィンドウyへ画像コピー

#---得点計算するところ----
得点表示幅とは整数=110
得点表示高さとは整数=310
プレイヤーxとは整数=マージン
コンピューターxとは整数母艦のクライアント幅-(マージン+得点表示幅)
得点表示xとは整数。
得点表示yとは整数=マージン

得点表示用とはイメージの可視はオフの幅は得点表示幅。の高さは得点表示高さ。
得点表示用を白色画面クリア。

得点表示用を母艦のプレイヤーx,得点表示y*2へ画像コピー。
得点表示用を母艦のコンピューターx,得点表示y*2へ画像コピー文字書体は「MS ゴシック|12|太字」
母艦のプレイヤーx,0,得点表示幅,得点表示y*2-1へ「プレイヤー」を中央,下で枠内文字描画母艦のコンピューターx,0,得点表示幅,得点表示y*2-1へ「コンピューター」を中央,下で枠内文字描画。

#---サイコロ振るボタン----
ボタンAとはボタン。#の可視はオフの幅は100。の高さは30。
のXはトレイx+(トレイ幅/2-ボタンAの幅/2)。のYはトレイ高さ+トレイy-ボタンAの高さ。
#------------------------------------------------------------

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

#------------------------------------------------------------
●枠内文字描画({グループ=?}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を文字描画。
#------------------------------------------------------------

 サイコロを振るダイストレイと、テキストウィンドウ、して、得点計算用紙です。

 単なるべた塗りなのに無駄にイメージ部品なのは、これ母艦コピーしてやると楽に表示をクリア出来るからでもあり、本当はかっこいいグラフィックを用意して、らしい画面にしたいという虚しい希望の表れでもあります

 ボタンAは、サイコロを振るボタンですが、状況によって違う機能も持たせるつもりです。

 ちょぼいちの時は、当初んな構想ではなく名前を決めてしまい、なんだか妙な感じになったので、は素っ気ない名前にしました。

 これと、先日の2Dを振るプログラムをくっつければ、簡単に交互にサイコロを振るプログラムはできるから、後は得点を計算して表示することと、勝ち負けを判定するだけだね。

 うん、すぐ出来そう

 さくっと作って、なでこらに戻・・・れるかな?(爆)


 そうそう、ちょぼいちの時から、なんか変だなと思いつつスルーしてたんですが、「母艦のクライアント高さ」は、メニュー作成した後に設定しないと、実際に使える高さは、「母艦のクライアント高さ-メニューの高さ」となってしまうようです。

 ・・・なんて、い、さら過ぎる(--;;;

 なでこらの画面作成時に気づいたんだけど、書くの忘れてたから、一応書いとく。

通り道通り道2016/05/10 20:32さいころではないけれど、6面体つながりで。
$GREED(専用の6面体6個使う。多人数向き)とか結構好きですが、さいころは手で振ってこそというところもあるので、難しいところです。

雪乃☆雫雪乃☆雫2016/05/10 20:52通り道さん、こんにちは☆
グリードも広義のダイスゲームとゆうことになるでしょうね。
ダイスは必ずしも1~6の数が刻まれているものだけじゃないし、6面とも限らないですもんね~。
手で振ってこそと言うのは全くその通りで、タダ手の中で転がしてるだけで楽しいシロモノが、コンピューターに振らすと途端につまらなくなるってゆうか(汗)

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

2016/03/15 (火)

2Dを振るよ!

| 08:56 | 2Dを振るよ! - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - 2Dを振るよ! - 雪乃☆雫のなでしこ日和 2Dを振るよ! - 雪乃☆雫のなでしこ日和 のブックマークコメント

 さて、行き詰まった時は・・・サイコロだよ!(なんだそれ;)

 昔、TRPGをやっていたワタシは、ダイスが大好き☆

 べっ、べつに駄洒落じゃありません、念のため;;;

 いや~、転がしてるだけで、何か癒やされる~www

 と言うわけで、ちょぼいちは1Dでしたが、ちょっと2Dを振ってみます。

#2Dを振る
#-----母艦設計-----------------------------------------------
!母艦設計=「母艦の可視はオフ母艦のタイトルは「2Dを振る」
母艦のクライアント幅は640。母艦のクライアント高さは480。
母艦を$006600で画面クリア母艦のスタイルは「枠固定」
母艦オフに最大化ボタン有効変更。
母艦中央移動。
#------------------------------------------------------------

#-----宣言---------------------------------------------------
ダイスサイズとは整数=80

裏画面とはイメージの可視はオフ。
裏画面の幅はダイスサイズ*6。裏画面の高さはダイスサイズ。

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

#---サイコロ振るボタン----
ボタンAとはボタンの可視はオンの幅は100。の高さは35。
のXは母艦のクライアント幅/2-ボタンAの幅/2。のYは母艦の高さ-100。
のテキストは「2Dを振る」

ボタンAをクリックした時は~
  サイコロ振る。
#------------------------------------------------------------

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

ダイスサイズでサイコロ準備。
乱数初期化。
サイコロ振る。
#------------------------------------------------------------

#-----2Dを振る---------------------------------------------
*サイコロ振る
  処理用をダイスサイズ,ダイスサイズへ画像高速リサイズ。
  2
    r=6の乱数。出目¥(回数-1)=r+1。
    x=r*ダイスサイズ。y=0。
    裏画面のx,y,ダイスサイズ,ダイスサイズを処理用の0,0へ画像部分コピー。
    処理用を母艦の((母艦のクライアント幅/4)*(回数))-(ダイスサイズ/2)+(母艦のクライアント幅/8),(母艦のクライアント高さ/2)-(ダイスサイズ/2)へ画像合成通。
#------------------------------------------------------------
*サイコロ準備(Sで)
  裏画面を$00FF00で画面クリア。    #透過色
  目サイズ=S/10。
  数を0から5まで繰り返す。
    もし、数=0ならば                #1のサイコロ
      線色黒色塗り色白色。          #地の色は白
      外枠(S)。                   #ダイスの外枠
      線色赤色塗り色赤色。          #目の色は赤
      半径=目サイズ+S/20。            #大き目
      中点(S)。
  
    もし、数=1ならば                #2のサイコロ
      線色黒色塗り色白色。
      外枠(S)。
      線色黒色塗り色黒色。
      半径=目サイズ。
      左上点(S)。右下点(S)。
  
    もし、数=2ならば                #3のサイコロ
      線色黒色塗り色白色。
      外枠(S)。
      線色黒色塗り色黒色。
      半径=目サイズ。
      中点(S)。左上点(S)。右下点(S)。
  
    もし、数=3ならば                #4のサイコロ
      線色黒色塗り色白色。
      外枠(S)。
      線色黒色塗り色黒色。
      半径=目サイズ。
      左上点(S)。左下点(S)。右上点(S)。右下点(S)。
  
    もし、数=4ならば                #5のサイコロ
      線色黒色塗り色白色。
      外枠(S)。
      線色黒色塗り色黒色。
      半径=目サイズ。
      中点(S)。左上点(S)。左下点(S)。右上点(S)。右下点(S)。
  
    もし、数=5ならば                #6のサイコロ
      線色黒色塗り色白色。
      外枠(S)。
      線色黒色塗り色黒色。
      半径=目サイズ-S/100。
      左上点(S)。左下点(S)。右上点(S)。右下点(S)。左中点(S)。右中点(S)。

*外枠(S)
  x=数*S。y=0。
  x2=x+S。y2=S。
  裏画面のx,yからx2,y2へS/3,S/3で角丸四角。

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

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

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

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

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

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

*右中点(S)
  xx=(x+S/4*3)-半径。yy=S/2-半径
  xx2=(x+S/4*3)+半径。yy2=S/2+半径。
  裏画面のxx,yyからxx2,yy2へ。
#------------------------------------------------------------
●画像合成通({グループ}コピー元を{数値=$00FF00}透過色で{グループ}コピー先のX,Yへ)
  # マスクの作成(キャラの透過部分が白、表示部分が黒の画像)
  マスク画像をイメージとして作成。マスク画像の可視はオフ。
  マスク画像→画像はコピー元→名前
  マスク画像を透過色で画像マスク作成

  # キャラの透過色部分を黒に変換
  # はじめからキャラの透過色を黒にすると髪や目や文字に黒が使用出来なくなる
  キャラ画像をイメージとして作成。キャラ画像の可視はオフ
  キャラ画像→画像はコピー元→名前
  マスク画像を画像ネガポジ
  マスク画像をキャラ画像の0,0へ画像ANDコピー
  マスク画像を画像ネガポジ

  # 合成実行
  マスク画像をコピー先のX,Yへ画像ANDコピー
  キャラ画像をコピー先のX,Yへ画像ORコピー
 
  VCL_FREE(マスク画像)
  VCL_FREE(キャラ画像)
#------------------------------------------------------------

 別に何一つ、目新しいことも学んだことも無いんだけど、1Dと違って2Dはこれだけで、「6ゾロ出たっ!」とか「ぎゃー、1ゾロだ><」とか言って、盛り上がることが出来ますね(バカw)

 一応、「サイコロ準備」は、無駄っぽいコードはのままに、ちょこっとだけ変えて、サイズの違うサイコロが作り易いようにしました。

 それから画像合成ですが、なでしこの画像合成も、それがどうもイマイチでやられまくり、ちょぼいちでは使わせてもらっていた画像合成改も、左上のドットを取得して透過色とする仕様なんですけど、透過色を指定して合成するように変更して「画像合成通」(笑)とした。

 いちいちカラーを指定しなくてもいいようにとゆう配慮なんだろうけど、四角い枠の内側だけを抜きたいとか、あるでしょ?

 単に、ノベルのキャラ合成から、半透明で合成する処理の部分を抜いたものなんで、キャラ合成をのまま使っても良かったんだけど、やはりなんか無駄に長くなる気がして。

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

2016/02/27 (土)

ちょぼいち2016

| 23:07 | ちょぼいち2016 - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - ちょぼいち2016 - 雪乃☆雫のなでしこ日和 ちょぼいち2016 - 雪乃☆雫のなでしこ日和 のブックマークコメント

 サイコロはまあ、こんなもんでしょ。

 これだけ色々やっても、ゲーム内容自体は、マニュアルの「数当てゲーム」と全く変わらないっていうね(爆)

 でも、これが意外と何度も遊んでしまうんだよ~www

#-----------------------------------------------------------------------
#   ちょぼいち2016
#-----------------------------------------------------------------------

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

『#親部品名,部品名,テキスト,ショートカット,オプション,イベント
なし,ファイルメニュー,ファイル(&F),,,
 -,新規メニュー,新しいゲーム(&N),Ctrl+N,,新規ゲーム
 -,-,,,,
 -,メッセージメニュー,メッセージ速度(&S),Ctrl+S,,
 --,速度1,早い(&1),,,メッセージ早い。
 --,速度2,普通(&2),,,メッセージ普通。
 --,速度3,遅い(&3),,,メッセージ遅い。
 -,-,,,,
 -,閉じるメニュー,閉じる(&X),Ctrl+X,,終わる
なし,ヘルプメニュー,ヘルプ(&H),,,
 -,ルールメニュー,ちょぼいちについて(&R),Ctrl+R,,遊び方
 -,-,,,,
 -,バージョンメニュー,バージョン情報(&A),Ctrl+A,,バージョン
』をメニュー一括作成。

*メッセージ早い
	メッセージ速度=0
	速度1のチェックオン。速度2のチェックオフ。速度3のチェックオフ。

*メッセージ普通
	メッセージ速度=30
	速度1のチェックオフ。速度2のチェックオン。速度3のチェックオフ。

*メッセージ遅い
	メッセージ速度=100
	速度1のチェックオフ。速度2のチェックオフ。速度3のチェックオン。
#------------------------------------------------------------

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

元手とは整数=1000
標準賭け金=100
一口とは整数=10
所持金とは整数=元手
賭け金とは整数=0
配当とは整数=5
予想とは整数。

賭場サイズとは整数=300
板サイズとは整数=70
左マージンとは整数=15
上マージンとは整数=15
テキストウィンドウ幅=500
テキストウィンドウ高さ=120
メッセージ速度=30。
速度2のチェックオンボタンフラグとは整数=0	#0=賭ける/待った 1=やる/やめる	2=再戦/終了
マウス待ちとは整数オン
出目とは整数。

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

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

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

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

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

#---賭け金表示----
文字書体は「MS 明朝|24|標準」。
母艦の左マージン+賭場サイズ+40,上マージン+100+板サイズ*2へ「賭け金:」を文字描画母艦の左マージン+賭場サイズ+160,上マージン+100+板サイズ*2,80,33へ「{賭け金}」を右,下で枠内文字描画母艦の左マージン+賭場サイズ+250,上マージン+100+板サイズ*2へ「文」を文字描画。

#---勝負ボタン----
勝負ボタンとはボタンのテキストは「勝負!」
のXは左マージン*2+テキストウィンドウ幅。のYは上マージン*2+賭場サイズ+テキストウィンドウ高さ-80。
のWは100。のHは35。
文字書体は「MS 明朝|18|標準」。
の有効はオフ。

#---待ったボタン----
待ったボタンとはボタンのテキストは「待った」
のXは左マージン*2+テキストウィンドウ幅。のYは上マージン*2+賭場サイズ+テキストウィンドウ高さ-35。
のWは100。のHは35。
文字書体は「MS 明朝|18|標準」。
の有効はオフ。

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

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

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

金額スピンとはエディタの親部品は賭け窓。
のXは50。のYは60。の幅は120。の高さは30。
文字サイズは22。
金額スピンの変更した時は~
	もし、金額スピンのテキスト>所持金ならば
		金額スピンのテキスト=所持金
	違えばもし、金額スピンのテキスト<1ならば
		金額スピンのテキスト=1
	違えば
		金額スピンのテキスト=金額スピンのテキスト
		
プラスボタンとはボタンの親部品は金額スピン。
のXは103。プラスボタンのYは0。の幅は13。の高さは17。
文字書体は「MS 明朝|6|標準」。のテキストは「▲」
プラスボタンのマウス押した時は~
	もし、プラスボタンの押されたボタン=左ならば
		m=0。n=0。
		金額プラス
プラスボタンのマウス離した時は~
	m=1

*金額プラス
	もしm=0ならば
		金額スピンのテキスト=金額スピンのテキスト+一口
		もし、n=0ならば
			0.5秒待つ。n=1。
		0.1秒待つ
		金額プラス

マイナスボタンとはボタンの親部品は金額スピン。
のXは103。のYは16。の幅は13。の高さは17。
文字書体は「MS 明朝|6|標準」。のテキストは「▼」
マイナスボタンのマウス押した時は~
	もし、マイナスボタンの押されたボタン=左ならば
		m=0。n=0。
		金額マイナス
マイナスボタンのマウス離した時は~
	m=1

*金額マイナス
	もしm=0ならば
		金額スピンのテキスト=金額スピンのテキスト-一口
		もし、n=0ならば
			0.5秒待つ。n=1。
		0.1秒待つ
		金額マイナス

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

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

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

勝負ボタンのクリックした時は~
  マウス待ち=オフ。
 	勝負ボタンの有効はオフ。
 	待ったボタンの有効はオフもしボタンフラグ=0ならば
  	サイコロ振る。
  	勝ち負け判定。
  違えばもしボタンフラグ=1ならば
   	賭場を母艦の左マージン,上マージンへ画像コピー。
   	賭け板の賭け板設定を母艦へマウスインアウト反映。
   	もし、所持金≦0ならば
			「破産」で胴元セリフ。
			文字色白色文字書体は「MS 明朝|20|太字」。
  		母艦の左マージン,上マージン,左マージン+賭場サイズ,賭場サイズへ「{元手-所持金}文すりました」を中央,中央で枠内文字描画
			ボタンフラグ=2
			勝負ボタンのテキストは「再戦」
			待ったボタンのテキストは「終了違えば
	  	「1」で胴元セリフ。 
	  	ボタンフラグ=0	
			勝負ボタンのテキストは「勝負!」
			待ったボタンのテキストは「待った」
  違えばもしボタンフラグ=2ならば
		新規ゲーム。

待ったボタンのクリックした時は~
	もしボタンフラグ=0ならば
	  所持金=所持金+掛け金。
  	掛け金=0。
  	所持金表示。
	 	勝負ボタンの有効はオフ。
 		待ったボタンの有効はオフ。
  	「1」で胴元セリフ。
  違えばもしボタンフラグ=1ならば
   	賭場を母艦の左マージン,上マージンへ画像コピー。
   	賭け板の賭け板設定を母艦へマウスインアウト反映。
		文字色白色文字書体は「MS 明朝|20|太字」。
  	もし、所持金>元手ならば
  		母艦の左マージン,上マージン,左マージン+賭場サイズ,賭場サイズへ「{所持金-元手}文もうかった!」を中央,中央で枠内文字描画
			「勝ち逃げ」で胴元セリフ。
		違えばもし、所持金=元手ならば
  		母艦の左マージン,上マージン,左マージン+賭場サイズ,賭場サイズへ「勝ち負け無しです」を中央,中央で枠内文字描画
			「賢明」で胴元セリフ。		
		違えば
  		母艦の左マージン,上マージン,左マージン+賭場サイズ,賭場サイズへ「{元手-所持金}文損しました」を中央,中央で枠内文字描画
			「賢明」で胴元セリフ。
		勝負ボタンの可視はオフ。
		待ったボタンのテキストは「終了ボタンフラグ=2
  違えばもしボタンフラグ=2ならば
		終わる。
#------------------------------------------------------------

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

サイコロ準備
ゲーム画面準備
新規ゲーム
#------------------------------------------------------------
*新規ゲーム
	乱数初期化。
	所持金=元手。
	掛け金=0。
	所持金表示ボタンフラグ=0
 	賭場を母艦の左マージン,上マージンへ画像コピー。
 	賭け板の賭け板設定を母艦へマウスインアウト反映。
 	勝負ボタンの可視はオン。
 	勝負ボタンの有効はオフ。
	待ったボタンの有効はオフ。
	勝負ボタンのテキストは「勝負!」
	待ったボタンのテキストは「待った」
  「1」で胴元セリフ。
#------------------------------------------------------------
*賭ける
  金額スピンのテキストは標準賭け金。
  文字色ウィンドウ文字色文字書体は「MS 明朝|16|標準」
  賭け窓の30,20へ「{予想} の目に賭けるよ!」を文字描画。
  賭け窓をモーダル表示。
#------------------------------------------------------------
*所持金表示
  文字書体は「MS 明朝|24|標準」。文字色は黒。塗り色は$FFDDAA。線色は$FFDDAA。
  母艦の左マージン+賭場サイズ+160,上マージン+50+板サイズ*2から左マージン+賭場サイズ+160+80,上マージン+50+板サイズ*2+33へ四角。
  母艦の左マージン+賭場サイズ+160,上マージン+50+板サイズ*2,80,33へ「{所持金}」を右,下で枠内文字描画。

  母艦の左マージン+賭場サイズ+160,上マージン+100+板サイズ*2から左マージン+賭場サイズ+160+80,上マージン+100+板サイズ*2+33へ四角。
  母艦の左マージン+賭場サイズ+160,上マージン+100+板サイズ*2,80,33へ「{掛け金}」を右,下で枠内文字描画。
#------------------------------------------------------------
*サイコロ振る
    r=6の乱数。出目=r+1。
    x=r*ダイスサイズ。y=0。
    
    処理用をダイスサイズ,ダイスサイズへ画像高速リサイズ。
    裏画面のx,y,ダイスサイズ,ダイスサイズを処理用の0,0へ画像部分コピー。
    処理用を母艦の左マージン+(賭場サイズ/2-ダイスサイズ/2),上マージン+(賭場サイズ/2-ダイスサイズ/2)へ画像合成改。
#------------------------------------------------------------
*勝ち負け判定
  もし、出目=予想ならば
		ボタンフラグ=1
		文字色白色文字書体は「MS 明朝|32|太字」。
		母艦の101,51へ「当たり」を文字描画文字色赤色母艦の100,50へ「当たり」を文字描画。
		「当たり」で胴元セリフ。
    所持金=所持金+掛け金*配当。

  違えば
		ボタンフラグ=1
		文字色白色文字書体は「MS 明朝|32|太字」。
		母艦の101,51へ「はずれ」を文字描画文字色青色母艦の100,50へ「はずれ」を文字描画。

		「外れ」で胴元セリフ。
	勝負ボタンのテキストは「やる」
	待ったボタンのテキストは「やめる」
 	掛け金=0。
  所持金表示。
#------------------------------------------------------------
*胴元セリフ(Sで)
  テキストウィンドウを母艦の左マージン,上マージン+賭場サイズ+10へ画像コピー。
  文字色白色文字書体は「MS 明朝|16|標準」。
  母艦の左マージン+10,上マージン+賭場サイズ+20へ「【胴元】」を文字描画。
  もし、S=「0」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「さあ、張った張った!」をメッセージ速度で文字遅延描画

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

  もし、S=「2」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「{予想}に{掛け金}文だな?」をメッセージ速度で文字遅延描画
    母艦の左マージン+30,上マージン+賭場サイズ+75へ「良ければ勝負だ!」をメッセージ速度で文字遅延描画
    勝負ボタンの有効はオン。
    待ったボタンの有効はオン。
    マウス待ち=オフ。
  
  もし、S=「外れ」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「外れだな。」をメッセージ速度で文字遅延描画 
    母艦の左マージン+30,上マージン+賭場サイズ+75へ「掛け金は没収だ。」をメッセージ速度で文字遅延描画
    母艦の左マージン+30,上マージン+賭場サイズ+100へ「まだ続けるかい?」をメッセージ速度で文字遅延描画
		勝負ボタンの有効はオン
		待ったボタンの有効はオン
    マウス待ち=オフ。
  
  もし、S=「当たり」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「おめでとう。大当たりだ。」をメッセージ速度で文字遅延描画 
    母艦の左マージン+30,上マージン+賭場サイズ+75へ「配当を払うぜ。」をメッセージ速度で文字遅延描画
    母艦の左マージン+30,上マージン+賭場サイズ+100へ「まだ続けるかい?」をメッセージ速度で文字遅延描画
		勝負ボタンの有効はオン
		待ったボタンの有効はオン
    マウス待ち=オフ。
  
  もし、S=「破産」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「おやおや、すってんてんじゃねえか。」をメッセージ速度で文字遅延描画 
    母艦の左マージン+30,上マージン+賭場サイズ+75へ「いいカモっぷりだったぜ。」をメッセージ速度で文字遅延描画
    母艦の左マージン+30,上マージン+賭場サイズ+100へ「懲りずにまた遊んでくれよ?」をメッセージ速度で文字遅延描画
		勝負ボタンの有効はオン
		待ったボタンの有効はオン

	もし、S=「勝ち逃げ」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「おいおい、勝ち逃げかよ。」をメッセージ速度で文字遅延描画 

	もし、S=「賢明」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「まあ、賢明だな。」をメッセージ速度で文字遅延描画 
    母艦の左マージン+30,上マージン+賭場サイズ+75へ「のうち、また遊んでくれ。」をメッセージ速度で文字遅延描画
#------------------------------------------------------------
*ゲーム画面準備

  #---お金を賭けるところ----
  処理用を板サイズ,板サイズ*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へ画像コピー。
  
  賭場を母艦の左マージン,上マージンへ画像コピー。
  テキストウィンドウを母艦の左マージン,上マージン*2+賭場サイズへ画像コピー。
  賭け板の0,0を賭け板設定で母艦へマウスオーバーボタン表示。
#------------------------------------------------------------
*サイコロ準備
  裏画面を$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へ。
#------------------------------------------------------------
*遊び方
	ダイアログタイトルは「ちょぼいちについて」
	「【ちょぼいちのルール】
	さいころ1個を振り、出目に賭ける賭博。
	賭け者は1から6の好きな目に賭け、
	当たれば4~5の配当が払われるが、
	外れれば親に賭け金全額没収される。」を言う。
#------------------------------------------------------------
*バージョン
  ダイアログタイトルは「バージョン情報」
  「{二重カッコ}ちょぼいち{二重カッコ閉じ}{改行} Version 1.91{改行}{改行} by 雪乃☆雫」と言う。
#------------------------------------------------------------

#------------------------------------------------------------
●枠内文字描画({グループ=?}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コピー
 VCL_FREE(マスク画像)
 VCL_FREE(ソース画像)
// マスク画像→壊す
// ソース画像→壊す
#------------------------------------------------------------
●マウスオーバーボタン表示({グループ=?}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
  描画処理反映
#------------------------------------------------------------

chocochoco2016/02/29 22:47こんにちは、すげー長いプログラム、気合いですね。
でも、これだけのプログラム書けるってうらやましいです。
仕事ではバッチ的に良く使ってますが、趣味では最近書けなくなって来ました( ̄ー ̄)

雫さんに負けないように頑張ろう。
雫さんのわかりやすいコード、いろいろと参考にさせて頂きます。

仕事帰りで、全然まとまりの無い文章ですが。。。

雪乃☆雫雪乃☆雫2016/03/01 12:26>chocoさま、こんにちは☆
 長い長い間放置で、ものすごくさりげなくこっそりと再開したというのに、また見て下さっていたなんて感激です!

 コード、わかりやすいかな?(恥)
 だったらうれしいけど、自分的にはぐちゃぐちゃな気分で、それはもう、ナデシコさまのおかげ~♪
 プログラムも、長いっていっても、サイコロの絵を描くのや胴元がしゃべるのに、無駄に行数使ってるだけで、内容的には全然大したヤツじゃないです(汗)

 以前のような気合いはないので、時間を掛けてゆるゆる遊んでますけど、またよろしくおつきあいくださいませ☆

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

2016/02/21 (日)

スピンエディタって・・・

| 02:02 | スピンエディタって・・・ - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - スピンエディタって・・・ - 雪乃☆雫のなでしこ日和 スピンエディタって・・・ - 雪乃☆雫のなでしこ日和 のブックマークコメント

 突然ですが、サイコロです。

 遊んでいたら、件の「→壊す」の問題で、エラーが出てしまうことが分かったので、「VCL_FREE」に直した。

 ついでに、微妙にレイアウトを変更し、胴元のセリフを増やしたりなどして、ゲームっぽさをUPさせてみたりしているw

 それでもって表題だけど、スピンエディタって、▼▲を押して変化する値って、1以外に変更出来ないんですかねえ?

 できれば、例えば10ずつ増減させたりするようにしたかったんだけど・・・

 エディタボタンを組み合わせて、自力で実現するしかないのかな? むむむ。

 でっ、ノベルはどうなったのかと言えば・・・

 ものすごく些細なことっぽいことに引っかかって、はまっている。

 何故か、選択肢の時に、マウスを認識しない場所があるんだよね;

 クイズや、サイコロでも使っている、マウスオーバーボタン関数を流用してるだけなのに、おっかしいなあ(@_@)

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

2009/08/30 (日)

現象消え・・

| 21:37 | 現象消え・・ - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - 現象消え・・ - 雪乃☆雫のなでしこ日和 現象消え・・ - 雪乃☆雫のなでしこ日和 のブックマークコメント

 昨日書いていた、当たりすぎなサイコロの現象は、再現できなくなりました。

 zipを解凍した、1.524では、正常動作しているようです。

 1.531をインストールした後に、1.524を上書きインストールした時に、何かがおかしくなっていたのかもしれません。

 の後、1.523を上書きインストールした時に現象は消え、それっきり再現不能となりました。(再度1.531→1.524も試したんだけど・・)

 それか、本当に神が降りてきていて、もう去ってしまったかだね!(爆)


 1.531に関しては、神様は関係ないらしく、ずっとおかしいままです。

 いままで動いてたものが、動かなくなってる方々は、他にもいらっしゃるみたいですし。

 というわけで、当面は各バージョンで動作確認しながら1.524を使う予定。

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

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