-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.php
168 lines (155 loc) · 10.3 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?php
ini_set("display_errors","on");
require_once("./config/debug.php");
include_once("./lib/eseUtil.php");
//room.datが存在するかを保持する。
$room_exist = file_exists("./data/room.dat");
if ($room_exist){
$room_file = eseFile("./data/room.dat");
$waiting_room = array();
$prosessing_room = array();
foreach ($room_file as $room_data){
$room_data = str_replace("\n","",$room_data);
$room_arraydata = explode(",",$room_data);
if(is_room_previous_time("data/".$room_arraydata[0],7200)) {
switch($room_arraydata[2]){
case "waiting":
array_push($waiting_room,$room_data);
break;
case "processing":
array_push($prosessing_room,$room_data);
break;
}
}
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<link rel="stylesheet" href="./main.css" />
<script type="text/javascript" src="./lib/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(function(){
$('input#makeroom').click(function(){
return confirm("「" + $("input#roomname").val() + "」の名前で、" + $("select#roompeople").val() + "人の部屋を作成します。よろしいですか?");
});
});
</script>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>レジスタンス・チャット</title>
</head>
<body>
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/ja_JP/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div id="header">
<h1><img src="./regi-logo.png"></h1>
<h2>運営からご連絡</h2>
<h3>2012.04.20:サーバーの不具合により、ゲームプレイ不可能の件について</h3>
<p>運営こと似非原です。22:00から23:00の間において、ゲームプレイが不可能になっていた件について、原因が発覚したのでお知らせします。</p>
<p>ゲームプレイが不可能になっていたのは、サーバー上において保管されているログが肥大化していたために、空き容量が無くなり、部屋のログが書き込むことが出来なくなったために起きたものだと考えられます。サーバーのログを削除するとともに、今後起きないように、ログの肥大化への対策を行いたいと思います。</p>
<h2>過去ログ</h2>
<p><a href="pastlog.php">過去に立てられた部屋</a></p>
<p>始めての方や、レジスタンスに興味を持った方は、ここから過去のログを読むと、だいたいの流れを掴むことができるかもしれません。</a>
<p>2012.04.18 05:00:00 :: 新しいデータ形式を採用したため、過去ログを一回リセットしました。
<h2>連絡</h2>
<p><a href="http://twitter.com/esehara/">似非原重雄</a></p>
<p><a href="http://twitter.com/resistancechat/">レジスタンスチャット告知用アカウント</a></p>
<p>mail to esehara at gmail dot com</p>
<p>なんか変なところなどが見つかりましたら、教えてくれるとありがたいです。</p>
<div class="fb-like" data-href="http://www45045u.sakura.ne.jp/registance/" data-send="true" data-layout="button_count" data-width="450" data-show-faces="true"></div>
<br />
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www45045u.sakura.ne.jp/registance/" data-via="ResistanceChat" data-lang="ja">ツイート</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<h2>概要</h2>
<p> 一言で述べるならば、<a href="http://www.wolfg.x0.com/">汝は人狼なりや?</a>みたいなシステムです。しかし、人狼のシステムと類似するところがあり、下のような違いがあります。</p>
<ul>
<li>脱落者が出ない</li>
<li>司会者がいない</li>
</ul>
<p> 人狼は一時期、論理的かつ心理の読み合いという面白さから、製作者の周りでブームになったことがあります。ですが、人狼は、初日に狙われると、楽しみが半減してしまうという欠点が存在してしました。それら「排除」という観点を無くすことによって、全てのプレイヤーができるだけ長く参加できるようになっています。</p>
<p> このゲームのルールは、元々は<a href="http://sgrk.blog53.fc2.com/blog-entry-1957.html">レジスタンス</a>というテーブルゲームを参考に作っています。チャットもいいけど、リアルでやるのも楽しいので、是非購入しましょう。5人から遊べるし!!</p>
<p> また、<a href="doc/">詳細ドキュメント</a>も現在制作中です。</p>
<h2>リンク</h2>
<a href="http://www.segausers.gr.jp/~ceptg/sor/sow.cgi">革命物語</a>
<p>革命物語は、人狼物語というスクリプトをベースとしたレジスタンスが遊べるサイトのようです。元のスクリプトからの開発・改造なだけあってわかりやすく遊べるところがとてもGoodです。こちらの表示が苦手な方は、こっちで遊ばれるのもいいかもしれません。</p>
<h2>開発履歴</h2>
<ul>
<li>2012/03/13 :: 公開</li>
</ul>
</div>
<div id="log">
<h2>新しい部屋を作成する</h2>
<form action="./create_room.php" method="POST">
<p>部屋名 : <input type="textarea" name="room_name" id="roomname"/></p>
<p>参加者の指定 :
<select name="people" id="roompeople">
<?php
if ($debug) {
echo '<option value="3">3</option>';
}
?>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<p>
<h3>選択ルール</h3>
<input name="anonymous" type="checkbox" value="check">この部屋は、ゲーム中は「入室時の名前」を隠してプレイが始まる。
<br /><input name="blind_spy" type="checkbox" value="check">この部屋は、スパイは仲間がわからないまま進行する。
<br /><input name="double_spy" type="checkbox" value="check">7人以上なら、二重スパイが登場する(Mission5で、チームに選ばれて承認されたら、二重スパイの勝利)
</p>
<input id="makeroom" type="submit" value="作成">
</form>
<h2>募集中の部屋</h2>
<!-- 募集中の部屋を表示する -->
<ul>
<?php
if (!$room_exist){
echo "<p>ファイルは存在しません。</p>";
} else {
foreach ($waiting_room as $room_list) {
$room_arraydata = explode(",",$room_list);
echo "<li><a href='./show.php?file=$room_arraydata[0]'>$room_arraydata[1]($room_arraydata[3]人部屋)</a></li>";
}
}
?>
</ul>
<h2>進行中の部屋</h2>
<ul>
<?php
if (!$room_exist){
echo "<p>ファイルは存在しません。</p>";
} else {
foreach ($prosessing_room as $room_list) {
$room_arraydata = explode(",",$room_list);
echo "<li><a href='./show.php?file=$room_arraydata[0]'>$room_arraydata[1]($room_arraydata[3]人部屋)</a></li>";
}
}
?>
</ul>
<h2>勝利条件</h2>
<p>このゲームでは、レジスタンス側とスパイ側に分かれます。レジスタンス側はミッションを三回成功させることが勝利条件です。スパイ側はミッションを三回失敗させることです。</p>
<h2>ゲームの流れ</h2>
<p> ゲームの流れとして、三つにわけられます。「リーダーによるチームの選出」「チームに対する信任投票」「ミッションを成功させるか否か」、の三つです。以下の流れを最高でも5回(最低でも3回)行います。</p>
<h3>リーダーによるチームの選出</h3>
<p> リーダーは、リーダーになったことのない人間から、ランダムに選択されます。リーダーは、ミッションに向かうチームを選択してください。</p>
<h3>チームに対する信任投票</h3>
<p> チームの選出が決まったら、本当にそのメンバーにミッションをさせるのか、を投票します。もし、そのメンバーでよければ「信任」を押してください。しかし、スパイ側の人間が紛れ込んでいるのではないか、など、疑わしい場合は「否認」をしてください。信任が過半数の場合、そのチームメンバーにてミッションを行います。しかし、否認が同数以上の場合、チームは解散され、また選び直します。</p>
<p>ちなみに、チームに対する信任投票は、記名性であり、どちらに投票したかの名前が出ます。もし、怪しい動きをしている人間がいたら、上手く推理に生かせるように頑張ってみてください。</p>
<h3>ミッションを成功させるか否か</h3>
<p> ミッションに関しては、特別なことをする必要はありません。必要なのは「成功させるかどうか」の選択のみです。レジスタンス側の場合、成功だけの選択肢が表示されます(だってレジスタンス側には成功以外のメリットがありませんものね!市民!)。しかし、スパイ側の場合、失敗させるかどうかの選択肢が表示されます。一人が「失敗」に投票しただけで、失敗させることができます。ミッションにおいて、誰が失敗に投票したかは、わからないようになっています。</p>
<p> 逆に言えば、ミッションを失敗させることが出来るのはスパイだけです。もしそのミッションが失敗したならば、スパイが紛れ込んでいる証拠です。推理し、できるだけ選ばないようにしましょう。</p>
<p> さて、ここで引っかかることがあるかもしれません。スパイはお互いにプライベートチャットのようなもので、お互いにチャットすることができません。というのは、お互いにチャットができると、簡単に戦略が立てられてしまうからです。</p>
</div>
</body>
</html>