双六掲示板2〜コースの作り方〜


双六掲示板2のコースを紹介します。

双六のコースは、_sugoroku.cgi をいじります。

● 設定ファイルの内容

# から始まる行はコメント行ですので、無視しても大丈夫です。


コースの名前と作者の情報を記述します。
メールとホームページ(URL)などを非公開にする場合は、
’’と空にしてください。

########################################################################
# 双六マス設定/_sugoroku.cgi
#
#
# 標準コース/Standard (030825)
#

$SugoCourseName     = '標準コース';

$SugoCourseAuthor   = 'ぶん';
$SugoCourseAthrMail = 'bel_bun@yahoo.co.jp';
$SugoCourseAthrUrl  = 'http://b-un.com/bungler/';

$SugoCourseMessage =<<"COURSE_MESSAGE";

初心者向けの標準コースです。<BR>
寄り道(通称、お散歩)は、のんびり進んでください。

COURSE_MESSAGE

########################################################################


マスの個数(最後のマスID)を設定します。
画像マスも含まれます。

#### << 双六のマスの設定 >> ##########################
# 設定が難しいので、自信が無い人は変えないでください。

$MassNum = 66;


マスの設定をします。
IDの数字($MASS{'xx'}と@MASSxxのxx)をそろえます。
各設定値に関しては、後述します。

#                                   Top,Lft,Hei,Wid,Clr,Pre,Nxt,Stp,NBt,Brn,Row,Col,IDx,IDy,Cap,Img
$MASS{'0'  } = \@MASS0;  @MASS0  = (  0,  0, 31,415,  0, -1,  1,  1,  1,  0,  1, 13, 32, 32, 'START & GOAL');
$MASS{'1'  } = \@MASS1;  @MASS1  = ( 32,  0, 31, 31,  1,  0,  2,  0,  1,  0,  1,  1,  0,  0, '1');
$MASS{'2'  } = \@MASS2;  @MASS2  = ( 64,  0, 31, 31,  5,  1,  3,  0,  1,  1,  1,  1,  0,  0, '2' );
$MASS{'3'  } = \@MASS3;  @MASS3  = ( 96,  0, 31, 31,  2,  2,  4,  0,  1,  0,  1,  1,  0,  0, '3' );
$MASS{'4'  } = \@MASS4;  @MASS4  = (128,  0, 31, 31,  3,  3,  5,  0,  1,  0,  1,  1,  0,  0, '4' );
$MASS{'5'  } = \@MASS5;  @MASS5  = (160,  0, 31, 31,  2,  4,  6,  0,  1,  0,  1,  1,  0,  0, '5' );

                         ( 〜 中 略 〜 )

$MASS{'47' } = \@MASS47; @MASS47 = ( 32,384, 31, 31,  1, 46, 48,  0,  0,  0,  1,  1,  0,  0, '47');
$MASS{'48' } = \@MASS48; @MASS48 = (  0,384,  0,  0,  7, 47, -1,  0,  0,  0,  1,  1,  0,  0, '');

$MASS{'49' } = \@MASS49; @MASS49 = ( 64, 32, 31, 31,  6,  2, 24,  0,  1,  0,  1,  1,  0,  0, '<SPAN style="font-size:8pt"><BR>>></SPAN>');
$MASS{'50' } = \@MASS50; @MASS50 = (160,224, 31, 31,  6, 17, 33,  0,  1,  0,  1,  1,  0,  0, '<SPAN style="font-size:8pt"><BR>>></SPAN>');
$MASS{'51' } = \@MASS51; @MASS51 = (160, 32, 31, 31,  6, 21,  5,  0,  1,  0,  1,  1,  0,  0, '<SPAN style="font-size:8pt"><BR><<</SPAN>');
$MASS{'52' } = \@MASS52; @MASS52 = (256,224, 31, 31,  6, 36, 14,  0,  1,  0,  1,  1,  0,  0, '<SPAN style="font-size:8pt"><BR><<</SPAN>');

$MASS{'53' } = \@MASS53; @MASS53 = (320,  0, 31, 31,  8, 65, 54,  1,  1,  0,  1,  1,  0,  0, 'A');
$MASS{'54' } = \@MASS54; @MASS54 = (320, 32, 31, 31,  2, 53, 55,  0,  1,  0,  1,  1,  0,  0, 'B');

                         ( 〜 中 略 〜 )

$MASS{'64' } = \@MASS64; @MASS64 = (320,352, 31, 31,  2, 63, 65,  0,  1,  0,  1,  1,  0,  0, 'L');
$MASS{'65' } = \@MASS65; @MASS65 = (320,384, 31, 31,  8, 64, 53,  1,  1,  0,  1,  1,  0,  0, 'M');

# 画像
$MASS{'66' } = \@MASS66; @MASS66 = (224,224, 31, 31, 11, -1, -1,  1,  1,  0,  1,  1,  0,  0, '', 'shop.gif');


分岐ありのマスを設定した場合、ここに分岐条件を設定します。
各設定値に関しては、後述します。

# 分かれ道(ショートカット)
$BRANCH{'2'  } = \@BRANCH2;   @BRANCH2   = (2, 'ショートカット!', '', 49, -1, 1);
$BRANCH{'17' } = \@BRANCH17;  @BRANCH17  = (2, 'ショートカット!', '', 50, -1, 1);
$BRANCH{'21' } = \@BRANCH21;  @BRANCH21  = (2, '戻りショートカット!', '', 51, -1, 1);
$BRANCH{'36' } = \@BRANCH36;  @BRANCH36  = (2, '戻りショートカット!', '', 52, -1, 1);


ワープのマスを設定した場合、ここにワープ先を設定します。
各設定値に関しては、後述します。

# ワープ
$WARP{'8'  } = \@WARP8;   @WARP8   = (0, 'ちょっと寄り道へ♪', '', 53, -1, 1);
$WARP{'53' } = \@WARP53;  @WARP53  = (0, 'コースへ戻る!', '', 8, -1, 1);
$WARP{'65' } = \@WARP65;  @WARP65  = (0, 'コースへ戻る!', '', 8, -1, 1);


最後に投稿した人のマスの背景色を設定します。

$LastPlayerColor = '#ffcc99'; # 最終投稿者のマスの色


マスの色(背景色)とマスの文字の色を設定します。

# マスの色
@MassColor = (
  '#ffff66',	# 0 : スタート
  '#66ff66',	# 1 : 普通
  '#66ffff',	# 2 : プラス
  '#ff6666',	# 3 : マイナス
  '#ffff66',	# 4 : 振り出し
  '#ccccff',	# 5 : ショートカット(入り口)(双六1の機能)
  '#f7f7ff',	# 6 : ショートカット(双六1の機能)
  '#ffcc00',	# 7 : ゴール
  '#ff66ff',	# 8 : ワープ
  '#666666',	# 9 : 呪い
  '#cccc99',	# 10: 露店六屋
  ''
);

# マスの文字の色
@FontColor = (
  '#000000',	# 0 : スタート
  '#000000',	# 1 : 普通
  '#000000',	# 2 : プラス
  '#000000',	# 3 : マイナス
  '#000000',	# 4 : 振り出し
  '#000000',	# 5 : ショートカット(入り口)(双六1の機能)
  '#000000',	# 6 : ショートカット(双六1の機能)
  '#000000',	# 7 : ゴール
  '#000000',	# 8 : ワープ
  '#cccccc',	# 9 : 呪い
  '#000000',	# 10: 露店六屋
  ''
);


各マスの説明を記述します。これは、コース説明で使われます。

# マスの説明
@MassHelp = (
  'スタート',		# 0 : スタート
  '何もなし',		# 1 : 普通
  'お金が拾える',	# 2 : プラス
  'お金を落とす',	# 3 : マイナス
  '振り出し',		# 4 : 振り出し
  '分岐開始',		# 5 : ショートカット(入り口)(双六1の機能)
  'ショートカット',	# 6 : ショートカット(双六1の機能)
  'ゴール',		# 7 : ゴール
  'ワープ',		# 8 : ワープ
  '呪い',		# 9 : 呪い
  '露店',		# 10: 露店六屋
  ''
);


マスに表示されるアイコンの大きさと、マスに対しての表示位置の微調整を設定します。
最後の 1; は、Perlの習慣でつけるものなので、このままつけてください。

$GridIconWidth  = 27; # 双六(横幅)
$GridIconHeight = 27; # 双六(縦幅)

$GridIconLeft   = 3;  # 双六(マスに対しての上端)
$GridIconTop    = 3;  # 双六(マスに対しての左端)


1;


● マスの設定値

マスのID(例ではxx)は、連番でつけます。
0番が、スタートになりますので、必ず0番から用意してください。


$MASS{'xx' } = \@MASSxx; @MASSxx = (Top,Lft,Hei,Wid,Clr,Pre,Nxt,Stp,NBt,Brn,Row,Col,IDx,IDy,Cap,Img);
カラム意味補足
Topマスの上端の座標 
Lftマスの左端の座標 
Heiマスの縦の幅 
Widマスの横の幅 
Clrマスの種別 
Pre前のマスのID番号主に、後転の呪いの時に使用
Nxt次のマスのID番号 
Stp強制ストップフラグ0:なし、1:強制ストップ(強制ストップにした場合は次の戦闘をなしにした方がいい)
NBt戦闘不可フラグ0:戦闘あり、1:戦闘なし
Brn分岐フラグ0:分岐なし、1:分岐あり(ショートカットのマスも、これで指定します)
Rowアイコンの段の個数この数だけ、アイコンが縦に並ぶ(2以上にした場合は、idyも設定する)
Colアイコンの列の個数この数だけ、アイコンが横に並ぶ(2以上にした場合は、IDxも設定する)
IDxアイコンの横の間隔Colが2以上の時に使用
IDyアイコンの縦の間隔Rowが2以上の時に使用
Capマスの表示文字列’’で囲む、タグも使える、あまり長いとマスの大きさを超えるので半角2文字程度で。
Imgを指定した場合、画像のALTに設定される。
Img画像マスのファイル名画像は ./img/ ディレクトリの中へ。省略すると、普通のマス表示となる。


▼ Clr:マスの種別について

番号種別注意点
0スタートスタートは、0番目のマスのみ
1普通マス 
2プラスマス 
3マイナスマス 
4振り出し 
5ショートカット(入り口) 双六1の機能をサポートするためで、マスの色の設定以外、使用せず。
ショートカットの設定は、分岐フラグ(Brn)を利用する。
6ショートカット(途中)
7ゴール必ず、終点をゴールとする
8ワープワープを指定した場合は、他にワープ先の設定もすること
9呪いのマス 
10露店 


▼ 画像マスの設定について

画像もマスの設定で行います。下の例を参考に設定してください。


# 画像
#                                   Top,Lft,Hei,Wid,Clr,Pre,Nxt,Stp,NBt,Brn,Row,Col,IDx,IDy,Cap,Img
$MASS{'66' } = \@MASS66; @MASS66 = (224,224, 31, 31, 11, -1, -1,  1,  1,  0,  1,  1,  0,  0, '', 'shop.gif');
カラム設定値
Clr11
Pre-1
Nxt-1
Stp1
NBt1
Brn0
Cap画像のALT属性
Img画像のファイル名

Pre と Nxt と Img 以外は、上記の設定値でなくても大丈夫ですが、とりあえず設定してください。



▼ スタートの設定について

スタートは、必ず0番目のマスとします。


#                                   Top,Lft,Hei,Wid,Clr,Pre,Nxt,Stp,NBt,Brn,Row,Col,IDx,IDy,Cap,Img
$MASS{'0'  } = \@MASS0;  @MASS0  = (  0,  0, 31,415,  0, -1,  1,  1,  1,  0,  1, 13, 32, 32, 'START & GOAL');
固定の設定値
Clr0
Pre-1
Stp1
NBt1

Stp と NBt は、1でなくても大丈夫ですが、とりあえず設定してください。
スタートの特徴として、複数のアイコンを表示する大きなマスとなります。(別に強制ではないですが)
Row と Col を設定し、マスの大きさ(Hei と Wid)も調整をしましょう。



▼ ゴールの設定について

#                                   Top,Lft,Hei,Wid,Clr,Pre,Nxt,Stp,NBt,Brn,Row,Col,IDx,IDy,Cap,Img
$MASS{'48' } = \@MASS48; @MASS48 = (  0,384,  0,  0,  7, 47, -1,  0,  0,  0,  1,  1,  0,  0, '');
固定の設定値
Clr7
Nxt-1

ゴールも普通のマスと同様に設定します。ただし、Nxt は -1固定です。
スタートとゴールを同じマスにしたい場合(標準コースみたいなやつ)は、Heiと Wid を 0 にすることで、ゴールのマスを隠します。
Top と Lft をスタートのマスの中に配置すると、ゴールした時に投稿結果画面で、アイコンがちゃんとその場所に置かれます。



▼ ショートカットの設定について

双六2では、ショートカットの設定は、分岐フラグで行います。
Clr を 5 以外にしても、分岐フラグさえ立てとけばショートカットの設定ができます。

>>『分岐の設定について』を参照



▼ 分岐の設定について

分岐とは、そのマスにいる時に、次回、特別なコースへ進むことを言います。
全てのマスに分岐フラグをつけることができます。
分岐フラグを設定した場合は、$BRANCH{'xx' } ・・・の設定も行います。


# 分かれ道(ショートカット)
$BRANCH{'2'  } = \@BRANCH2;   @BRANCH2   = (2, 'ショートカット!', '', 49, -1, 1);

IDをマスのIDと同じ番号にします。


@BRANCH2 = (Type, OkMsg, NgMsg, OkNext, NgNext, OkDice1, OkDice2, OkDice3, ・・・);
カラム意味
Type分岐条件区分を指定します。(1:OkDice? の値のみ、2:OkDice?の倍数)
OkMsg分岐条件を満たした時に表示されるメッセージ
NgMsg分岐条件を満たさなかった時に表示されるメッセージ
OkNext分岐条件を満たした場合に進むマス番号(-1 を設定すると、進まずにその場にとどまる)
NgNext分岐条件を満たさなかった場合に進むマス番号(-1 を設定すると、進まずにその場にとどまる)
OkDice?分岐条件のマスの値。カンマ(,)区切りで複数設定が可能


参考例TypeOkNextNgNextOkDice?備考
全て(無条件にショートカット) 2 (マス番号) -1 1 1の倍数を指定することで実現。
NgNextは使われないはずだが、習慣で-1を設定。
偶数・奇数 2 (マス番号) (マス番号) 2 OkNextが偶数、NgNextが奇数の進む先となる。
3の倍数のみ進む 2 (マス番号) -1 3 3,6,9,・・・以外は、進めない。
5のみ進む 1 (マス番号) -1 5 5以外が出ると、進めない。
3と6が出たらA、それ以外はB 1 (Aの番号) (Bの番号) 3,6 複数個の場合は、カンマ区切りで。


▼ ワープの設定について

ワープとは、そのマスに止まった時に、別のマスに飛ぶことを言います。
ワープの設定は、Clr を 8 にします。その場合、$WARP{'xx' } ・・・の設定も行います。


# ワープ
$WARP{'8'  } = \@WARP8;   @WARP8   = (0, 'ちょっと寄り道へ♪', '', 53, -1, 1);

IDをマスのIDと同じ番号にします。


@WARP8 = (Type, OkMsg, NgMsg, OkNext, NgNext, OkDice);
カラム設定値
Type0
OkMsgワープ時に表示されるメッセージ
NgMsg’’
OkNextワープ先のマス番号
NgNext-1
OkDice?1

OkMsg と OkNext 以外は、使われませんが、上記のように設定してください。



▼ アイコンの設定について

アイコンの大きさとマスに対する位置補正の設定を行います。


$GridIconWidth  = 27; # 双六(横幅)
$GridIconHeight = 27; # 双六(縦幅)

$GridIconLeft   = 3;  # 双六(マスに対しての上端)
$GridIconTop    = 3;  # 双六(マスに対しての左端)
変数意味
$GridIconWidth アイコンの大きさを設定します。
マスの大きさより小さくしてください。
$GridIconHeight
$GridIconLeftマスの中央にしたり、下に寄せたりするための
位置補正です。
$GridIconTop


アドバイス

● マスの位置や大きさについて

マスの大きさはHei と Wid で行うのですが、隣のマスにくっつかないようにするのがコツです。
私の場合、基本的にマスの位置を32間隔で作ってますので、Hei と Wid を31としてます。

スタートのマスのような大きなマスを作る場合は、Hei,Wid,Row,Col,IDx,IDyの設定をしましょう。



● 画像マスについて

画像マスは、コースから独立してます。ちょっとしたメッセージやコースの雰囲気作りに活用できます。



● 露店の置き場所について

2,4,6マス隣に露店を置くことはお奨めしません。○進むカードで隣の露店へ行けるからです。
後退の魔鏡を利用して行き来すると、偶々連々カードがあっという間に大金が作れちゃいます。