goo blog サービス終了のお知らせ 

TOY VOX

管理人VOX6336が昭和レトロな遊びをするだけのブログです。スマートフォンでの閲覧推奨。

チンチロリン

2025-02-17 20:12:00 |  ダイス
「いいじゃねえか、まだサイを投げたわけじゃねぇ」

(2020年4月記事の再掲)

サイコロを使ったかんたんなゲーム、「チンチロリン」を作ってみよう。
まずはサイコロを3個ふる。3個のサイコロはそれぞれ、A、B、Cとする。

A=RND(6)+1
B=RND(6)+1
C=RND(6)+1
PRINT A;" ";B;" "C

これで3個のサイコロの出目が表示される。 つぎにこの出目がどのような役なのかを判定する。
もっとも単純なのはIF文をくりかえす方法だろう。たとえば、

IF A=="■" AND B=="■" AND C=="■" THEN ~

という命令文(■には数字がはいる)を6×6×6=186行くりかえせばいい。
あるいは、

D=A*100+B*10+C

と3個の出目を3ケタの数字におきかえて、READ文を使って判定させる方法もあるだろう。だが、もっと楽なやりかたはないだろうか。それが今回のテーマ、「条件分岐」である。

まず、3個の目のでかたのうち、もっとも特殊な「ゾロ目」について判定する。

IF A==B AND A==C THEN PRINT "ゾロメ":END

命令文の最後にENDをつけたのは、これ以降の判定をしないため。GOTO~におきかえてもよい。つぎに3個のうち2個が同じ場合を判定する。

IF A==B THEN PRINT "デメ = ";C:END
IF A==C THEN PRINT "デメ = ";B:END
IF B==C THEN PRINT "デメ = ";A:END

AとBがそろった場合Cが出目、AとCがそろった場合Bが出目、BとCがそろった場合Aが出目になる。たとえば、4、4、2と出た場合、2が出目となる。4、4、4の場合はすでに先の分岐ではじかれているので、この分岐にはこない。4、4、4はゾロ目として判定され、出目4とは判定されない。

つぎに「456」について判定する。これは、2×2×2=8パターンしかないので、IF文を8行書いてもよいだろう。だがもっと楽な方法がある。

IF A+B+C==15 THEN PRINT "シゴロ":END

すでに、5、5,5のパターン、6、6、3のパターンは先の分岐ではじかれているため、この分岐にはこない。したがってこの分岐で合計数が15になるのは、4+5+6のパターンしかない。同様に「123」については、

IF A+B+C==6 THEN PRINT "ヒフミ":END

で判定できる。さて、ここまでの分岐ではじかれていない目については「出目なし」と判定することができる。

PRINT "メナシ" :END

これですべての目の出方について判定することができた。ただし、「チンチロリン」は目が出ない場合、3回までサイコロをふることができる。そこでサイコロをふる回数を変数FURUに代し、このようにプログラムを組んでみた

FURU=0
@SAIOFURU
IF FURU==3 THEN PRINT "メナシ":END
A=RND(6)+1
B=RND(6)+1
C=RND(6)+1
PRINT A;" ";B;" "C
IF A==B AND A==C THEN PRINT "ゾロメ":END
IF A==B THEN PRINT "デメ = ";C:END
IF A==C THEN PRINT "デメ = ";B:END
IF B==C THEN PRINT "デメ = ";A:END
IF A+B+C==15 THEN PRINT "シゴロ":END
IF A+B+C==6 THEN PRINT "ヒフミ":END
FURU=FURU+1:GOTO @SAIOFURU



ダイレクトモードにして、

RUN (エンター)

で起動する。2回目からは、十字キー上、Ⓐボタンで起動する。




コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

すごろく 27

2023-04-09 02:24:30 |  ダイス
がちょうのゲームを実際に6人でプレイしたときのサイコロを振った回数を調べるため、変数rol=0を設定し、サイコロをふるたびにrol=rol+1とした。
【プログラム】


何回か実行してみた。最長で161回。1回サイコロを振ってコマを動かすのに30秒かかるとすれば、80分ぐらい。
【実行画面】


逆にいちばん短いのは10回。5分ぐらい。

無作為に20回ほど実行してみたところ、平均値は62.05回だった。だいたい1ゲーム30分ぐらい掛かるようだ。


コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

すごろく 26

2023-04-09 01:53:23 |  ダイス
がちょうのゲームはどのくらい儲かる(もしくは取られる)のか、6人プレイのプレイヤー1であると仮定してシミュレートしてみよう。プログラムを「0円持ち」に修正し、ボタンを押す処理をなくした。
【プログラム】


1回目。プレイヤー6が55ポイント(現金を賭けていれば5500円以下略)勝った。プレイヤー1は14ポイントの損失。
【実行画面】

2回目。プレイヤー1は8ポイントの損失。

3回目。プレイヤー1は10ポイントの損失。


4回目。プレイヤー1は8ポイントの損失。

5回目。プレイヤー1は6ポイントの損失。

6回目。プレイヤー1は10ポイントの勝利。ようやく勝ったと思ったらこれだけか。


プレイヤー1はがちょうのゲームを6回プレイし、トータルで36ポイント負けた。










コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

すごろく 25

2023-04-05 22:32:11 |  ダイス
ここまでで「がちょうゲーム」のプログラムは出来上がっているのだが、このままでは「人数分の1で勝つゲーム」にすぎない。

「Masters of Traditional Game」より「Game of Goose」のルール説明。


ギャンブルバージョン
がちょうのゲームは、何世紀もの間ギャンブルゲームであることが一般的でした。最初に、賭け金が決定され、各プレイヤーは賭け金1をプールに置きます。その後、イベントのいずれかが発生するたびにプールが増加します。
ピースが別のピースに着地すると、場所が入れ替わり、両方のプレイヤーがプールに賭け金を支払います。
ピースがハザードスペースに着地すると、プレーヤーはプールに賭け金を支払います。
勝者はゲーム終了時にプールを獲得します。


このルールにしたがってプログラムを改造してみた。配列変数stk[1~4]を設定し、それぞれのプレイヤーは最初に賭け金20ポイントを持ってゲームを開始する。ゲームの参加料は1ポイント。
【プログラム】





動作確認。ゲームの結果、プレイヤー2が20ポイントの勝利。プレイヤー1,3,4はそれぞれ7,4,9ポイントをうしなった。
【実行画面】


6人プレイがいちばんアツいのではないだろうか。プログラムを改造してもう1回。結果、プレイヤー3が54ポイントを得た。プレイヤー1,2,4,5,6はそれぞれ9,9,11,12,13ポイントの負け。
【実行画面】


1ポイント100円とするとプレイヤー3は5400円儲かったことになる。それぞれ1000円前後負けた他のプレイヤーは取り返そうとしてさらにプレイをつづけてしまうのだろう。なるほどこれはよくできた悪いゲームだ。




コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

すごろく 24

2023-04-05 20:56:41 |  ダイス
動作確認。プレイヤー3が牢屋に入った。
【実行画面】


プレイヤー3はずっとサイコロがふれない。しばらくしてプレイヤー2が井戸に落ちた。


プレイヤー2、プレイヤー3はずっとサイコロがふれない。しばらくしてプレイヤー1、プレイヤー4が連続して死神に会った。


プレイヤー2、プレイヤー3はずっとサイコロがふれない。

プレイヤー2、プレイヤー3はずっとサイコロがふれない。

プレイヤー4が上がり。プレイヤー2、プレイヤー3は最後までサイコロをふれなかった。









コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする