2003年 04月08日(Tue) 何か今年は病院行くことが多くない?
_ 朝、今日も朝食を食べてがんばって会社に行こうと左手でレンジの扉を開けようとした途端、背中に激痛が。左手や首を動かすととても痛いので病院に行ってみる事に。
_ どうやら筋違いを起こしているらしいです。お医者さんにもしばらくジム行っちゃダメだよ。と言われてしまいました。今月はスポーツジム月間だったはずなのに。
_ ストレッチ不足なんでしょうかね? それにしてもジムで怪我したわけでもないのですから、因果関係が良く分かりません。寝相が悪かったとか?
_ そういえばそんな日でしたね。せっかくの誕生日も戦争中で残念というコメントを見たような。さすがにアトムの誕生日までにアトムのようなロボットは作れなかったか…(笑)。
_ それにしても今年はケガや病気が多いのでは? いくらネタが無いからって自分でネタ作らなくても…って感じですか。
_ ツッコミもらったので見に行ってみると、TOPが変わっていたり。4/1の事件と現状はBBSを見れば分かりますが…勤務中なのだから処分は仕方が無いかと。実際ある一人の駅員さんが真面目に働いていないのを見ると他の人も同じ疑いをかけられるわけで。運転手が遊び気分で運転してる列車があったりしたら乗りたくないでしょ? 命にかかわるし。もう少し考えて行動しなきゃ(と自分にも言いきかせてみるテスト)。
2005年 04月08日(Fri)
_ お知らせ。ユウ氏がGWに飲み会やろうと言っています。参加希望の方はツッコミまで。
_ ところでひま〜の氏は連休中帰ってくるの?
_ GNO。新しい作戦が始まりましたが、エリートが強すぎて今回は完全にダメそう。どうしよ?
2006年 04月08日(Sat)
_ [ツッコミレス]というわけで
早めに参上致しましたよw あとFaithはただの冗談ですから忘れてください(^^;
_ [D-0]グランプリ予選その1
まずは愛知でも最も過酷と思われるフューチャービーの予選に出場してきました。32人の5回戦。プレーヤーのレベルも高め。まあ最初だし練習になれば良いかなと思いつつ。
デッキは前回書いてた通り6ゲートルドルフ。果たして何処まで通用するか?
1回戦は緑単と当たりました。大地の塔でエナジーを超高速で貯めていくタイプ。この手のデッキの存在は知ってはいたんですが実は今回は正直想定外だったり。1戦目は運良く勝つものの、2戦目は相手の周りが非常に良く完全に叩き潰されて終わり。
2回戦の相手は白単。1戦目は引きに恵まれず完敗。でもサイドボード後は対策カード満載なのでかなり有利に。結局1勝1敗。
既に2戦終わって引き分けが2回。もう残りは全勝しかないというところまで追い詰められています。
3回戦。相手は青白。正直相性良すぎてボーナスキャラ。軽く2勝。
4回戦。同系対決。でもこっちの方が同系を意識したデッキ構成になってるので結局2戦とも圧勝。
ここまで終わって勝ち点は18点の暫定2位タイ。トップは19点で、18点が私を入れて3人。この4人の中で最後2勝できた人間が優勝というシチュエーションに。
で、運命の5回戦。とにかく勝つしかないというところに来て相手は想定外の緑単。…お疲れ様でした(T-T)
というわけでさっさと2敗してしまい、優勝は私の最後の対戦相手がもぎ取っていってしまいましたとさ。くそ〜、最終戦勝てばグランプリ本戦出場出来たのに…。
明日も頑張るぞ!
2007年 04月08日(Sun)
_ [その他]風邪でダウン中
一昨日帰った途端急に体調が悪くなりました。で、昨日の朝熱計ったら37℃オーバー。完全に風邪です。
一応病院には行ったけど、まだまだ薬飲まないとだるいなんてものじゃない状態。うーん。
_ [飲み会]飲み会
昨日はやむよし氏が東京に転勤することになったらしいという事で送別会。
集まったのはarc氏、伝説のY氏、やむよし氏、たぬき氏、ろんぐり氏、くろひょう氏、とも氏、こあら。氏、私。あと6月にやむよし氏が結婚するとのことで(おめでとうございます)、その相方さんも来られました。
結婚と言えばこあら。氏も6月に結婚するのだそうで。おめでとう。こちらの相方は写真見せてもらいました。
昨日の話はそんなところ。まあぶっちゃけ昨日は風邪で死に掛けてたからそんなにいろいろ話してないんですが(ぉ
2008年 04月08日(Tue)
_ [ツッコミレス]ツッコミレス
いやいや、普通にツアートライアルがあるから。むしろショップトライアルとツアーでレギュレーションが変わったりするから結構忙しいですよ?
2009年 04月08日(Wed)
_ [ツッコミレス]ツッコミレス
最近のぐぐるさんはブログに対する評価が高くて*1、それが原因のひとつとは思うのだけど、それにしても他に「葉月クルミ」で検索すると幸せになれそうなサイトとか無いんだろうか?
それともこれを機に葉月クルミ応援ブログとして地道に活動してみたりすると良いんだろうか?w
*1 おかげでアヴァ研はぐぐる対応に苦労している
_ [パチスロ][ツインエンジェル]昨日のTA2
いや今月はもう自粛予定だったんだけど、昨日夜突然ひろゆ氏から「TA2の良台押さえてるんだけど」と電話ががが。
今から行くと閉店まで1時間も打てないなぁと思いつつも、行ってみたらAT10連荘継続中のひろゆ氏の姿が。
で、交代して打ち始めたんだけど、話を聞く限りATのストックが残り10回はありそうな感じ。しかも途中でBIG中ALLベルとか引いて、ほぼ確実に閉店までにAT消化できない事が判明。
- 新規獲得ミッション
- No.05:RT5連
- No.06:RT10連
- とりあえず10連したところでタイムアップ。
- No.12:主題歌
- No.13:エンジェル・キャラソン
- No.14:ファントム・キャラソン
- No.15:初代主題歌
- No.48:レアリプレイ入賞特殊サウンド
- 聞こえなかった(T-T)
- No.54:ミニキャラ確定画面
- No.56:棒ナス確定画面
- No.66:RT中特殊BGM
- No.87:BIG中ALLベル
- ツンデレBIG選んだのに「狙ってみなさい」となかなか言われず(^^;
- No.92:TOTAL1000枚以上を獲得
- 新規獲得イラスト
- No.004:凪庵
- No.020:西又葵
- No.082:takenoko
とりあえずひろゆ氏には今度飯でも奢らないと。
2011年 04月08日(Fri)
_ [TCG][MTG]昔語り - プロツアーNY'98予選(その4)
遠征勢を倒して迎えた予選ラウンド最終戦はお互い全勝同士なので普通にIDして終了。オポネント差で2位だったが、もちろん決勝ラウンドに進む事ができた。
そして次の日。決勝ラウンドは8人によるロチェスタードラフトで行われる。ロチェスタードラフトというのは誰が何をピック(選択)したかが全員に分かるドラフト形式である。
とりあえず「余震/Aftershock」や「ホタル/Firefly」等をピックしながら赤を主張しつつ様子を見ていたところ、青の人気が薄かったので「マンタ・ライダーズ/Manta Riders」や「ガス化/Gaseous Form」等を取って赤青軽量級飛行デッキを作っていく。
途中で「ラースのドラゴン/Rathi Dragon」がドラフトテーブルに出現し、何人かが迷った様子を見せていた(なにせ結構リスクの大きいクリーチャーだ)が、しっかりと赤を主張していた上、昔、同じような大型飛行クリーチャーである「シヴ山のドラゴン/Shivan Dragon」がリミテッド戦で6ターン目に登場して、3発殴って勝ったという話を知っていたので、迷わずピック。
こうして順調に赤青デッキを作っていったのだが、地上の攻防を強化するため、緑から「落下中断/Broken Fall」と「ルートワラ/Rootwalla」をつまみ食いする形でピックして、赤青飛行ちょっとだけ緑というデッキを作り上げた。
なお「落下中断/Broken Fall」はドラフト前から絶対に1枚は欲しいと思っていたカードだったが、それよりも役に立ったのが「ルートワラ/Rootwalla」だった。序盤は4/4として相手のライフを削り、中盤以降の飛行クリーチャーでの決着を早めてくれる上、「焚きつけ/Kindle」等の除去に対する良い避雷針となって、こちらの要の飛行クリーチャーを守ってくれたのだ。
続く。
2012年 04月08日(Sun)
_ [ボードゲーム]ボドゲ定例会
まずは前回ルールが間違っていたヘックメックのリベンジ。正しいルールで遊ぶとジレンマ感が増してより面白く。
次にチルノのさんすう教室を少し遊んでから7つの島をプレイ。ドミニオンクローンとしては良く出来てる感。
その次はロスト・テンプル。あやつり人形のシステムを使った冒険ゲーム、何だけどちょっと微妙だった。あの傑作ゲームがどうしてこうなった。
昼食べて人狼を2回。村人側と人狼側が1回ずつ勝利。私は1回目はGM、2回目は村人で2日目に食べられたので、全く活躍の場が無かったり。
次に遊んだのはサンファン。初プレイだったけど、ルールも複雑じゃなくて結構好きかも。もう一度遊んでみたい。
フォレショレ。シンプルなせりゲー。ペンギンゲーでもある。せいぞんせんりゃくー。
最後はスプリングフィーバーを遊んで締め。
次回はGWに2泊3日のボドゲ合宿が予定されています。まさかのディプロマシー稼働があるか?
2013年 04月08日(Mon)
_ [銀英伝][TCG][Z/X]金曜の夜から日曜の夕方までの話
金曜夜。深夜バスに乗り新宿に向かう
土曜早朝。新宿着。高田馬場のネットカフェを見に行く。ボードゲーム貸出は午後からということで借りられなかったけど、部屋の雰囲気とかは確認できた。名古屋にもできると良いなぁ。
昼。舞台 銀河英雄伝説 第三章 内乱を鑑賞。安定の面白さ。ポプランとシェーンコップが全力で笑いを取りに来るんですけどw
夜。帰りのJR高速バスを初めて利用するので、念のため事前に乗り場を見に行こうと豪雨の中歩く。本当に凄い雨だった。そして手元のメールには「乗り場(新宿駅:新南口)」と書いてあったけど、どう見ても代々木駅です。豪雨の中ひと駅歩かされるとか。JR高速バスは他のバス会社と比べてもいろいろ微妙で、もう使わないかもしれない。
日曜早朝。名古屋着。とりあえず駅前のMANBOO行こうと思ったら移転してた。移転後の店舗に行ったら10人以上の待ちだったので、別のネットカフェへ。
10時前。シャワー浴びてZ/Xのイベント「英雄達の戦記(ヒロイックサーガ)第3章」へ。物販の列が半端無いのでスルー。
とりあえずプロモのために3戦。本気デッキ使ったので危なげ無く全勝。その後はブラブラと他人のゲームを観戦してました。
夕方。帰宅。なんか猛烈に寒いのですが。そして疲れがピークだったのでそのまま就寝。
とまあ、とても疲れる週末でしたとさ。
2014年 04月08日(Tue)
_ [TCG][ruby][プログラム]ブシロードTCG Scraper
以前似たようなプログラムを日記に載せてたけど、古いのでメンテを兼ねて使いやすくしてみた。
プログラムはこんな感じ
- bushiroad-tcg-scraper.rb
#coding: utf-8
require 'thor'
require 'mechanize'
require 'watir-webdriver'
require 'yaml'
#
#= ブシロード製TCGのカードリストをスクレイピングしてYAMLデータを出力するツール
#
#Authors:: ねくろん(@necron)
#Version:: 1.0 2014-04-07 necron
#Copyright:: Copyright (C) necron-web.com, 2014. All rights reserved.
#
module BushiroadTCGScraper
class CLI < Thor
#
#=== エキスパンションのリストを取得する
#
#入力:: config.yml
# proxy: [proxy, port]
# uri: カードリストのURI (例: http://ws-tcg.com/jsp/cardlist)
#
#出力:: expansion_list.yml
# text: エキスパンション名
# onclick: (同名エキスパンション対策用データ)
#
desc "get_expansion_list", "エキスパンションのリストを取得する"
def get_expansion_list
config = YAML.load_file("config.yml")
list = []
agent = Mechanize.new
agent.set_proxy(*config["proxy"]) if config["proxy"]
puts "connecting #{config["uri"]} ..."
page = agent.get(config["uri"])
(page/"div[@id='expansionList'] a").to_a.each do |link|
puts text = link.inner_text.strip
list << {"text" => text, "onclick" => link["onclick"]}
end
File.open("expansion_list.yml", "w") do |file|
file << YAML.dump(list)
end
end
#
#=== エクスパンションリストからカードのリンクリストを取得する
#
#入力:: config.yml
# expansion_list.yml
#
#出力:: card_link_list.yml
# エキスパンション名: [個々のカードのURI,...]
#
desc "get_card_link_list",
"エクスパンションリストからカードのリンクリストを取得する"
def get_card_link_list
config = YAML.load_file("config.yml")
expansion_list = YAML.load_file("expansion_list.yml")
puts "connecting #{config["uri"]} ..."
browser = Watir::Browser.new
browser.goto config["uri"]
list = {}
title = nil
begin
expansion_list.each do |expansion|
title = expansion["text"]
link = nil
browser.links.each do |i|
link = i if i.onclick == "#{expansion["onclick"]}"
end
link.click
array = []
n = 0
begin
sleep 1
flag = false
browser.links.each do |i|
if i.href =~ /cardno/
array << i.href
puts i.href
end
if i.text == '≫'
flag = true
end
end
browser.link(:text, '≫').click if flag
end while flag
list[title] = array
end
ensure
browser.close
File.open("card_link_list.yml", 'w') do |file|
file << YAML.dump(list)
end
end
end
#
#=== カードのリンクリストから個々のカード情報を取得する
#
#入力:: config.yml
# card_link_list.yml
#
#出力:: card_list.yml
#
desc "get_card", "カードのリンクリストから個々のカード情報を取得する"
def get_card
config = YAML.load_file("config.yml")
card_link_list = YAML.load_file("card_link_list.yml")
agent = Mechanize.new
agent.set_proxy(*config["proxy"]) if config["proxy"]
output = {}
card_link_list.each do |expansion, link_list|
list = []
link_list.each do |card_uri|
puts "connecting #{card_uri} ..."
page = agent.get card_uri
array = (page/'table.status td').to_a.inject([]) do |array, e|
array << e.inner_html
end
card = {}
if config["format"]
config["format"].each do |i|
card[i["key"]] = if i["regexp"].to_s.empty?
array[i["line"]]
else
Regexp.new(i["regexp"]).match(array[i["line"]]).to_a[1]
end
end
else
card["debug"] = array
end
list << card
end
output[expansion] = list
end
File.open("card_list.yml", 'w') do |file|
file << YAML.dump(output)
end
end
end
end
module Watir
class Anchor
attributes(:string => [:'onclick'])
end
end
BushiroadTCGScraper::CLI.start(ARGV)
使い方。
まずrubyがインストールされてることが大前提。あとFirefoxブラウザが必要。 他のブラウザ使う場合は各自でプログラムを修正しよう。 一応 ruby2.0.0-p195 で動作確認している。
あと、MechanizeとWatirとThorが必要なので、
gem install Mechanize gem install Watir gem install Thor
とかしておこう。
1. config.ymlの用意 configファイルに
--- uri: http://ws-tcg.com/jsp/cardlist
のようにブシロードのカードリストがあるURIを記載する。proxyが必要な人は下記のようにIPとportを指定可能。必要なければ書く必要はない。
proxy: - 128.0.0.1 - 8080
2. get_expansion_listを実行
ruby ./bushiroad-tcg-scraper.rb get_expansion_list
とコマンドラインを打ち込んで実行。するとexpansion_list.ymlという中間ファイルが出力される。
中身はこんな感じ
---
- text: D.C. D.C.II
onclick: showExpansionDetail('1',''); return false;
- text: リトルバスターズ!
onclick: showExpansionDetail('2',''); return false;
- text: ゼロの使い魔
onclick: showExpansionDetail('3',''); return false;
- text: なのはStrikerS
onclick: showExpansionDetail('6',''); return false;
(以下略)
textがエキスパンションの名前。onclickは同名エキスパンションを区別するためのメタ情報。
3. get_card_link_listを実行
ruby ./bushiroad-tcg-scraper.rb get_card_link_list
とコマンドラインを打ち込んで実行。すると勝手にFirefoxブラウザが起動して、エキスパンション毎に個々のカードのリンクリスト(card_link_list.yml)を作成してくれる。
……のだけど、相当時間かかるので注意。expansion_list.ymlの中身を修正して、欲しいエキスパンションだけとかにした方が良いかも。
例えばexpansion_list.ymlの中身を修正して以下のようにしたら、
---
- text: なのはStrikerS
onclick: showExpansionDetail('6',''); return false;
結果はこうなる。
--- なのはStrikerS: - http://ws-tcg.com/jsp/cardlist?cardno=NS/W04-001 - http://ws-tcg.com/jsp/cardlist?cardno=NS/W04-001S - http://ws-tcg.com/jsp/cardlist?cardno=NS/W04-002 - http://ws-tcg.com/jsp/cardlist?cardno=NS/W04-002S - http://ws-tcg.com/jsp/cardlist?cardno=NS/W04-003 (以下略)
4.get_cardを実行して取得されるカードのデータを確認する。
カードのリンクリストができたら後はget_cardを実行して終了。
……だったら良いんだけど、そう簡単ではない。このツールはブシロードのTCG汎用として作っているので、取得したいカードゲーム毎にそれに合わせたパラメータファイルを作ってやらないといけない。
パラメータはconfig.ymlにformatというキーで指定するんだけど、config.ymlにformatキーが記述されていない場合、Webページに表示されているデータをそのまま取ってくるようになっている。
例えば、card_link_list.ymlを編集して
--- なのはStrikerS: - http://ws-tcg.com/jsp/cardlist?cardno=NS/W04-001
以下のように実行してみると、
ruby ./bushiroad-tcg-scraper.rb get_card
結果のcard_list.ymlファイルの中身はこうなる。
---
なのはStrikerS:
- debug:
- <img src="../cardlist/cardimages/ns_w04_001.gif" alt="カード"><br><a href="javascript:void(0);"
onclick="showQuestion('NS/W04-001'); return false;">≫ このカードに関するQ&A</a>
- "\r\nキャロ・ル・ルシエ<br><span class=\"kana\">キャロルルシエ</span>\r\n"
- NS/W04-001
- RR
- なのはStrikerS
- "\r\n<img src=\"/cardlist/partimages/w.gif\">"
- キャラ
- <img src="../cardlist/partimages/yellow.gif">
- '1'
- '1'
- '5000'
- <img src="../cardlist/partimages/soul.gif">
- <img src="../cardlist/partimages/soul.gif">
- "\r\n魔法 ・ 竜\r\n"
- 【自】 このカードがアタックした時、あなたは自分の舞台にいる「エリオ・モンディアル」を1枚選び、手札に戻す。<br>【自】 アンコール [手札のキャラを1枚控え室に置く]
(このカードが舞台から控え室に置かれた時、あなたはコストを払ってよい。そうしたら、このカードがいた枠に【レスト】して置く)<br>
- 若き槍騎士に駆け抜ける力を!<br>
5. config.ymlにformatキーを追加する。 上の結果を見ながらformatキーを作成する。WSの場合はこんな感じ(もちろんUTF-8で書くように)。
format:
- key: カード画像
line: 0
regexp: <img src="../cardlist/cardimages/(.+\.gif)"
- key: カード名
line: 1
regexp: \s*(.+)<br><span class="kana">.*</span>
- key: カード名(カナ)
line: 1
regexp: .+<br><span class="kana">(.*)</span>
- key: カード番号
line: 2
regexp:
- key: レアリティ
line: 3
regexp:
- key: エクスパンション
line: 4
regexp:
- key: サイド
line: 5
regexp: \s*(.+)
- key: 種類
line: 6
regexp:
- key: 色
line: 7
regexp:
- key: レベル
line: 8
regexp:
- key: コスト
line: 9
regexp:
- key: パワー
line: 10
regexp:
- key: ソウル
line: 11
regexp:
- key: トリガー
line: 12
regexp:
- key: 特徴
line: 13
regexp: \s*(.+)\s\s
- key: テキスト
line: 14
regexp:
- key: フレーバー
line: 15
regexp:
regexpに正規表現を記述し、取り出したい部分を()で囲む。一行全部取り出す場合はregexpは何も書かなくて構わない。
6. 再度get_cardでカードデータを取得する。 実際に上の記述をconfig.ymlに追加して、get_cardを実行すると、
---
なのはStrikerS:
- カード画像: ns_w04_001.gif
カード名: キャロ・ル・ルシエ
カード名(カナ): キャロルルシエ
カード番号: NS/W04-001
レアリティ: RR
エクスパンション: なのはStrikerS
サイド: <img src="/cardlist/partimages/w.gif">
種類: キャラ
色: <img src="../cardlist/partimages/yellow.gif">
レベル: '1'
コスト: '1'
パワー: '5000'
ソウル: <img src="../cardlist/partimages/soul.gif">
トリガー: <img src="../cardlist/partimages/soul.gif">
特徴: 魔法 ・ 竜
テキスト: 【自】 このカードがアタックした時、あなたは自分の舞台にいる「エリオ・モンディアル」を1枚選び、手札に戻す。<br>【自】 アンコール [手札のキャラを1枚控え室に置く]
(このカードが舞台から控え室に置かれた時、あなたはコストを払ってよい。そうしたら、このカードがいた枠に【レスト】して置く)<br>
フレーバー: 若き槍騎士に駆け抜ける力を!<br>
こんな内容のYAMLが出力される。後はエクセルに変換するなり、Javascriptで使うなりご自由に。
_ くろひょう [ドクターストップでジムに通えなくなるとは…。何が起こるか分からないものだねぇ。]
_ keikei [昨日のネタで出たflashなんですが、4月1日にflashネタをする駅員(本物)が現れ、しかもその職員が処分されたと..]