Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2023/03/12 17:20:24

MixJuice GET URL : kidspod.club/mj/2189

人狼ゲームGMプログラム(ベータ版)

注意 このプログラムはスロット0〜3までを使うので、IchigoJamRおよびその互換機以外でダウンロードした場合プログラムが全部消えます。Rでも0〜3は消えます。Rの場合は4〜14にプログラムを移せますが、それ以外の場合はeepromに移したり、kidspodにバックアップを取っておいたりしてください。

シンプルな人狼ゲームのGMです。バグは改善したと思いますが、デバッグを引き続きしていきます。
デバッグ用に会議時間を60倍にしていますので、実際に使うときはスロット1の32行目のWAITを60にしてください。

対面人狼用で、GMがいなくても役職を配る、会議を始める、投票し処刑する、能力を行使する、勝利判定まで全てやってくれます。
20人までプレイできて、エンターキーで先に進めます。
役職は村人、占い師、霊媒師、狩人、人狼、狂人が人数に応じて割り振られます。
どの役職があるかははじめに人数を設定したときに表示されます。また、誰がどの役職だったかも最後に表示されます。
ルール
欠けなし、同数の場合吊らない、襲撃されるのはそれぞれの人狼が選んだ中からランダム、連ガなし、最初の占いなし(追加するかも)、会議スキップあり
変数表(メモを流用しているため、雑)
a 人数
b 役職決め用ランダム
c 投票の仮記憶
d つられる人
e 投票用最大値
f 占った相手
g 護衛する人
l 噛む人用変数
m 噛む人
n 噛む人用ランダム1
o 噛む人用ランダム2
p 死んだか死んでないか
q 人狼の人数
r 村の人数
s 勝利判定用(1能力から2会議から)
t 連ガ防止
配列表(同じく雑)
1〜6 役職のにんずう
11〜16 文字列データ
21〜40 プレイヤーの役職
40〜60 投票のデータ
61〜80 プレイヤーの状態(0生存1死亡)
81〜83 噛む人候補

SOURCE CODE

1 'シ゛ンロウケ゛ームノGM ヤクショクキ゛メ
5 CLS:CLV:[11]="ムラヒ゛ト":[12]="ウラナイシ":[13]="レイハ゛イシ":[14]="カリウト゛":[15]="シ゛ンロウ":[16]="キョウシ゛ン"
10 ?"シ゛ンロウケ゛ームヲヤリマス"
20 INPUT"ニンス゛ウハ?",A
30 IFA<4?"ニンス゛ウカ゛タリマセン":GOTO20
35 ?"ヤクショクイチラン"
40 IFA>3&&A<7?"ムラヒ゛ト ";A-2:?"ウラナイシ 1":?"シ゛ンロウ 1":[1]=A-2:[2]=1:[5]=1:Q=1:R=A-1
41 IFA=7||A=8?"ムラヒ゛ト  ";A-4:?"ウラナイシ  1":?"レイハ゛イシ 1":?"シ゛ンロウ  2":[1]=A-4:[2]=1:[3]=1:[5]=2:Q=2:R=A-2
42 IFA>8&&A<12?"ムラヒ゛ト  ";A-5:?"ウラナイシ  1":?"レイハ゛イシ 1":?"シ゛ンロウ  2":?"キョウシ゛ン 1":[1]=A-5:[2]=1:[3]=1:[5]=2:[6]=1:Q=2:R=A-2
43 IFA>11?"ムラヒ゛ト  ";A-7:?"ウラナイシ  1":?"レイハ゛イシ 1":?"カリウト゛  1":?"シ゛ンロウ  3":?"キョウシ゛ン 1":[1]=A-7:[2]=1:[3]=1:[4]=1:[5]=3:[6]=1:Q=3:R=A-3
44 GOSUB1000:?"ソレテ゛ハヤクショクヲクハ゛リマス":GOSUB1000
50 FORI=1TOA
51  CLS:?I;"ハ゛ンサンイカ゛イハメヲツフ゛ッテクタ゛サイ":GOSUB1000
52  B=RND(6)+1
53  IF[B]!=0?"アナタノヤクショクハ";STR$([B+10]);"テ゛ス":[B]=[B]-1:[I+20]=BELSEGOTO52
54 GOSUB1000:NEXT
60 LRUN1
1000 IFINKEY()=10WAIT10:RTNELSEGOTO1000

SAVE0
NEW

1 'シ゛ンロウケ゛ームノGM カイキ゛トトウヒョウ
10 CLS:?"ソレテ゛ハケ゛ームヲハシ゛メマス":?"キ゛ロンシ゛カンハ";A;"フンテ゛ス":?"エンターキーテ゛カイキ゛スタート"
20 GOSUB1000
21 VIDEO3
30 FOR I=0 TO A*60
31  ?"カイキ゛シュウリョウマテ゛アト":?A*60-I;"ヒ゛ョウ":?"Enterキーテ゛スキッフ゜"
32  IFINKEY()=10WAIT10:GOTO35
33  WAIT1:CLS
34 NEXT
35 CLS:VIDEO1:?"シュウリョウテ゛ス"
36 GOSUB1000
40 ?"ツツ゛イテトウヒョウテ゛ス"
41 FORI=1TOA
42  IF[I+60]=1NEXT
43  ?I;:INPUT"ハ゛ンノカタ タ゛レニトウヒョウシマスカ",C:IFC>AORC=0?"ソンナヒトイマセン":GOTO42ELSEIFC=I?"シ゛フ゛ンニトウヒョウハテ゛キマセン":GOTO42ELSE[C+40]=[C+40]+1:CLS
44 NEXT
50 FORI=1TOA
51  IF[I+40]>EE=[I+40]:D=IELSEIF[I+40]=EANDE!=0D=0:GOTO55
52 NEXT
53 GOTO60
55 ?"コンカイハタ゛レモツラレマセンテ゛シタ":GOTO61
60 ?"コンカイツラレルノハ";D;"サンテ゛ス":[D+60]=1:IF[D+20]=5Q=Q-1ELSER=R-1
61 GOSUB1000:S=2:LRUN3
1000 IFINKEY()=10WAIT10:RTNELSEGOTO1000
SAVE1

NEW

1 'シ゛ンロウケ゛ームノGM ノウリョク
10 ?"オソロシイヨルカ゛ヤッテキマシタ ソレソ゛レカ゛ノウリョクヲツカイマス":L=1
11 FORI=1TOA
12  IF[60+I]GOTO20
13  ?I;"ハ゛ンサンノカタ":GOSUB1000
14  IF[I+20]=1?"アナタハムラヒ゛トナノテ゛ナニモスルコトカ゛アリマセン
15  IF[I+20]=2INPUT"タ゛レヲウラナイマスカ",F:IFF>AORF=0?"ソンナヒトイマセン":GOTO15ELSEIFF=I?"シ゛フ゛ンテ゛ス":GOTO15ELSE?F;"ハ゛ンサンハ":IF[F+20]=5?"シ゛ンロウテ゛ス"ELSE?"シ゛ンロウテ゛ハアリマセン
16  IF[I+20]=3?"ホンシ゛ツツラレタヒトハ":IFD=0?"タ゛レモイマセンテ゛シタ"ELSEIF[D+20]=5?"シ゛ンロウテ゛ス"ELSE?"シ゛ンロウテ゛ハアリマセン
17  IF[I+20]=4INPUT"タ゛レヲマモリマスカ",G:IFG!=T&&G!=I&&A<G!=1&&G=0T=GELSEIFG=T?"レンソ゛クカ゛ート゛ハタ゛メテ゛ス":GOTO17ELSEIFA<GORG=0?"ソンナヒトイマセン":GOTO17ELSE?"シ゛フ゛ンハマモレマセン":GOTO17
18  IF[I+20]=5INPUT"タ゛レヲカミマスカ",[80+L]:IF[80+L]>AOR[80+L]=0?"ソンナヒトイマセン":GOTO18ELSEIF[80+L]=I?"シ゛フ゛ンハカメマセン":GOTO18ELSEL=L+1
19  IF[I+20]=6?"アナタハキョウシ゛ンナノテ゛ナニモスルコトカ゛アリマセン
20 GOSUB1000:CLS:NEXT
25 IFA<7M=[81]:GOTO30
26 IFA<12M=[RND(2)+81]:GOTO30
27 M=[RND(3)+81]
30 IFM!=G[H+60]=1:P=1ELSEP=0
40 ?"オソロシイヨルカ゛アケアサカ゛キマシタ" 
41 ?"サクハ゛ンノキ゛セイシャハ";
42 IFP=1?M;"サンテ゛ス":R=R-1ELSE?"イマセンテ゛シタ"
50 GOSUB1000:S=1:LRUN3
1000 IFINKEY()=10WAIT10:RTNELSEGOTO1000

SAVE2

NEW

1 'シ゛ンロウケ゛ームノGM ショウハイ
5 [11]="ムラヒ゛ト":[12]="ウラナイシ":[13]="レイハ゛イシ":[14]="カリウト゛":[15]="シ゛ンロウ":[16]="キョウシ゛ン"
50 CLS:IFR=Q?"コノシュンカンニシ゛ンロウノショウリカ゛キマリマシタ!":GSB1000:?"ヤクショクハコウナッテイマシタ":GOTO70
60 CLS:IFQ=0?"コノシュンカンニムラヒ゛トノショウリカ゛キマリマシタ!":GSB1000:?"ヤクショクハコウナッテイマシタ":GOTO70
65 IFS=1LRUN1ELSELRUN2
70 FORI=1TOA
71  ?I;"サンハ ";STR$([[I+20]+10]);" テ゛シタ"
72 NEXT
73 END
1000 IFINKEY()=10WAIT10:RTNELSEGOTO1000

SAVE3

COMMENT