人生ゲーム
LIFE GAME PB

誰もが遊んだあの懐かしいボードゲームが、PBに…

アナタの想像力があれば、記号と数字からでも十人十色の人生を描くことは可能だ!

でもなんでPBで人生ゲーム?

対応機種

PB-100+OR-1 / PB-SIM / Pokecom GO(slow)

実機を推奨します。

遊び方

プログラム・リストを入力します。プログラムサイズは1,561ステップです。

Shift+[0] 又は P0を選択してRUN[EXE] でスタートします。変数拡張(DEFM)は不要です。

中断後の再開は、P0を選択して RUN 4[EXE] です。

プレイヤーは3人固定で、あなたは「プレイヤー0」、他の2人(CPU)は 「プレイヤー1」と「プレイヤー2」です。

プレイヤー0 → プレイヤー1 → プレイヤー2 → プレイヤー0・・・の順でターンが廻ります。

 

ゲームを開始すると、まずプレイヤー0(あなた)のステータスを表示します。

ステータス表示 

[EXE]キーを押すと、ルーレットを回すよう指示が表示されます。

<ルーレットの回し方>

・ルーレットの目は1~5の5個だけです。

・何かキーを押すとルーレットが回りだし、押している間は回り続けます

・押したキーを離すと、ルーレットが徐々に減速し、やがて止まります。

・止まったときの左端の数値がルーレットの出目で、右端に「R+出目」と表示されます。

・(注)減速するスピードは毎回少し異なりますので、あまり出目を狙うことはできません。

ルーレットの出目が確定したら、続いてフィールドとコマの移動表示になります。左端がスタートで、右側に進んでいきます。画面は適宜スクロールします。

 

プレイヤーのコマの表示は縦に3つ並んでおり、以下の通り:

プレイヤー0 「’」(上段)

プレイヤー1  「・」(中段)

プレイヤー2 「,」(下段)

プレイヤーが二つ重なると、「」(=0+1)、「o」(=1+2)、「:」(=0+3)と表現されます。

3つ重なると「3」です。

7マスごとに給料日「$」があり、通過するたびに$2,000の収入となります。

フィールド及びコマの表示

続いて、コマが進んだ先のマスに書かれている情報が表示されます。

マスの情報表示 

上記の例では、「ルーレットを回して4以上の場合は、株券1枚当たり$1,000もらえる」との意味になります。

 

[EXE]キーを押すと記述されたアクションが実行され、各プレイヤーのステータスに反映されます。反映後のステータスは、次のターンが来るまでは確認できません。(クレジットカードの請求は後から来る)

アクションには条件が付いている場合があります。


条件Y/Nで選択する場合

・・・[Y]または[N]を押して、アクションを実行するかどうか選択します。

条件ルーレットを回して当たり外れがある場合

・・・当たりのしきい値を表示します。ルーレットの出目に応じた当たり外れの判定が出目の横に「〇」「×」で表示されます。

当たりが4以上の場合

当たりの場合(アクション実行)

はずれの場合(スキップ)

以上を各プレイヤーで繰り返し回してゲームを進めていきます。

他のプレイヤー(CPU)のターンのときはHOLDせず自動的に進みます。(表示の切り替えが早すぎると感じる場合は[P3]のループ数を増やして下さい)

マス29はゴール(億万長者の土地)で、そこに最初のプレイヤーが到達(通過)した時点でゲーム終了となり、[EXE]を押すと、全プレイヤーの財産を清算して表示します。なお、フィールド上のゴール位置に、特に記号はありません。

計算式

財産$=所持金$+株券枚数×$5,000+保険×$2,000

勝敗・順位は財産$の大小で判断してください。

注意

・マスのデータは全18種類の中からゲームごとに乱数で選ばれます。従って、株券や保険を買うことができない場合もありますが、それも人生のうちとお考え下さい。

・例えば、「ルーレットで当たれば株券1枚ごとに収入がある」とき、株券を1枚も持っていなければルーレットは無意味ですが、スキップしません。メモリ容量の制約につき、我慢してください。

・家族が1人増えるとき、他のプレイヤーから強制的に$1,000ずつお祝いとして徴収されます。

・家族は1人が最低人数です。(プレイヤー自身は残る)

・株券を購入するときは一枚につき$2,000を支払います。売却するときは$1,000で売れます。

・保険に加入するときは保険料$1,000を支払います。

マスデータの書式について

マスの情報は4文字のコードで定義されており、書式は以下の通りです。

プログラム[P0]の50~52行目のデータを入れ替えれば、アレンジ可能です。この書式に従い、いろいろな人生ストーリーを想像することができます。アナタも自由に想像して楽しもう!

「様々な人生の例」として、データサンプルを示します。入れ替えていろんな人生を体験してみましょう。

 

注意

・行番号は50,51,52固定です。

・マスデータは一つ当たり4文字で、6種×3行=18種の固定です。文字数は正確にしてください。

・無意味な組み合わせもあり得ますが、無視します(たぶん)。

人生ストーリー例

人生ストーリー例.pdf

様々な人生の例

様々な人生例.pdf

LIFE GAMEプログラム説明書

LIFE_GAME説明書.pdf

LIFE GAME フローチャート

LIFE GAME flowchart.pdf

PB-100実機形式

PB-SIM形式

[P0]

2 VAC:S=1:T=1:U=1:Z=RAN#:PRINT "LIFE GAME"

4 PRINT:IF L(J)>=0 THEN 8

6 PRINT J;":Pass";:GOSUB #3:L(J)=ABS L(J):GOTO 38

8 PRINT J;A(J);"$";V(J);"s";S(J);"f";

10 IF SGN D(J)>0;PRINT CSR0;"I";

12 IF J=0;STOP:GOTO 16

14 GOSUB #3

16 GOSUB #2:Q=L(J):FOR G=1 TO R:L(J)=G+Q

18 $="_'\DT\DG,:o3$":H=L(J)-3:IF H<0;H=0

20 FOR H=H TO H+6:I=0

22 FOR P=0 TO 2:IF L(P)=H;I=I+2^P

24 NEXT P:IF 0=I+FRAC(H/7);I=8

26 $=$+MID(I+1,1):NEXT H:PRINT CSR0;MID(10,7);J;

28 IF 0=FRAC(L(J)/7);A(J)=A(J)+2

30 NEXT G:IF L(J)>=29 THEN 42

32 P=Z:FOR H=0 TO L(J):P=24*FRAC((P*13+5)/24):NEXT H

34 P=INT(P/24*18):GOSUB 50+P/6:$=MID(1.1+24*FRAC(P/6),4)

36 GOSUB #1

38 J=J+1:IF J>2;J=0

40 GOTO 4

42 PRINT:PRINT "Goal!":FOR H=0 TO 2

44 PRINT H;"=";A(H)+5*V(H)+2*D(H);"$";:NEXT H:END

50 $="+1__-1__+F__-I__+S_?-S_?":RETURN

51 $="+I_?+5_I+9_5-R_2S__3-F_5":RETURN

52 $="+1a_-2f_+Rs_+9s4-5s4+1fI":RETURN


[P1]

2 PRINT:PRINT J;":";MID(1,2);"/";MID(3,1);"\LA";MID(4,1);

4 IF J=0;STOP:GOTO 8

6 GOSUB #3

8 K$=MID(4,1):IF K$<>"I" THEN 14

10 IF D(J)=1 THEN 38

12 RETURN

14 IF K$<>"?" THEN 30

16 IF J<>0 THEN 26

18 PRINT "Y/N? ";

20 K$=KEY:IF K$="" THEN 20

22 PRINT K$;:IF K$="Y" THEN 38

24 RETURN

26 IF A(J)>5;IF RAN#<.5;PRINT " Y";:GOSUB #3:GOTO 38

28 PRINT " N";:GOSUB #3:RETURN

30 IF K$="_" THEN 38

32 P=VAL(K$):PRINT:PRINT "R \GE";P;"?";:GOSUB #3:GOSUB #2

34 PRINT CSR9;:IF R>=P;PRINT "\CI";:GOSUB #3:GOTO 38

36 PRINT "\CR";:GOSUB #3:RETURN

38 IF MID(1,1)="S";L(J)=-ABS L(J):RETURN

40 K$=MID(2,1):IF K$="F" THEN 68

42 IF K$="S" THEN 72

44 IF K$="I" THEN 78

46 IF K$="R";GOSUB #2:GOSUB #3:GOTO 50

48 R=VAL(K$)

50 IF MID(1,1)="-";R=-R

52 K$=MID(3,1):IF K$<>"a" THEN 62

54 FOR H=0 TO 2

56 IF H=J;A(H)=A(H)+R*2:GOTO 60

58 A(H)=A(H)-R

60 NEXT H:RETURN

62 P=1:IF K$="f";P=S(J)

64 IF K$="s";P=V(J)

66 A(J)=A(J)+R*P:RETURN

68 IF MID(1,1)="-";S(J)=S(J)-SGN(S(J)-1):RETURN

70 S(J)=S(J)+1:$="+1a_":GOTO 8

72 IF MID(1,1)="+";V(J)=V(J)+1:A(J)=A(J)-2:RETURN

74 IF V(J)>0;V(J)=V(J)-1:A(J)=A(J)+1

76 RETURN

78 IF MID(1,1)="-";D(J)=D(J)-SGN D(J):RETURN

80 IF D(J)=0;D(J)=1:A(J)=A(J)-1

82 RETURN


[P2]

1 K$=$:$="123451234":I=1:Q=1+RAN#:R=ABS R:IF J<>0 THEN 4

2 PRINT:PRINT "Tap!";

3 IF KEY="" THEN 3

4 PRINT:PRINT J;"\RA";

5 R=R+1:IF R>5;R=1

6 PRINT CSR3;MID(R,5);:FOR H=3 TO I:NEXT H

7 IF I>30;PRINT CSR10;R;CSR10;"R";:$=K$:RETURN

8 IF KEY="";I=I+Q

9 GOTO 5


[P3]

1 FOR Q=0 TO 99:NEXT Q:RETURN