雨谷の日和

過去19年で2,600を超えるアニメの第1話だけは見続けた僕のお勧めアニメがハズレなはずがない

2004-10-01から1ヶ月間の記事一覧

人狼BBS作成日記61

いつものように、ここまでのスクリプトを置いておきます。 →ログファイル →ソースコード →実行結果(※実際には入力できないように機能をオフにしてあります) コマンドも入力だけはできるようになりました。ユーザ側の機能的には、これくらいになるのかな?…

人狼BBS作成日記60

さて、メインルーチンの方も見ておきましょう。 ここでコマンド入力もできるようにするので、入力系の処理分岐が増えます。 &SYSIN_TIME; &STDIN_QUERY_STRING; if( $Query_Tbl{'mode'} == 51){ if( $Query_Tbl{ 'msg' } ne "" ){ &FILEIN_MSG; &FILEOUT_VOT…

人狼BBS作成日記59

入力フォームで入力して頂いたコマンドは、ファイルにコマンド行として追記することになります。 投票コマンドの場合、以下のようになるでしょうか。 sub FILEOUT_VOTE { $temp = "$Day_Count_Max<>$Query_Tbl{'mode'}<>$Login_Index<>$Time_Stamp<>$Query_T…

人狼BBS作成日記58

では、襲撃の場合を見てみます。 sub STDOUT_ATTACK_FORM { print "<div class=\"cell\"><div class=\"char\">\n"; print "<img class=\"char\" src=\"$Char_Icon[$Login_Index]\" width=\"50\""; print "height=\"50\" alt=\"$Char_Name[$Login_Index]\"></div>\n"; print "<div class=\"name\">人狼の襲撃</div>\n"; print "</div>

人狼BBS作成日記57

では、投票するための入力フォームを考えてみましょう。 以下のような感じになるでしょうか。 sub STDOUT_VOTE_FORM { print "<div class=\"cell\"><div class=\"char\">\n"; print "<img class=\"char\" src=\"$Char_Icon[$Login_Index]\" width=\"50\""; print " height=\"50\" alt=\"$Char_Name[$Login_Index]\"></div>\n"; print "<div class=\"name\">$Char_Name[$…</div></div>

人狼BBS作成日記56

ここまでの結果を置いておきます。 →ログファイル →ソースコード →実行結果(※実際には入力できないように機能をオフにしてあります) 表示だけはできても、まだ入力ができないのであまり意味はありませんね。 まあ、内部的なデータ保持はできているので、あ…

人狼BBS作成日記55

さて、読み込んだデータをHTMLに出力することを考えてみます。 まずは各データごとに、出力用のサブルーチンを作ってみます。 ほとんど発言の出力と同じなので、襲撃設定の場合のサブルーチンを見てみましょう。 sub STDOUT_ATTACK { ($Msg_Date, $Msg_Type,…

人狼BBS作成日記54

次は、襲撃と処刑の場合について考えてみます。 ただ、まだ日付更新の実装を全く考えていないので、とりあえずデータを読み込むことだけを考えてみます。 襲撃と処刑で変わる状態はキャラクターの生死フラグということになると思います。 ですから、そのため…

人狼BBS作成日記53

さて、次は襲撃/占い/護衛のデータの読み込みを考えてみます。 まず、以下のようにデータを格納する変数を用意しておきます。 @Exec_Attack = (-1, -1); @Exec_Fortune = (-1, -1); @Exec_Guard = (-1, -1);これらは第二候補まで設定できないといけないので…

人狼BBS作成日記52

まずは投票から実装してみます。一番簡単そうなので。 最初に、各キャラクター毎の投票設定を格納するための変数を用意しておきます。 @Char_Vote = ();これに投票設定を読み込んでいくことになりますね。 読み込みルーチンは、以下のようにしてみました。 s…

人狼BBS作成日記51

さて、コマンドの割り当てが終わったので、今度はそれぞれのコマンドのデータとしてどういうものを持っていればいいのかを考えます。 51:投票設定 これは投票先のキャラクターの番号を1つ持っておけば良いでしょう。以下のような感じになります。 2<>51<>0…

人狼BBS作成日記50

さて、人狼ゲームの通常ルールであれば、発言のほかに実行できるコマンドは以下のようなものがあります。 1、投票(生存者):投票設定、投票集計、処刑実行 2、襲撃(人狼):襲撃設定、襲撃実行、襲撃成功 3、占い(占い師):占い設定、占い実行 4、…

人狼BBS作成日記49

さて、いよいよ投票とかを実装してみたいと思います。 基本的な方針として、ログファイルは追記モードでログを増やして行くので、投票とかもそういうデータフォーマットで指定するように考えてみます。 今は発言用とシステムメッセージ用のコードしか無いの…

人狼BBS作成日記48

ということで、今までの変更結果を置いておきます。 →ログファイル →ソースコード →実行結果(※実際には入力できないように機能をオフにしてあります) データのフォーマットの変更がメインだったので、あまり見た目の変化はありませんね。 さて、次はこれに…

人狼BBS作成日記47

昨日のメインルーチンから呼び出されるサブルーチンを一応掲載します。 まずはヘッダーとフッター。 sub STDOUT_HEADER { print "Content-type: text/html\n\n"; print "<html><head><title>人狼BBS - $Vil_Name</title>\n"; print "<link rel=\"stylesheet\" type=\"text/css\" href=\"$Vil_Css\">\n"; print "</head><body class=\"mode01\">\n"; print "<center></center></body></html>

人狼BBS作成日記46

さて、HTMLの出力側も整理してみました。 各部分の出力をサブルーチン化して、メインの流れを分かりやすくすると、以下のようになりました。 sub STDOUT_HTML { &STDOUT_HEADER; &STDOUT_DAY_LIST( "header" ); for($index = 0 ; $index < @Msg_Line; $index…

人狼BBS作成日記45

データフォーマットを変更したので、読み込み部分にも改変を。 sub FILEIN_MSG { if( open( LOGFILE, "<./msg.txt" ) ){ flock( LOGFILE, 1 ); $line = <LOGFILE>; $line =~ s/\r//g; ($Vil_Name, $Vil_Img, $Vil_Css) = split( /<>/, $line); $Day_Count = $Query_Tb</logfile>…

人狼BBS作成日記44

さて、データフォーマットの方にも手を入れます。 追記モードだけでデータを作るのであれば、一行目に現時点の日付とキャラクター人数を入れておくのは不味いですね。 ということで、これらを排除しないといけません。 ただ、そうするとキャラクターのデータ…

人狼BBS作成日記43

さて、そろそろデータフォーマットとかの見直しを考えたいと思います。 まずは、ログインしたプレイヤーごとに見えるメッセージや出来る操作を切り分けしたいですね。 ということは、キャラクターのデータとして、メモリ上に役職や生死のフラグを持つ必要が…

妻toメイド喫茶2

下条氏が、そのときの模様を書いておられますね。 →2004年10月10日:最終兵器kasumi あとは未鏡氏からもコメントいただいています。 妻の人のチャイナドレス、とっても似合ってましたョ。 女性は子供を一人生んだあとが一番いいとよく言われますが、…

人狼BBS作成日記42

例によってスクリプトとかを置いときます。 →ログファイル →ソースコード →実行結果(※実際には入力できないように機能をオフにしてあります) タイプごとのメッセージ(人狼の囁きとか霊話とか)でもほとんど同じように入力できてしまいますね。ただ、実際…

妻toメイド喫茶

なんかね、妻の人が今日はメイド喫茶に遊びにいってきたらしいんですよ。 メイド喫茶。アキバとかにありますね。ええ、知ってますよ。 ……行ったことありますね私。 友達と行ってきたらしいんですよ。夫である私と、息子を置き去りにして。メイド喫茶とやらに…

人狼BBS作成日記41

タイプ別の入力フォームは、hidden で埋め込んでいるmode パラメータを変えることで判別すれば良いだろう。 ただ、見た目的に色々と考えないと誤入力なども懸念されるから、そこら辺も工夫したいところです。 ということで、以下のようにしてみます。 sub ST…

人狼BBS作成日記40

実際のスクリプトとかを置いときますね。 →ログファイル →ソースコード →実行結果(※実際には入力できないように機能をオフにしてあります) これで基本的な入力方法まではできたことにします。あとは、投票とか襲撃設定とかをどのように入力させるかとか、…

人狼BBS作成日記39

今度はFILEOUT_MSG の説明を。 sub FILEOUT_MSG { $temp = "$Day_Count_Max<>$Query_Tbl{'mode'}<>0<>$Time_Stamp<>$Query_Tbl{'msg'}\n"; open( LOGFILE, ">>./msg.txt"); flock( LOGFILE, 2 ); print LOGFILE $temp; close( LOGFILE ); }一行目で、メモリ…

人狼BBS作成日記38

今日はSYSIN_TIME についてをまず。 入力した発言については、その書き込みの時間を記録しておくべきだと私は思っています。発言の流れの確認、間隔の確認は、人狼BBSでの一つの醍醐味だと思うからです。 ということで、SYSIN_TIME はその入力時間をTime_…

よっぱらい〜

今日は会社の飲み会だったので日記はお休み〜。 ねむいよ?

人狼BBS作成日記37

さて、今日からは発言のための入力方法の実装に入ることにします。 まずは、入力用のフォームをHTMLに追加しないといけませんね。こんな感じでしょうか。 print "<form method=\"POST\" action=\"$Cgi_Main\">\n"; print "<input type=\"hidden\" name=\"mode\" value=\"01\">\n"; print "<textarea cols=\"60\" rows=\"5\" name=\"msg\" wrap=\"off\"></textarea><br>\n"; print "</form>

人狼BBS作成日記36

ということで、いつものようにここまでで出来たものの実例を。 →ログファイル →ソースコード →実行結果 1〜3日目を表示することが出来るようになってます。メッセージ内容はでたらめなので、あまり気にしないで下さい。 一応、1〜3日目以外の不正な日付…

人狼BBS作成日記35

さて、日付を渡す方法はとりあえずGETを使うことにします。 ページのリンクとして、以下のようなURLを使えば良いでしょう。 http://www.hoge.jp/jinro.cgi?day=1上記であれば1日目のログを表示させるという感じです。 ただ、それだけだと、もしもdayパラメ…