Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

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