2014年08月02日

移転案内

初投稿から約八年半ほどやってましたが、この度レンタルサーバー側で一括管理しようということで移行を行いました。

移転先:K'nnon的日常日記 RSS

今までは電源系ゲームとそれ以外に分けてましたが、同じBlogで取り扱っていきます。

 

今回の移転に伴い、現存のBlogについては8月末をめどに閉鎖する予定です。

 

これまでの記事はすでに新サイトに移転済みですので、そちらでの閲覧くださいませ。

活動休止期もありましたが長いお付き合いありがとうございました。
引き続き、移転先のBlogの方をご愛顧願いただけたら嬉しく思います。

posted by K'nnon at 14:27| Comment(0) | TrackBack(0) | PC:Minecraft

2013年10月01日

量子人狼の奇妙な役職を入れてみる

QWolfでは村人、占い師、人狼以外の役職も用意されています。
今回はその説明など。元サイトの役職一覧を訳しただけですのでご了承くださいませ

  • 村人(Villagers)
    ただの村人です、特殊な能力はありません。
    すべての人狼を死亡させることで勝利します。
  • 占い師(The Seer)
    村側の人間で毎晩一人を占い、その結果を知ります。
    占い結果は「村側」「狼側」で示されます。

  • 蘇生者(The Reviver)
    村側の人間でゲーム中に1度死亡した人を蘇生できます。
    蘇生した人は確定した役職のままゲームに復帰します。
    アプリ側ではreviveコマンドで処理を行います。

  • 道化(The Jester)
    村側の人間で能動的な能力は持ちません。
    占われた場合、その結果はランダムに示されます。
    投票において(役職を持たない)村人に投票した場合、役職が愚者に変更します(投票対象が村人である世界では愚者に変わったとして記録されます)。

  • 愚者(The Fool)
    中立の役職で村人と人狼の戦いに興味はありません。勝利条件は「自身が吊られる」ことです。
    占われた場合、その結果はランダムに示されます。
    愚者が親狼に投票した場合、役職が道化に変更します(投票対象が親狼である世界では道化に変わったとして記録されます)。

  • 裏切り者(The Traitor)
    普通の村人ですが勝利条件は人狼側と同一です。占われると村側と示されます。
    村側は裏切り者を吊る必要はありませんが、人狼側の勝利条件(村の半数以上が人狼である)を確認する際に人数に数えません。

  • 呪術師(The Sorcerer)
    占い師同様、毎晩一人を占いその結果を確認できます。
    しかし、呪術師は人狼側であり自身は「人狼側」と示されます。
    村側は呪術師を吊る必要はありませんが、人狼側の勝利条件を確認する際に人数に数えません。

  • 人狼(Werewolves)
    人狼は村を襲います!人狼には序列があり生き残っている内最も序列の高い人狼が毎晩村人を襲撃します。
posted by K'nnon at 18:14| Comment(0) | TrackBack(0) | PC

量子人狼アプリで遊んでみる

前回の続き、ゲームを開始してから使う各コマンドの話なり

−1.ヘルプ表示(help)
普通はこれを0にするべきだよねぇ……
使用可能なコマンドの一覧及び各コマンドの説明を表示します。
help :コマンド一覧を表示
help <コマンド>:コマンドの説明を表示
なお、一部コマンドは記載通りの挙動をしない(next/advance)、一覧に表示されない(kill/collapse)のもあるのでご注意を。

ちなみに、この文章もソースファイル見ながらこれ書いてます


3.5.開始時の注意
ゲーム開始時、プレイヤーは内部でシャッフルされ個別の番号を割り振られ、本人にのみ教えられます。
そしてゲーム中確率表は番号でのみ提示されます。このため、各人自分の確率はわかりますが他の人がどの確率かわからないようになっています。

4.状況確認(Stats)
参加者、役職、未行動者のリストを表示します。
stats:全体情報(現フェイズ、参加者、役職、未行動の各一覧)を表示
stats <PL名> :プレイヤー情報(番号、役職、行動状態)を表示
注意:複数のプレイヤーを指定しようとするとプログラムがエラーを起こし停止します!

5.確率表(table)
このゲームの主役となる確率表を表示します。
コンソールにはプレイヤー提示用のものが表示され、同時に別ウィンドウで詳細が表示されます。
設定しておくと自動でクリップボードにもコピーされるので便利です。

6.世界一覧(gtable)
現在の状況で収束しうる役割分布の全組み合わせを表示します。
1列が1つの役割配分=世界に該当し、左からプレイヤー番号が1から順になります。
また、Xが付いているものは「既に死亡している」か「その世界に収束した時死んでいること確定する」ことを示しています。

7.襲撃(maul/attack)
あるプレイヤーが別のプレイヤーを襲撃したことを記録します。
どちらのコマンドでも使い方は変わりません。
maul <攻撃者1>,<対象1>,<攻撃者2>,<対象2>,...:攻撃者Xは対象Xを攻撃します。
対象は省略できず、不足していた場合エラーを返します。
また「人狼率が0%の人が襲撃しようとする」「死者を対象に取る」場合その部分だけ無視されあとの処理は行われます。
攻撃者及び対象はプレイヤー名に入力しないといけません(一部でも特定可能であれば、名前の一部だけでも認識してくれます)。

8.預言(peek)
あるプレイヤーが別のプレイヤーの正体を探ることを記録します。
コマンドの使い方と注意点はは襲撃と同じです。

9.投票(vote)
昼の吊り対象として誰が誰に投票したかを記録します。
コマンドの使い方及び注意点は襲撃と同じです。

10.プレイヤーを処刑(kill)
吊りの対象になったり何らかの都合でプレイヤーを死亡させるために使用します。
kill <PL1>,<PL2>....:指定した人を処刑
処刑されたプレイヤーは直ちに死亡し、その役職が確定します。
場合によってはこの確定によって一部の世界が排除され、様々な余波が起こることもあります

11.プレイヤーの役職を確定(collapse)
勝利陣営が確定したものの全員の役職が確定していない、完全に膠着状態に陥りプレイヤーの行動では進行しない時に使用します。
collapse <PL1>,<PL2>....:指定した人の役職を確定
役職はその時点での確率分布に従って定められます。
場合によってはこの確定によってさらに情報が確定することがあります。

12.ターンを進める(next/advance)
ゲーム内の時間を進め、行動を確定します。
このコマンドを打つまでは襲撃及び預言の対象の変更が可能です(プレイヤーごとに最後に指定したもので行動を行います)。
この処理の都合上、預言の結果はこのコマンドを実行したあと一括でコンソールに表示されます。
注意:helpには引数でプレイヤー名を入力すると処刑するとありますが、実際は処刑されずに進行します。そのため、killで処刑しなければなりません。

 

基本的に「tableで確率表を抽出、提示」「行動(maul/attack/peek/vote)を選択してもらい入力」「(昼のみ)killで処刑」「nextで時間をすすめる」のサイクルで進んでいきます。

あとは追加されている役職とシステム系のコマンド解説かな?

posted by K'nnon at 02:15| Comment(0) | TrackBack(0) | PC

量子人狼アプリ触ってた。

巷で噂の「吊られるまで役職がわからない」ことに定評のある不思議な人狼バリアントシステム、量子人狼。
このゲームの進行用ツールを作成していた人がいたので、実際に触ってみた。

ちなみにソフトはこちらから

触った感じとしては「ルール及び操作を把握すると十分オフライン運用が可能じゃないかな?」と言ったところ。

個人的に扱いやすいGUIの話をしようかと思ったけど、

  • ウィンドウサイズが変更できない
  • 可能性分布(可能性のある役職分布及び(推定)死亡者の)が表示されない
  • クリックが意外と面倒

だったため、試しにCUI(コマンドライン)版を使ってみたところ、
最初のとっつきにくさを抜けると快適に使えることが判明。
(元々コマンド打つのが苦にならないからともいう)

というわけでざっくりと流れを。
0.ゲームのリセット(new)
すべての設定を破棄して新しい村を作るコマンド、実行前に確認してくれる(村を放棄する場合常に聞いてくる)。
開始前であればこれで作りなおせばいいのでとりあえず覚えておくと吉。

1.プレイヤーの登録(Players)
Playersコマンドを使用することでプレイヤーの設定及び現参加者のリストを確認できる。
Players :現参加者の一覧を表示
Players <PL1>,<PL2>,... :プレイヤーを設定
※プレイヤー設定時、人数にかかわらず既に設定したものを全て消したあと再設定される(確認あり)。
そのため、無理にプレイヤー名を入れるより短い名前で入れておくほうが後々便利。

2.役割の設定(Roles)
プレイヤーを設定すれば次は役職、Rolesコマンドで設定を行う。
roles :現在使用する役職一覧を表示
roles <Role1>,<Role2>,...:役職を設定、確認は行われないので注意を
対応している役職は以下のとおり(大文字小文字は問わない)
Seer, Reviver, Jester, Fool, Traitor, Sorcerer, Werewolf(wolf), Villager
役職の詳細は別記事にて。

3.ゲームの開始(Start)
プレイヤーと役職を設定するとあとはゲームを開始するのみ……かと思いきや
start :現ゲームで設定可能な最大世界数を表示
start <数値>:ゲームの開始
最大世界数:このアプリでは開始時点で世界(各プレイヤーに割り振られる役職の組み合わせ)の少なくとも5%をランダムに消滅させた状態で開始します。そのため、一度世界数の設定を確認した上で数値入力して開始することになります。
なお、プレイ人数及び役職が増えて世界数が膨大になると処理に時間がかかるため、無理に最大世界数をではなくより少ない値で開始することをおすすめします。


という訳でこれで量子人狼が開始となります。
続きは別記事にて。

posted by K'nnon at 01:19| Comment(0) | TrackBack(0) | PC

2013年02月07日

Forestry:Multifarm作ってみた

というわけで実際に建設してみた。

2013-02-07_22.07.08.png

これで中規模(Farmblock4×4×4、農地14×14)で資材類は全て地下で管理しています。
基板は金を使用、自動化モード(南北泥炭/東西小麦)にしています。
#方向指定と使用領域の確認も兼ねて。上級の基板でないと指定できない東西のほうがより多くの土地を利用できます。つまり方角間違えた。

あとは泥炭の自動補給と化学肥料の自動製作辺りですかねぇ……
posted by K'nnon at 22:26| Comment(0) | TrackBack(0) | PC:Minecraft

Forestory:Multifarm始めました

詳細はまた気が向けば作るとして、ざっくりと箇条書き。
参考になるかわからないけど。

・専用のファームブロックを指定の形に組み上げる+農場の土台も指定ブロックで配置することで組み上げたブロックが単一の大型機械化。
・構成ブロックの他に水を供給するバルブ、エネルギーを供給するギアボックス、アイテムの出し入れを行うハッチの各ブロックを組み込む。
・必要なのは水、土壌、種/苗、化学肥料(堆肥などは不可)。GUIの所定の位置に配置することで供給される。
 +水についてはバルブから注水すると自動化できて便利(今のところ水以外は要求されない)。
 +ハッチの出し入れは指定できないので、2つ作るとちょっと大変。

・作業内容(何を植えるか)は基板でプログラミング、基板につけた真空管の種類で判断される。
 +これに伴い基板が4種類(スズ→青銅→鉄→金)に変更。グレードによってつけられる真空管の数が変わる=動作の幅が変わる
 +デフォルトは植林。苗木を植えて原木や苗木、林檎を収穫。

・収穫物のうち機械が使うものは自動的に再利用(素材スロットに自動挿入)している模様。
 +苗木がなぜか収穫できていないのはこれが原因かも

・自動化と手動化の2モードが存在、これも基板で変更する
 +はんだごてのGUIでモードを選択するように(エンジン基板/自動化農場/手動農場)
 +自動化農場は土の整備から刈り取り物の回収まで一手に引き受ける。
 +手動農場は自前で土地を置く必要があるが種蒔きから収穫までを実行してくれる(一部例外有り)
 +手動農場でないと作れないものもあるので最終的には手動になるかも。

化学肥料が要求されるので、とりあえずは泥炭エンジンでエネルギー供給しつつ化学肥料自動生産ラインを作って行くことになるかな、と思ってます。

posted by K'nnon at 17:51| Comment(0) | TrackBack(0) | PC:Minecraft

2013年02月06日

Minecraft:Sim-U-Kraftの建物必要資材算出スクリプト作ってみた

久しぶりにやる気が出たのでちまちまとMinecraftをプレイ中。

これまでは触ってなかったModに手を出すようになり、色々と使ってます。

そんな中、気に入っているSim-U-Kraftの最新版ではNPCが建物を建築する際、その建物で実際に使用するブロックが要求されるモードが追加されています。
で、建物の必要資材が建物を選択しないとわからないのがとても不便なので、いっその事データから資材を計算して別ファイルに出しておこうという結論に至った次第。

でまぁ、ざっくりとPerlスクリプトを組んでみた。

Count.pl

以下スクリプト本文
-----------------------------------


#ブロックIDリスト
%block_id = (
"0","Air",
"1","Stone",
"2","Grass",
"3","Dirt",
"4","Cobblestone",
"5","Wooden Plank",
"6","Sapling",
"6:1","Redwood Sapling",
"6:2","Birch Sapling",
"7","Bedrock",
"8","Water",
"9","Stationary Water",
"10","Lava",
"11","Stationary Lava",
"12","Sand",
"13","Gravel",
"14","Gold Ore",
"15","Iron Ore",
"16","Coal Ore",
"17","Wood",
"17:1","Redwood",
"17:2","Birchwood",
"18","Leaves",
"18:1","Redwood Leaves",
"18:2","Birchwood Leaves",
"19","Sponge",
"20","Glass",
"21","Lapis Lazuli Ore",
"22","Lapis Lazuli Block",
"23","Dispenser",
"24","Sandstone",
"25","Note Block",
"26","Bed Block",
"27","Powered Rail",
"28","Detector Rail",
"29","Sticky Piston",
"30","Web",
"31","Dead Shrub",
"31:1","Tall Grass",
"31:2","Live Shrub",
"32","Dead Shrub",
"33","Piston",
"34","Piston Head",
"35","White Wool",
"35:1","Orange Wool",
"35:2","Magenta Wool",
"35:3","Light Blue Wool",
"35:4","Yellow Wool",
"35:5","Light Green Wool",
"35:6","Pink Wool",
"35:7","Gray Wool",
"35:8","Light Gray Wool",
"35:9","Cyan Wool",
"35:10","Purple Wool",
"35:11","Blue Wool",
"35:12","Brown Wool",
"35:13","Dark Green Wool",
"35:14","Red Wool",
"35:15","Black Wool",
"37","Dandelion",
"38","Rose",
"39","Brown Mushroom",
"40","Red Mushroom",
"41","Gold Block",
"42","Iron Block",
"43","Double Stone Slab",
"43:1","Double Sandstone Slab",
"43:2","Double Wooden Slab",
"43:3","Double Cobblestone Slab",
"43:4","Double Brick Slab",
"43:5","Double Stone Brick Slab",
"44","Stone Slab",
"44:1","Sandstone Slab",
"44:2","Wooden Slab",
"44:3","Cobblestone Slab",
"44:4","Brick Slab",
"44:5","Stone Brick Slab",
"45","Brick",
"46","TNT",
"47","Bookshelf",
"48","Mossy Cobblestone",
"49","Obsidian",
"50","Torch",
"51","Fire",
"52","Monster Spawner",
"53","Wooden Stairs",
"54","Chest",
"55","Redstone Wire",
"56","Diamond Ore",
"57","Diamond Block",
"58","Workbench",
"59","Wheat Crops",
"60","Soil",
"61","Furnace",
"62","Burning Furnace",
"63","Sign Post",
"64","Wooden Door Block",
"65","Ladder",
"66","Rails",
"67","Cobblestone Stairs",
"68","Wall Sign",
"69","Lever",
"70","Stone Pressure Plate",
"71","Iron Door Block",
"72","Wooden Pressure Plate",
"73","Redstone Ore",
"74","Glowing Redstone Ore",
"75","Redstone Torch (off)",
"76","Redstone Torch (on)",
"77","Stone Button",
"78","Snow",
"79","Ice",
"80","Snow Block",
"81","Cactus",
"82","Clay",
"83","Sugar Cane",
"84","Jukebox",
"85","Fence",
"86","Pumpkin",
"87","Netherrack",
"88","Soul Sand",
"89","Glowstone",
"90","Portal",
"91","Jack-O-Lantern",
"92","Cake Block",
"93","Redstone Repeater Block (off)",
"94","Redstone Repeater Block (on)",
"95","Locked Chest",
"96","Trapdoor",
"97","Stone (Silverfish)",
"97:1","Cobblestone (Silverfish)",
"97:2","Stone Brick (Silverfish)",
"98","Stone Brick",
"98:1","Mossy Stone Brick",
"98:2","Cracked Stone Brick",
"99","Red Mushroom Cap",
"100","Brown Mushroom Cap",
"101","Iron Bars",
"102","Glass Pane",
"103","Melon Block",
"104","Pumpkin Stem",
"105","Melon Stem",
"106","Vines",
"107","Fence Gate",
"108","Brick Stairs",
"109","Stone Brick Stairs",
"110","Mycelium",
"111","Lily Pad",
"112","Nether Brick",
"113","Nether Brick Fence",
"114","Nether Brick Stairs",
"115","Nether Wart",
"116","Enchantment Table",
"117","Brewing Stand",
"118","Cauldron",
"119","End Portal",
"120","End Portal Frame",
"121","End Stone",
"122","Dragon Egg",
"123","Redstone Lamp (inactive)",
"124","Redstone Lamp (active)",
"125","Double Wooden Slab",
"126","Wooden Slab",
"127","Cocoa Plant",
"128","Sandstone Stairs",
"129","Emerald Ore",
"130","Ender Chest",
"131","Tripwire Hook",
"132","Tripwire",
"133","Emerald Block",
"134","Spruce Wood Stairs",
"135","Birch Wood Stairs",
"136","Jungle Wood Stairs",
"137","Command Block",
"138","Beacon Block",
"139","Cobblestone Wall",
"140","Flower Pot",
"141","Carrots",
"142","Potatoes",
"143","Wooden Button",
);


#データファイルを読み込み。
#1行目は建物のサイズ、2行目は文字とブロックIDの対応表、3行目以降が建物データ本体で1行1段。

@data = <STDIN>;
chomp @data;

2行目をハッシュにするために変換処理。現バージョンでは建築資材のチェックにデータ値を参照していないようなので外しておく。
$data[1] =~ tr/=;/,,/;
$data[1] =~ s/:\d+//g;

#ID対応表の作成。
%block_data = split(",",$data[1]);

#建物データを1つにまとめる
for($count = 2 ; $count <= $#data ; $count ++){

$block .= $data[$count];

}
#面倒なのでchopで後ろから1文字ずつ削り、その文字が何回目かを記録。多分これが一番楽。
while($block){

$code = chop $block;

$block_count{"$code"} ++;

}
#結果の記述。ブロック側で引っかかった文字を対応表を用いてブロック名を抜き出し、書きだす。
#なお、Control Box及びLight Blockは対応表にないので直接指定。
foreach $key(sort keys %block_count){

if($key eq '$'){
$block_name = "Control Box";
}elsif($key eq '*'){
$block_name = "Sim-U-Lightblock"

}else{
$block_name = ($block_id{$block_data{$key}});
}

print $block_name . " : " . $block_count{$key} . "\n";

}

------------------------------------------
スクリプト以上。

多分もっとうまくする方法はあるんだろうけど、それは誰かに任せることにする。
posted by K'nnon at 01:45| Comment(0) | TrackBack(0) | PC

2011年10月23日

備忘録:Xlink on Ubuntu

まだ万端とは言えないけど、何かあった時に0から作業するのが面倒なのでメモ。
だいたい時系列で箇条書きなので多分参考にできないです。

・パッケージを落として解凍、書庫マネージャーでD&Dするだけの簡単なお仕事。
・sudo起動。Chromeエラー。
*ChromeがRootで起動できないため設定画面も開けない状態に(別ブラウザで開くことまで考えつかなかった)

・エラー解決法を探りつつルータのポート開放、これはメインのPCのポート開放をやっていたので楽な作業
*LANアダプタのついたパソにポートを飛ばすようにすればオッケー

・WineはさんでのWin版起動もなかなかうまく行かなかったのでChrome周りの解決法を検索。
*Wineの設定側でOSバージョン指定してもアウト、UIは開けたもののサインイン不可

・結局Rootチェックを外してブラウザUI起動成功
*バイナリを触る力技。「ubuntu Chrome Root 実行」辺りで検索を
**やるときは自己責任、それがLinux。

・アドホック周りも以前設定しておいたネットワークマネージャーのものを強引に利用。
*Rutiltが何故かエラー落ちするのでこの方法を。
**やな予感がして端末からsudo起動を試したら普通に起動。まぁ、世の中そんなものです

・設定周りもひと通り終了、文字コードも多分大丈夫。
*この辺は接続方法を解説しているところで普通に見かけるので略。

Todo
・文字セットCP 932関連のエラーの抜け方
・ChromeではなくFirefoxで自動起動する方法
Rutiltのエラーの原因究明(このためにネットワークマネージャーを使用)ただのパーミッション問題でした。
・一緒にプレイしてくれる人

結論:困ったときは端末からsudo。
posted by K'nnon at 22:41| Comment(1) | TrackBack(0) | PC

2011年04月08日

Einstein Puzzle

このところTwitterで呟いてばかりですが、電源系ゲームもちゃんと遊んでいますよ

以前はよくペンシルパズルの本を買ってやったりしてましたが、最後のほうの問題に手をつけられず(解き口さえ分からないことも)断念することが多かったので、最近は買ってません。

代わりにフリーソフトで色々やってますが、その中で最近ちと気に入ったのがEinstein Puzzle(英語です)。

11040802.jpg

元々はサブマシンに入れるゲームを探していた時にたまたま目に付いてインストールしてみたのがきっかけ。
ルールをよく理解せずにゲームオーバーを繰り返し、ルールをきちんと読み直したという変な流れでしたが、実際にルールが分かるときちんとした論理パズルなので楽しんでいる、というところです。
パズル自体は古典の論理パズルで6種類のカテゴリそれぞれに6個の項目があり、渡されたヒントから全ての項目の場所を特定する、というもの。

ヒントは最初から場所が分かっている項目のほかに
・同じ行に存在する2項目
・隣接する行に存在する2項目
・ある項目より右の行に存在する項目
・連続した3行に存在する3項目
が与えられています。

なお、1回でもミス(そこに存在しない項目を確定、もしくは存在するはずの項目を除外)すると記録が残らなくなります(当然と言えば当然ですが)。
ちょっとした時間を潰すつもりが結構な時間を費やすこともありますが、暇つぶしに一つ。
posted by K'nnon at 22:34| Comment(0) | TrackBack(0) | PC

2011年02月22日

アセンションPC(英語版):メモ

MHP3やらナンやらで結構電源系もプレイしてますが、なにせTwitterが便利すぎるので……

Ascension AI game
http://www.slightlymagic.net/forum/viewtopic.php?f=61&t=3584

ドミニオン系ゲーム「アセンション」をPCで遊べるもの。
一人プレイ専用で4人プレイ、AI3つが相手です。

画面はこういう感じ
11022201.jpg

下に手札が出るのでプレイするカードをクリックして、上の場から欲しいカードをクリックする、という感じ。
カードのシャッフルやらめくる、得点マーカーのやり取りが自動かつ一瞬ですので、カードを覚えていれば1プレイ10分もかからず。

まぁ、AIがあまり強いとはいえないので慣れてくると暇つぶしにもならなくなるかもしれませんが、ね……
posted by K'nnon at 09:41| Comment(0) | TrackBack(0) | PC