ごっこあそび。事例研究(ちゆの軟膏)-1
2005年6月1日ゴッコあそび。事例研究-1。
hrurr:「ちゆをプリベントでプレイします。対象はワタシ。島から出したマナをスカイシュラウドエルフで白マナに変換」
neta:「はい」
hrurr:「解決します」
neta:「はい」
[T_ZONE]
PID,CID,ZN,CNM
-+-+---+-----
1,1,PLY,Forest
1,2,PLY,Island
1,3,PLY,Swamp
1,4,PLY,Skyshroud Elf
1,5,HND,Trained Armodon
1,6,HND,Healing Salve
1,7,HND,Fire Ball
====================
//Healing Salveのプレイを宣言。(409.1a)
← SYS_WAIT @PID=1
→ USR_PLAY_CARD @CID=6 //Healing Salve [@MODE=1]を省略した。
← SYS_DLG_POP @NM="MTG_DLG_PLAY_CARD", @CID=6
//MODEを省略したので割り込みPOP (409.1b)
← SYS_DLG_POP @NM="MTG_DLG_SELECTOR", @MSG="Choose one", @LIST=("Target player gains 3 life","Prevent the next 3 damage that would be dealt to target creature or player this turn.")
← SYS_WAIT @PID=1 //for DLG_POP @NM="MTG_DLG_SELECTOR"
→ UTL_DLG_RES @NM="MTG_DLG_SELECTOR", @RESULT=2
← SYS_DLG_CLO @NM="MTG_DLG_SELECTOR" //ダイアログ閉じる
//Healing SalveのMODE=2のトリガーが対象を取るので割り込みPOP (409.1c)
← SYS_DLG_POP @NM="MTG_DLG_SELECTOR", @MSG="Choose Target", @LIST=("hrurr","neta","Skyshroud Elf")
← SYS_WAIT @PID=1 //for DLG_POP @NM="MTG_DLG_SELECTOR"
→ UTL_DLG_RES @NM="MTG_DLG_SELECTOR", @RESULT=1
← SYS_DLG_CLO @NM="MTG_DLG_SELECTOR" //ダイアログ閉じる
//トータルコストの決定 (409.1f)
← SYS_DLG_INFO @NM="MTG_DLG_PLAY_CARD", @MSG="Total Cost: {W}"
← SYS_DLG_INFO @NM="MTG_DLG_PLAY_CARD", @MSG="Your Mana pool has {0}."
//マナプールが空だったのでマナ能力のプレイを要求。なければSYS_WAIT。(409.1g)
← SYS_DLG_POP @NM="MTG_PLAY_MANA_ABILITY", @LIST=(1,2,3,4) //@LISTはCID("Forest","Island",Swamp","Skyshroud Elf")
← SYS_DLG_INFO @NM="MTG_PLAY_MANA_ABILITY", @MSG="Cost {W} Required. Your Mana pool has {0}."
→ USR_PLAY_MANA_ABILITY @CID=4, @MODE=2 //Skyshroud Elf。クライアントが@MODEを既知だった。
//MODE=2のトリガーがさらにMODEを要求 (409.1c)
← SYS_DLG_POP @NM="MTG_DLG_SELECTOR", @MSG="Choose Target", @LIST=("Add {W}","Add {R}")
← SYS_WAIT @PID=1 //for DLG_POP @NM="MTG_DLG_SELECTOR"
→ UTL_DLG_RES @NM="MTG_DLG_SELECTOR", @RESULT=1
← SYS_DLG_CLO @NM="MTG_DLG_SELECTOR" //ダイアログ閉じる
//Skyshroud Elfのマナ能力にSYS_DLG_POP @NM="MTG_PLAY_MANA_ABILITY"の要求。
← SYS_DLG_POP @NM="MTG_PLAY_MANA_ABILITY", @CID=4, @LIST=(1,2,3,4) //@LISTは("Forest","Island",Swamp","Skyshroud Elf")
← SYS_DLG_INFO @NM="MTG_PLAY_MANA_ABILITY", @MSG="Cost {1} Required. Your Mana pool has {0}."
← SYS_WAIT @PID=1
→ USR_PLAY_MANA_ABILITY @CID=2 //Island
//Islandのマナ能力トリガーはすぐに解決される。
← SYS_MSG CHG_PROP @CID=2, @NM="Tap" @VAL=1
← SYS_DLG_INFO @NM="MTG_PLAY_MANA_ABILITY", @MSG="Cost {1} Required. Your Mana pool has {U}."
← SYS_WAIT @PID=1
// コストの支払い(409.1h)
→ UTL_PAY_COST COST=("U")
← SYS_DLG_CLO @NM="MTG_PLAY_MANA_ABILITY" //ダイアログ閉じる
hrurr:「ちゆをプリベントでプレイします。対象はワタシ。島から出したマナをスカイシュラウドエルフで白マナに変換」
neta:「はい」
hrurr:「解決します」
neta:「はい」
[T_ZONE]
PID,CID,ZN,CNM
-+-+---+-----
1,1,PLY,Forest
1,2,PLY,Island
1,3,PLY,Swamp
1,4,PLY,Skyshroud Elf
1,5,HND,Trained Armodon
1,6,HND,Healing Salve
1,7,HND,Fire Ball
====================
//Healing Salveのプレイを宣言。(409.1a)
← SYS_WAIT @PID=1
→ USR_PLAY_CARD @CID=6 //Healing Salve [@MODE=1]を省略した。
← SYS_DLG_POP @NM="MTG_DLG_PLAY_CARD", @CID=6
//MODEを省略したので割り込みPOP (409.1b)
← SYS_DLG_POP @NM="MTG_DLG_SELECTOR", @MSG="Choose one", @LIST=("Target player gains 3 life","Prevent the next 3 damage that would be dealt to target creature or player this turn.")
← SYS_WAIT @PID=1 //for DLG_POP @NM="MTG_DLG_SELECTOR"
→ UTL_DLG_RES @NM="MTG_DLG_SELECTOR", @RESULT=2
← SYS_DLG_CLO @NM="MTG_DLG_SELECTOR" //ダイアログ閉じる
//Healing SalveのMODE=2のトリガーが対象を取るので割り込みPOP (409.1c)
← SYS_DLG_POP @NM="MTG_DLG_SELECTOR", @MSG="Choose Target", @LIST=("hrurr","neta","Skyshroud Elf")
← SYS_WAIT @PID=1 //for DLG_POP @NM="MTG_DLG_SELECTOR"
→ UTL_DLG_RES @NM="MTG_DLG_SELECTOR", @RESULT=1
← SYS_DLG_CLO @NM="MTG_DLG_SELECTOR" //ダイアログ閉じる
//トータルコストの決定 (409.1f)
← SYS_DLG_INFO @NM="MTG_DLG_PLAY_CARD", @MSG="Total Cost: {W}"
← SYS_DLG_INFO @NM="MTG_DLG_PLAY_CARD", @MSG="Your Mana pool has {0}."
//マナプールが空だったのでマナ能力のプレイを要求。なければSYS_WAIT。(409.1g)
← SYS_DLG_POP @NM="MTG_PLAY_MANA_ABILITY", @LIST=(1,2,3,4) //@LISTはCID("Forest","Island",Swamp","Skyshroud Elf")
← SYS_DLG_INFO @NM="MTG_PLAY_MANA_ABILITY", @MSG="Cost {W} Required. Your Mana pool has {0}."
→ USR_PLAY_MANA_ABILITY @CID=4, @MODE=2 //Skyshroud Elf。クライアントが@MODEを既知だった。
//MODE=2のトリガーがさらにMODEを要求 (409.1c)
← SYS_DLG_POP @NM="MTG_DLG_SELECTOR", @MSG="Choose Target", @LIST=("Add {W}","Add {R}")
← SYS_WAIT @PID=1 //for DLG_POP @NM="MTG_DLG_SELECTOR"
→ UTL_DLG_RES @NM="MTG_DLG_SELECTOR", @RESULT=1
← SYS_DLG_CLO @NM="MTG_DLG_SELECTOR" //ダイアログ閉じる
//Skyshroud Elfのマナ能力にSYS_DLG_POP @NM="MTG_PLAY_MANA_ABILITY"の要求。
← SYS_DLG_POP @NM="MTG_PLAY_MANA_ABILITY", @CID=4, @LIST=(1,2,3,4) //@LISTは("Forest","Island",Swamp","Skyshroud Elf")
← SYS_DLG_INFO @NM="MTG_PLAY_MANA_ABILITY", @MSG="Cost {1} Required. Your Mana pool has {0}."
← SYS_WAIT @PID=1
→ USR_PLAY_MANA_ABILITY @CID=2 //Island
//Islandのマナ能力トリガーはすぐに解決される。
← SYS_MSG CHG_PROP @CID=2, @NM="Tap" @VAL=1
← SYS_DLG_INFO @NM="MTG_PLAY_MANA_ABILITY", @MSG="Cost {1} Required. Your Mana pool has {U}."
← SYS_WAIT @PID=1
// コストの支払い(409.1h)
→ UTL_PAY_COST COST=("U")
← SYS_DLG_CLO @NM="MTG_PLAY_MANA_ABILITY" //ダイアログ閉じる
-ごっこあそび。事例研究(ちゆの軟膏)-2
2005年6月1日で、その続き。
← SYS_DLG_INFO @NM="MTG_PLAY_MANA_ABILITY", @MSG="Cost {W} Required. Your Mana pool has {W}."
← SYS_WAIT @PID=1
// コスト支払い(409.1h)
→ UTL_PAY_COST COST=("W")
← SYS_DLG_CLO @NM="MTG_DLG_PLAY_CARD" //ダイアログ閉じる
← SYS_ECHO @MSG="hrurr played [Healing Salve]; Mode is [Target Player Gains 3 Life.] Target is hrurr."
← SYS_ECHO @MSG="hrurr used [Skyshoroud Elves]’s mana ability, [Island]’s Mana Ability for cost [Healing Salve]."
← SYS_ECHO @MSG="hrurr tapped [Island]."
← SYS_ECHO @MSG="hrurr tapped Island for cost [Healing Salve].
← SYS_MOVE_TO @CID=6, @ZN="STK"
← SYS_WAIT @PID=1
→ USR_PASSED PID=1
← SYS_WAIT @PID=2
→ USR_PASSED PID=2
//スタックの解決。
//Healing Slaveが能力を"置き去り"にするので能力としてのカードを追加。
← MTG_ZONE_ADD @PID=1, @CID=151, @ZN="RPE", @CNM="Healing Salve@20050101021400" //領域に追加。
← MTG_PROP_ADD @CID=151, @NM="Text" @VAL="Prevent the next 3 damage that would be dealt to target creature or player this turn." //プロパティを追加。
← MTG_PROP_ADD @CID=151, @NM="Prevented Point" @VAL=0
← MTG_PROP_ADD @CID=151, @NM="Target" @VAL="hrurr"
//ダメージ解決のシナリオにダメージ軽減のトリガーを追加。軽減が3点になったら自分自身を削除。
← SYS_SENA_ADD @PRC="MTG_SENC_HEALING_SALVE_1" @SNM="MTG_TRIG_TR_DM_RV", @TRG="EXE", @CRE="Healing Salve@20050101021400" @FILTER="PNM=’hrurr’"
//クリンナップ終了シナリオにトリガーを追加。領域、プロパティ、シナリオから自分を取り除く。
← SYS_SENA_ADD @PRC="MTG_SENC_HEALING_SALVE_2" @SNM=MTG_SENA_ED_CU_ED, @TRG="END", @CRE="Healing Salve@20050101021400" @FILTER="PNM=’hrurr’"
//すべての能力を解決したので墓地に。
← MTG_ZONE_MOVE @CID=6, @ZN="GRV"
← SYS_WAIT @PID=1
← SYS_DLG_INFO @NM="MTG_PLAY_MANA_ABILITY", @MSG="Cost {W} Required. Your Mana pool has {W}."
← SYS_WAIT @PID=1
// コスト支払い(409.1h)
→ UTL_PAY_COST COST=("W")
← SYS_DLG_CLO @NM="MTG_DLG_PLAY_CARD" //ダイアログ閉じる
← SYS_ECHO @MSG="hrurr played [Healing Salve]; Mode is [Target Player Gains 3 Life.] Target is hrurr."
← SYS_ECHO @MSG="hrurr used [Skyshoroud Elves]’s mana ability, [Island]’s Mana Ability for cost [Healing Salve]."
← SYS_ECHO @MSG="hrurr tapped [Island]."
← SYS_ECHO @MSG="hrurr tapped Island for cost [Healing Salve].
← SYS_MOVE_TO @CID=6, @ZN="STK"
← SYS_WAIT @PID=1
→ USR_PASSED PID=1
← SYS_WAIT @PID=2
→ USR_PASSED PID=2
//スタックの解決。
//Healing Slaveが能力を"置き去り"にするので能力としてのカードを追加。
← MTG_ZONE_ADD @PID=1, @CID=151, @ZN="RPE", @CNM="Healing Salve@20050101021400" //領域に追加。
← MTG_PROP_ADD @CID=151, @NM="Text" @VAL="Prevent the next 3 damage that would be dealt to target creature or player this turn." //プロパティを追加。
← MTG_PROP_ADD @CID=151, @NM="Prevented Point" @VAL=0
← MTG_PROP_ADD @CID=151, @NM="Target" @VAL="hrurr"
//ダメージ解決のシナリオにダメージ軽減のトリガーを追加。軽減が3点になったら自分自身を削除。
← SYS_SENA_ADD @PRC="MTG_SENC_HEALING_SALVE_1" @SNM="MTG_TRIG_TR_DM_RV", @TRG="EXE", @CRE="Healing Salve@20050101021400" @FILTER="PNM=’hrurr’"
//クリンナップ終了シナリオにトリガーを追加。領域、プロパティ、シナリオから自分を取り除く。
← SYS_SENA_ADD @PRC="MTG_SENC_HEALING_SALVE_2" @SNM=MTG_SENA_ED_CU_ED, @TRG="END", @CRE="Healing Salve@20050101021400" @FILTER="PNM=’hrurr’"
//すべての能力を解決したので墓地に。
← MTG_ZONE_MOVE @CID=6, @ZN="GRV"
← SYS_WAIT @PID=1
ごっこあそび。事例研究(めどりんぐきっず)
2005年6月2日さすがに複雑すぎるというか、中身を何も考えていないので、
あちこちに矛盾が生じまくっている。
なにがいいかよくわからないのでブレインストームレベル。
というわけで再びメモ。
■案:SYS_WAIT時にユーザが可能な行動をどう管理するか。
[T_CARD]に手伝わせてみる。
この場合([T-CARD]→[T_STAT])だと矛盾が生じるのでいっそのことT_STATなんてイラネ、
という考えもある。
アプリケーション関連のプロパティはT_STAT、ユーザ関連のプロパティはT_PROPに持っていくテスト。
([T-CARD]→[T_PROP])
〜〜〜〜
ターン終了ステップのシナリオ進行の例。
1.シナリオの状態を得る。
[T_STAT]
NM,VAL
--+---
’PID’,’1’
’SENA_NM’,’BG_UK_WT’
’SENA_TRG’,’EXE’
’SENA_CAP’,’Upkeep Wait’
2.可能なユーザ行動をチェックしクライアントに通知。
これはカードを選んで可能な行動をメニューに表示させたときに必要。
[T_CARD] c → [T_PROP] p
c.CNM = (’MTG_SENA_’ || T_STAT_SENA_NM || ’_INVALID_ACTION’)
or c.CNM = (’MTG_SENA_’ || T_STAT_SENA_NM || ’_VALID_ACTION’)
c.STMP, c.CRE, c.CNM, p.VAL,
-----+------+-------+-------
20050101000000,’gmaster’,’MTG_SENA_BG_UK_WT_INVALID_ACTION’,#NULL#
20050101000130,’rebecca’,’MTG_SENA_BG_UK_WT_VALID_ACTION’,’CARD-Necrogia_PLAY0’
20050101000000,’gmaster’,’MTG_SENA_BG_UK_WT_VALID_ACTION’,’TYPE-INS’
20050101000000,’gmaster’,’MTG_SENA_BG_UK_WT_VALID_ACTION’,’TYPE-MANA’
:
一部、Necrogiaなんて入れてみていい気になってみたけど
これだと常在能力等の例外処理が抜けている。
Medlling Mageなんか全部のフェイズにINVALID_ACTIONを入れなきゃいけない。
(いや、いれてもいいけど。)
常在能力のチェックを入れるとすごく遅くなるはずだが・・・。
それは下で。
3.SYS_WAITを送信。
〜〜〜〜
■常在能力の処理。
常在能力などはそれが発生している間、T_ZONEのNM=’CEF’に能力の擬似カードと
廃棄トリガーをおいていく。
[T_ZONE] z
PID,CID,ZN,CNM,CRE
-+--+---+----------
1,67,CEF,’Meddling Kids_Effect1_0’,’Meddling Kids@20050101000505’ //禁止効果
1,67,CEF,’Meddling Kids_Effect2_1’,’Meddling Kids@20050101000505’ //削除トリガー
z.CNMからCNMを取り出してそれをT_SENAとマッチングするとよさげ。
[T_SENA] s
SID,STMP,NM,PH,TRG,PROC
---------------------------------------------
1,20050101000505,’,’Meddling Kids_Effect1_0’,’CE_常在効果’,"Meddling Kids_Effect1"
1,20050101000505,’,’Meddling Kids_Effect2_0’,’CE_場を離れる’,"Meddling Kids_Effect1"
ネーミングルールにあらが見えるなw
ああ、駄目だ。やり直し。(T-T)
あちこちに矛盾が生じまくっている。
なにがいいかよくわからないのでブレインストームレベル。
というわけで再びメモ。
■案:SYS_WAIT時にユーザが可能な行動をどう管理するか。
[T_CARD]に手伝わせてみる。
この場合([T-CARD]→[T_STAT])だと矛盾が生じるのでいっそのことT_STATなんてイラネ、
という考えもある。
アプリケーション関連のプロパティはT_STAT、ユーザ関連のプロパティはT_PROPに持っていくテスト。
([T-CARD]→[T_PROP])
〜〜〜〜
ターン終了ステップのシナリオ進行の例。
1.シナリオの状態を得る。
[T_STAT]
NM,VAL
--+---
’PID’,’1’
’SENA_NM’,’BG_UK_WT’
’SENA_TRG’,’EXE’
’SENA_CAP’,’Upkeep Wait’
2.可能なユーザ行動をチェックしクライアントに通知。
これはカードを選んで可能な行動をメニューに表示させたときに必要。
[T_CARD] c → [T_PROP] p
c.CNM = (’MTG_SENA_’ || T_STAT_SENA_NM || ’_INVALID_ACTION’)
or c.CNM = (’MTG_SENA_’ || T_STAT_SENA_NM || ’_VALID_ACTION’)
c.STMP, c.CRE, c.CNM, p.VAL,
-----+------+-------+-------
20050101000000,’gmaster’,’MTG_SENA_BG_UK_WT_INVALID_ACTION’,#NULL#
20050101000130,’rebecca’,’MTG_SENA_BG_UK_WT_VALID_ACTION’,’CARD-Necrogia_PLAY0’
20050101000000,’gmaster’,’MTG_SENA_BG_UK_WT_VALID_ACTION’,’TYPE-INS’
20050101000000,’gmaster’,’MTG_SENA_BG_UK_WT_VALID_ACTION’,’TYPE-MANA’
:
一部、Necrogiaなんて入れてみていい気になってみたけど
これだと常在能力等の例外処理が抜けている。
Medlling Mageなんか全部のフェイズにINVALID_ACTIONを入れなきゃいけない。
(いや、いれてもいいけど。)
常在能力のチェックを入れるとすごく遅くなるはずだが・・・。
それは下で。
3.SYS_WAITを送信。
〜〜〜〜
■常在能力の処理。
常在能力などはそれが発生している間、T_ZONEのNM=’CEF’に能力の擬似カードと
廃棄トリガーをおいていく。
[T_ZONE] z
PID,CID,ZN,CNM,CRE
-+--+---+----------
1,67,CEF,’Meddling Kids_Effect1_0’,’Meddling Kids@20050101000505’ //禁止効果
1,67,CEF,’Meddling Kids_Effect2_1’,’Meddling Kids@20050101000505’ //削除トリガー
z.CNMからCNMを取り出してそれをT_SENAとマッチングするとよさげ。
[T_SENA] s
SID,STMP,NM,PH,TRG,PROC
---------------------------------------------
1,20050101000505,’,’Meddling Kids_Effect1_0’,’CE_常在効果’,"Meddling Kids_Effect1"
1,20050101000505,’,’Meddling Kids_Effect2_0’,’CE_場を離れる’,"Meddling Kids_Effect1"
ネーミングルールにあらが見えるなw
ああ、駄目だ。やり直し。(T-T)
大盛り。
2005年6月3日アクセスカウンタが一気に数十増えたのでおかしい・・と、おもって
アクセス元を見ると誰かがリンク経由で覗いたらしくいくつか記録されてました。
ちなみに一昨日まではアクセス元が一つも表示されないごく静かなBLOGだったのです。
そのうちの一つがなぜかgoogleを「大盛り」で検索した結果リスト・・・。
・・・なんでやねんw
--------
もう一つのアクセス元について。
おそらくご覧になっている方の興味は次のいずれかと思われます。
A.MOみたいなアプリケーションができるのか。
B.MTGのエンジンが実装されるのか。
結論からいうと両方Noです。
さらに言うと仕様レベル(妄想レベル)で終わる可能性大です。
A.に関しては私がGUIに興味ありません。
osqlかsqlplusで遊べりゃいいと思っています。
逆にそのほうが受けがいいかもしれませんが。
いずれにしても画面制御に興味は持っていません。
B.に関しては私の興味がそこにありません。
それ以前に個人で行なうのは物理的に不可能です。
某掲示板に噂されていた汎用シナリオエンジンを作るのが精一杯。
シナリオエンジンを考えるにあたって、MTGシナリオをある程度
実装できる汎用性が欲しいからシミュレーションの題材にしてますが
巨大で複雑なMTGのルールをシナリオ化するのはそれだけで気が遠くなります。
ルーリングを実装できたとしてもカードデータの実装はそれの数十倍の
作業量になるでしょう。
そこまでやる気ねぇです。さすがに。
アクセス元を見ると誰かがリンク経由で覗いたらしくいくつか記録されてました。
ちなみに一昨日まではアクセス元が一つも表示されないごく静かなBLOGだったのです。
そのうちの一つがなぜかgoogleを「大盛り」で検索した結果リスト・・・。
・・・なんでやねんw
--------
もう一つのアクセス元について。
おそらくご覧になっている方の興味は次のいずれかと思われます。
A.MOみたいなアプリケーションができるのか。
B.MTGのエンジンが実装されるのか。
結論からいうと両方Noです。
さらに言うと仕様レベル(妄想レベル)で終わる可能性大です。
A.に関しては私がGUIに興味ありません。
osqlかsqlplusで遊べりゃいいと思っています。
逆にそのほうが受けがいいかもしれませんが。
いずれにしても画面制御に興味は持っていません。
B.に関しては私の興味がそこにありません。
それ以前に個人で行なうのは物理的に不可能です。
某掲示板に噂されていた汎用シナリオエンジンを作るのが精一杯。
シナリオエンジンを考えるにあたって、MTGシナリオをある程度
実装できる汎用性が欲しいからシミュレーションの題材にしてますが
巨大で複雑なMTGのルールをシナリオ化するのはそれだけで気が遠くなります。
ルーリングを実装できたとしてもカードデータの実装はそれの数十倍の
作業量になるでしょう。
そこまでやる気ねぇです。さすがに。
SQLServerって突っ込みが入るものらしい。
2005年6月5日でも更新系で使えてストアド使えて安く手に入れられてっていうと余りないと思う。
MySQL:ストアドは実装したて。
HSQLDB:JAVAのスキルありません。
携帯に組み込むならいいかも。
JET(Access):複数人数で叩くDBにJET選ぶほど勇気ありません。
Oracle:高いわ!!ストアドはいいけど。
PostgreSQL:最初これにしてみよかとおもってた。
SQL Server(MSDE):でもこれでいいやと。
〜〜〜〜〜〜〜〜〜〜〜
修正:HESQL → HSQLDB
Open Officeにも同梱されているJava100%のDB。
エンジンが小さくてJETDBと同じような運用ができるようです。
CREATE PROCEDUREはサポートしてまへん。
MySQL:ストアドは実装したて。
HSQLDB:JAVAのスキルありません。
携帯に組み込むならいいかも。
JET(Access):複数人数で叩くDBにJET選ぶほど勇気ありません。
Oracle:高いわ!!ストアドはいいけど。
PostgreSQL:最初これにしてみよかとおもってた。
SQL Server(MSDE):でもこれでいいやと。
〜〜〜〜〜〜〜〜〜〜〜
修正:HESQL → HSQLDB
Open Officeにも同梱されているJava100%のDB。
エンジンが小さくてJETDBと同じような運用ができるようです。
CREATE PROCEDUREはサポートしてまへん。
モノ書きのためのツール。
2005年6月7日 SCENA仕様メモ・サクラエディタ
http://members.at.infoseek.co.jp/sakura_editor/
MKとかVXとかありますが、現状でこれが一番使いやすく高速動作で高機能。
モノ書きにデータ加工に縦横無尽。
今の仕事やり始めて初めて矩形選択のありがたさが身にしみてたり。
惜しむらくはアイコンがカッコ悪いとか、検索ショートカットがCtrl+Rなところとか、
機能多すぎてメニュー項目が多すぎるとか。
・Sol (Smart Out Line)
http://homepage1.nifty.com/knowledge-osmo/main.htm
Actaライクなアウトラインプロセッサ。
「Actaライク」これだけで使う理由になりますです。
■ゴッコ遊び。
別に急ぐものでもないのでゆっくりと考え中。
ルールブックって事細かに読まなきゃ駄目だね。
で、200と400〜409あたりを読んだ。
でも領域で管理べき事柄とシナリオで管理する事柄がはっきり
区切れずシミュレーションの繰り返しで頭を整理中。
・シミュレーションサンプルとして面白そうなカード。
Skyshroud Elf : マナ能力のサンプル。
Saplloring Burst : いろんな能力の塊。
Necrogia : 「ターン終了時しか唱えられない」の処理の仕方。
Urza’s Bauble : 遅延効果
Fireball : うざいことこの上ないカード。
COP:Red : 戦闘ダメージの処理の仕方
親和+とりにすへあ+わーくしょっぷ
血を吐きつつあたまぐるぐる。
http://members.at.infoseek.co.jp/sakura_editor/
MKとかVXとかありますが、現状でこれが一番使いやすく高速動作で高機能。
モノ書きにデータ加工に縦横無尽。
今の仕事やり始めて初めて矩形選択のありがたさが身にしみてたり。
惜しむらくはアイコンがカッコ悪いとか、検索ショートカットがCtrl+Rなところとか、
機能多すぎてメニュー項目が多すぎるとか。
・Sol (Smart Out Line)
http://homepage1.nifty.com/knowledge-osmo/main.htm
Actaライクなアウトラインプロセッサ。
「Actaライク」これだけで使う理由になりますです。
■ゴッコ遊び。
別に急ぐものでもないのでゆっくりと考え中。
ルールブックって事細かに読まなきゃ駄目だね。
で、200と400〜409あたりを読んだ。
でも領域で管理べき事柄とシナリオで管理する事柄がはっきり
区切れずシミュレーションの繰り返しで頭を整理中。
・シミュレーションサンプルとして面白そうなカード。
Skyshroud Elf : マナ能力のサンプル。
Saplloring Burst : いろんな能力の塊。
Necrogia : 「ターン終了時しか唱えられない」の処理の仕方。
Urza’s Bauble : 遅延効果
Fireball : うざいことこの上ないカード。
COP:Red : 戦闘ダメージの処理の仕方
親和+とりにすへあ+わーくしょっぷ
血を吐きつつあたまぐるぐる。
ごっこあそび。能力と効果って何が違うの?-2
2005年6月10日 SCENA仕様メモ#いくつか修正
------------------------------------------------
事例3
まめーは一望の鏡をとりだした。
まめーは催眠の宝珠をとりだした。
:
まめーのあんたっぷすてっぷに島が4つあんたっぷした。
まめーのあっぷきーぷ。
・・・鏡と宝珠はどちらを先にスタックに積むのが正解?
-----------------------------------------------------
事例4
アップキープシナリオ開始。
↓「アップキープの開始時」チェック(誘発能力ををスタック待ちにぶちこむ)★
↓「スタック積み上げ」シナリオ開始。
↓ ↓スタック待ちがなければ(おしまい)
↓ ↓ユーザ別チェックリスト作成。
↓ ↓「スタックに積む順序を各ユーザに要求するシナリオ」開始(@「ユーザ別チェックリスト」)
↓ ↓ ↓ユーザリストから一人を得る。
↓ ↓ ↓スタック待ちから能力・効果リストを作成しそのユーザに並べ替えを要求する。
↓ ↓ ↓返答待ちをシナリオエンジンに要求。
↓ ↓ ↓レスポンスを得て内容チェック。
↓ ↓ ↓問題なければそのユーザにチェックをつける。
↓ ↓ ↓ユーザ全員にチェックがついていなければ次に実行するシナリオとして
↓ ↓ ↓ 「スタックに積む順序を各ユーザに要求するシナリオ」を要求。
↓ ↓(おしまい)
↓ ↓#スタックに積む順序を各ユーザに要求するシナリオ開始(@「ユーザ別チェックリスト」)
↓ ↓# ↓(途中略)
↓ ↓#(おしまい)
↓ ↓ユーザ別チェックリスト廃却。
↓(おしまい)
↓優先権シナリオ(内容略)
(おしまい)
-------------------------------------------------
事例5
優先権シナリオ
↓ユーザ別チェックリスト作成。(hrurr,netanosuke,rebecca,namotaro)
↓「ユーザに優先権を告知するシナリオ(パスしますか?)」開始(@「ユーザ別チェックリスト」)
↓ ↓ユーザリストから一人を得る。(hrurr)
↓ ↓そのユーザの可能な操作を告知するシナリオを開始。
↓ ↓ ↓(途中略)
↓ ↓(おしまい)
↓ ↓返答待ちをシナリオエンジンに要求。
↓ ↓返答を得てユーザにチェックをつけ「パス」なら(おしまい)。
↓ ↓返答が何かのシナリオを起動するならそのシナリオを開始。
↓ ↓ユーザ全員にチェックがついていなければ次に実行するシナリオとして
↓ ↓ 「ユーザに優先権を告知する」シナリオを要求。
↓(おしまい)
↓#「ユーザに優先権を告知する」シナリオ(パスしますか?)開始(@「ユーザ別チェックリスト」)
↓# ↓(途中略)
↓#(おしまい)
↓ユーザ別チェックリスト廃却。
↓「スタック積み上げシナリオ」開始
↓ ↓(途中略)
↓(おしまい)
↓「スタック解決」シナリオ開始。
↓ ↓スタックが空なら(おしまい)
↓ ↓スタックの最上位に「ショックでくまに2点ダメージ」がつまれていてそれには
↓ ↓ 「ダメージをあたえる」シナリオをトリガしろとかかれていた。(この辺曖昧だ)
↓ ↓「ダメージをあたえる」シナリオ開始。
↓ ↓ ↓「ダメージを与えない」効果があれば(おしまい)。
↓ ↓ ↓「ダメージ軽減」シナリオ開始。
↓ ↓ ↓ ↓(途中略)
↓ ↓ ↓(おしまい)
↓ ↓ ↓対象オブジェクトのダメージプロパティにのこりのダメージを加算。
↓ ↓ ↓「致死ダメージ」シナリオ開始。
↓ ↓ ↓ ↓(途中略)
↓ ↓ ↓「ダメージを与えた」トリガーのチェック。
↓ ↓ ↓(おしまい)
↓ ↓(おしまい)
↓(おしまい)
(おしまい)
--------------------------------------------------
とにかくこんなことを考慮しながらあれこれぐちゃぐちゃと。
[自分なりの答え]
1.B→A。RC.300.7。
2.自分が選ぶ。RC.410.3同時に複数発生した能力は順序を選べる。RC.418.5eも参照
3.自分が選ぶ。RC:303 + RC410.3
誘発型とか置き換え効果のシミュレーションが不十分なのでもう少し悩むっぽい。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
※アクセス元で「人間凶器」が引っかかってた。どんな人だろうw
------------------------------------------------
事例3
まめーは一望の鏡をとりだした。
まめーは催眠の宝珠をとりだした。
:
まめーのあんたっぷすてっぷに島が4つあんたっぷした。
まめーのあっぷきーぷ。
・・・鏡と宝珠はどちらを先にスタックに積むのが正解?
-----------------------------------------------------
事例4
アップキープシナリオ開始。
↓「アップキープの開始時」チェック(誘発能力ををスタック待ちにぶちこむ)★
↓「スタック積み上げ」シナリオ開始。
↓ ↓スタック待ちがなければ(おしまい)
↓ ↓ユーザ別チェックリスト作成。
↓ ↓「スタックに積む順序を各ユーザに要求するシナリオ」開始(@「ユーザ別チェックリスト」)
↓ ↓ ↓ユーザリストから一人を得る。
↓ ↓ ↓スタック待ちから能力・効果リストを作成しそのユーザに並べ替えを要求する。
↓ ↓ ↓返答待ちをシナリオエンジンに要求。
↓ ↓ ↓レスポンスを得て内容チェック。
↓ ↓ ↓問題なければそのユーザにチェックをつける。
↓ ↓ ↓ユーザ全員にチェックがついていなければ次に実行するシナリオとして
↓ ↓ ↓ 「スタックに積む順序を各ユーザに要求するシナリオ」を要求。
↓ ↓(おしまい)
↓ ↓#スタックに積む順序を各ユーザに要求するシナリオ開始(@「ユーザ別チェックリスト」)
↓ ↓# ↓(途中略)
↓ ↓#(おしまい)
↓ ↓ユーザ別チェックリスト廃却。
↓(おしまい)
↓優先権シナリオ(内容略)
(おしまい)
-------------------------------------------------
事例5
優先権シナリオ
↓ユーザ別チェックリスト作成。(hrurr,netanosuke,rebecca,namotaro)
↓「ユーザに優先権を告知するシナリオ(パスしますか?)」開始(@「ユーザ別チェックリスト」)
↓ ↓ユーザリストから一人を得る。(hrurr)
↓ ↓そのユーザの可能な操作を告知するシナリオを開始。
↓ ↓ ↓(途中略)
↓ ↓(おしまい)
↓ ↓返答待ちをシナリオエンジンに要求。
↓ ↓返答を得てユーザにチェックをつけ「パス」なら(おしまい)。
↓ ↓返答が何かのシナリオを起動するならそのシナリオを開始。
↓ ↓ユーザ全員にチェックがついていなければ次に実行するシナリオとして
↓ ↓ 「ユーザに優先権を告知する」シナリオを要求。
↓(おしまい)
↓#「ユーザに優先権を告知する」シナリオ(パスしますか?)開始(@「ユーザ別チェックリスト」)
↓# ↓(途中略)
↓#(おしまい)
↓ユーザ別チェックリスト廃却。
↓「スタック積み上げシナリオ」開始
↓ ↓(途中略)
↓(おしまい)
↓「スタック解決」シナリオ開始。
↓ ↓スタックが空なら(おしまい)
↓ ↓スタックの最上位に「ショックでくまに2点ダメージ」がつまれていてそれには
↓ ↓ 「ダメージをあたえる」シナリオをトリガしろとかかれていた。(この辺曖昧だ)
↓ ↓「ダメージをあたえる」シナリオ開始。
↓ ↓ ↓「ダメージを与えない」効果があれば(おしまい)。
↓ ↓ ↓「ダメージ軽減」シナリオ開始。
↓ ↓ ↓ ↓(途中略)
↓ ↓ ↓(おしまい)
↓ ↓ ↓対象オブジェクトのダメージプロパティにのこりのダメージを加算。
↓ ↓ ↓「致死ダメージ」シナリオ開始。
↓ ↓ ↓ ↓(途中略)
↓ ↓ ↓「ダメージを与えた」トリガーのチェック。
↓ ↓ ↓(おしまい)
↓ ↓(おしまい)
↓(おしまい)
(おしまい)
--------------------------------------------------
とにかくこんなことを考慮しながらあれこれぐちゃぐちゃと。
[自分なりの答え]
1.B→A。RC.300.7。
2.自分が選ぶ。RC.410.3同時に複数発生した能力は順序を選べる。RC.418.5eも参照
3.自分が選ぶ。RC:303 + RC410.3
誘発型とか置き換え効果のシミュレーションが不十分なのでもう少し悩むっぽい。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
※アクセス元で「人間凶器」が引っかかってた。どんな人だろうw
ごっこあそび。能力と効果って何が違うの?-1
2005年6月10日 SCENA仕様メモ用語として「タイムスタンプ」を使うのがややこしくなってきたので
「バージョン」と表現してみる。
■ダイナミックに書き換えられるシナリオを処理する方法。
シナリオを実行しているとき、ネストして呼び出された
シナリオが呼び出し側のシナリオを書き換えることがある。
たとえばRelentless Assaultは第二メインフェイズの終了後に実行が
期待されているシナリオを書き換えてしまう。
(エンドフェイズ→戦闘フェイズ。加えて言えば、戦闘フェイズ開始
と同時に自分が書き換えたシナリオを元に戻す。)
これって誰に管理させるの?
・・・と考えてるうちに再び頭がこんがらかってきた。
------------
シナリオを実行するにあたってエンジンはそのシナリオ全文をロードする。
↓
シナリオを一行ずつ実行する。
------------
で、気づいたのはその一行がシナリオの途中で書き換わるしくみが設計できてないw
Untap→Upkeep→Draw→Main1→Combat→Main2→EndOfTurn...
というメインシナリオをロードしたのち後、Relentless Assaultを行なうと
Main1なり2の終了後に実行されるシナリオが書き換わる。
最初にシナリオを静的に読み込むのでは刻々と変化するシナリオに対応できない。
シナリオの上書きみたいなことを先日書いてた気もするがそれだと追加されたり
スキップされたりするシナリオが奇妙なことになってしまう。
もう一つ何かの工夫がいる。
「シナリオ割り込み」の事例をいくつか作ってみる。
------------------------------------------------
事例1
こいずみのこうげき。
くまは ねたまき に 2点のダメージをあたえた!
ねたまき のライフは 3点になった。
こいずみ は連続突撃Aをとなえた!
こいずみ は連続突撃Bをとなえた!
・・・・どっちから解決するんだっけ??
------------------------------------------------
事例2
あぷ はくりんなっぷをせんげんした!
あぷ はてふだを9まいもっている。
あぷ はるーとわらC をすてた。
るーとわらC は狂気した!
あぷ はるーとわらDをすてた。
るーとわらD は狂気した!
条件がそろっているので(RC:314.3)が発動した!
複数のスタック待ちが発生している場合どっちからスタックにつむの??
「バージョン」と表現してみる。
■ダイナミックに書き換えられるシナリオを処理する方法。
シナリオを実行しているとき、ネストして呼び出された
シナリオが呼び出し側のシナリオを書き換えることがある。
たとえばRelentless Assaultは第二メインフェイズの終了後に実行が
期待されているシナリオを書き換えてしまう。
(エンドフェイズ→戦闘フェイズ。加えて言えば、戦闘フェイズ開始
と同時に自分が書き換えたシナリオを元に戻す。)
これって誰に管理させるの?
・・・と考えてるうちに再び頭がこんがらかってきた。
------------
シナリオを実行するにあたってエンジンはそのシナリオ全文をロードする。
↓
シナリオを一行ずつ実行する。
------------
で、気づいたのはその一行がシナリオの途中で書き換わるしくみが設計できてないw
Untap→Upkeep→Draw→Main1→Combat→Main2→EndOfTurn...
というメインシナリオをロードしたのち後、Relentless Assaultを行なうと
Main1なり2の終了後に実行されるシナリオが書き換わる。
最初にシナリオを静的に読み込むのでは刻々と変化するシナリオに対応できない。
シナリオの上書きみたいなことを先日書いてた気もするがそれだと追加されたり
スキップされたりするシナリオが奇妙なことになってしまう。
もう一つ何かの工夫がいる。
「シナリオ割り込み」の事例をいくつか作ってみる。
------------------------------------------------
事例1
こいずみのこうげき。
くまは ねたまき に 2点のダメージをあたえた!
ねたまき のライフは 3点になった。
こいずみ は連続突撃Aをとなえた!
こいずみ は連続突撃Bをとなえた!
・・・・どっちから解決するんだっけ??
------------------------------------------------
事例2
あぷ はくりんなっぷをせんげんした!
あぷ はてふだを9まいもっている。
あぷ はるーとわらC をすてた。
るーとわらC は狂気した!
あぷ はるーとわらDをすてた。
るーとわらD は狂気した!
条件がそろっているので(RC:314.3)が発動した!
複数のスタック待ちが発生している場合どっちからスタックにつむの??
実はワルキューレにべた惚れだったり。
2005年6月11日 文化
ISBN:4861271584 コミック 冨士 宏 マッグガーデン 2005/06/10 ¥980
連載されてるの知りませんでしたw
マーベルランドと彼女に惚れたのはこれで3回目。
でも本当は絵本で読みたいかも。
連載されてるの知りませんでしたw
マーベルランドと彼女に惚れたのはこれで3回目。
でも本当は絵本で読みたいかも。
#多少修正
完全に普通のマジックプレイヤーを置き去りにしてる自分に気づく。
6月10日の事例4とか5とか見てイヤーな感じがした人は多分正解。
当初はループ構造とか条件分岐を「シナリオ仕様」に盛り込もうと思ってたけど止めちゃってます。
条件分岐はあってもELSEがないとか
ループ構造はサブルーチン呼び出しの出口コードをスタックでいじって制御するとか。
でもこうすることでインタプリタ上でGOTO(プログラムカウンタ)制御をしなくてすむのでそれはそれ。
シナリオの文法制御をどうするか、について「スタックマシン」にモデルを求めてますのでこうなってます。
スタックマシンといっても知らない人がほとんどだと思いますが
(私も学生のころに少し勉強したくらいで、概念くらいしか覚えてません)
P-CODEとかFORTHとか最近だとPostScriptとかのあれです・・・って普通しらねぇw
■手抜きの方針。
1.通常処理はDBのストアド呼び出し or シナリオ呼び出し。
パラメタとして呼び出すための条件を指定できる。
2.シナリオは途中で呼び出し側に戻ることができる。
パラメタとして呼び出し側に戻るための条件を指定できる。
Cでいうところのreturn。戻り値として指定できるのは
「なし」か「次に実行するシナリオの名前」のみ。
4.条件分岐は2.で実現できる。ELSEはサポートしない。
5.繰り返し制御は3.で実現できるのでサポートしない。
6.演算はDBエンジンに任せてもできるのでサポートしない。
7.多少のI/O制御は必要かもしれない。手抜きできそうならそのためのステートメントのみ追加。
うひゃw
ステートメントの名前とかどんなのがいいか考えてないです。
EXEC IF条件,[シナリオ名],パラメタ文字列 //シナリオスタックは変化しない。
CALL IF条件,[ストアド名],パラメタ文字列 //シナリオスタックに積むものはまだ見えてない。
EXIT IF条件,{ストアド名} //CALLで作られたスタックは除去。ストアド名があればそれを制御スタックに積む。
:
osqlコンソールに見えてきた・・・orz。いっそPERFORMとか使って嫌悪感をアップさせr(ry
ところでこれを考えてるときにAccessマクロを思い出してしまいますた。
(業務でつかったことは3つくらいしかありませんが苦痛の限りのシロモノですw)
あれにラベルがなくても繰り返しとか実現できるかも・・・とか思ってしまった。
んでもって、CDCの人が「Accessでつくれば?」とかいってたのを一瞬マジに検討してしまった。
Accessマクロで書かれたシナリオが数千単位で登録されてるクライアントも面白いかも・・・とか。
(ちなみにAPとかMWSレベルのシナリオならAccessで作れます)
自分メモ:68000のbra命令も思い出してみた。
---------
参考にならなさそうな面白いなリンクを見つけたので貼り付け。
http://mag.autumn.org/Content.modf?id=20050517171824
http://homepage3.nifty.com/murasakigawa/junk/rpn2001c.htm
http://www-lab.ee.uec.ac.jp/text/forth/man/man.html
完全に普通のマジックプレイヤーを置き去りにしてる自分に気づく。
6月10日の事例4とか5とか見てイヤーな感じがした人は多分正解。
当初はループ構造とか条件分岐を「シナリオ仕様」に盛り込もうと思ってたけど止めちゃってます。
条件分岐はあってもELSEがないとか
ループ構造はサブルーチン呼び出しの出口コードをスタックでいじって制御するとか。
でもこうすることでインタプリタ上でGOTO(プログラムカウンタ)制御をしなくてすむのでそれはそれ。
シナリオの文法制御をどうするか、について「スタックマシン」にモデルを求めてますのでこうなってます。
スタックマシンといっても知らない人がほとんどだと思いますが
(私も学生のころに少し勉強したくらいで、概念くらいしか覚えてません)
P-CODEとかFORTHとか最近だとPostScriptとかのあれです・・・って普通しらねぇw
■手抜きの方針。
1.通常処理はDBのストアド呼び出し or シナリオ呼び出し。
パラメタとして呼び出すための条件を指定できる。
2.シナリオは途中で呼び出し側に戻ることができる。
パラメタとして呼び出し側に戻るための条件を指定できる。
Cでいうところのreturn。戻り値として指定できるのは
「なし」か「次に実行するシナリオの名前」のみ。
4.条件分岐は2.で実現できる。ELSEはサポートしない。
5.繰り返し制御は3.で実現できるのでサポートしない。
6.演算はDBエンジンに任せてもできるのでサポートしない。
7.多少のI/O制御は必要かもしれない。手抜きできそうならそのためのステートメントのみ追加。
うひゃw
ステートメントの名前とかどんなのがいいか考えてないです。
EXEC IF条件,[シナリオ名],パラメタ文字列 //シナリオスタックは変化しない。
CALL IF条件,[ストアド名],パラメタ文字列 //シナリオスタックに積むものはまだ見えてない。
EXIT IF条件,{ストアド名} //CALLで作られたスタックは除去。ストアド名があればそれを制御スタックに積む。
:
osqlコンソールに見えてきた・・・orz。いっそPERFORMとか使って嫌悪感をアップさせr(ry
ところでこれを考えてるときにAccessマクロを思い出してしまいますた。
(業務でつかったことは3つくらいしかありませんが苦痛の限りのシロモノですw)
あれにラベルがなくても繰り返しとか実現できるかも・・・とか思ってしまった。
んでもって、CDCの人が「Accessでつくれば?」とかいってたのを一瞬マジに検討してしまった。
Accessマクロで書かれたシナリオが数千単位で登録されてるクライアントも面白いかも・・・とか。
(ちなみにAPとかMWSレベルのシナリオならAccessで作れます)
自分メモ:68000のbra命令も思い出してみた。
---------
参考にならなさそうな面白いなリンクを見つけたので貼り付け。
http://mag.autumn.org/Content.modf?id=20050517171824
http://homepage3.nifty.com/murasakigawa/junk/rpn2001c.htm
http://www-lab.ee.uec.ac.jp/text/forth/man/man.html
池袋で鉄人戦が告知されましたが・・
2005年6月14日###############################
チャットで指摘したところ
露天鉱床は無事禁止されますた。
また多人数戦はなくなる可能性
###############################
>追記:禁止制限カードについて
>コモン単:Maze of IthとMishira’s Factoryは禁止。
>通常&多人数戦:今回はレガシーに準拠
■1.のコモン単、なぜかレガシー準拠ってのが抜けてます。
つまりどういうことかというと。
露 天 鉱 床 が 使 え る 。
せっかくの露天鉱床、悪用するならこうだろうってことで。
4E(CH)+
16 Artifact-Land(4U/4B/4R/2W/2G)
4 Strip Mine(AQ)
4 Arcbond Worker(DS)
4 Atog(AQ)
4 Ornithopter(AQ)
4 Disciple of the Vault(MD)
4 Frog.(MD)
3 Myr Enf.(MD)
2 Hover Guard(MD)
4 Thoughtcast(MD)
4 Chromatic(MD)
4 Cranial Plating(DS)
3 Penta Prizm(FD)
-----------
4 Lightning Bolt
4 Tormod’s Crypt
4 Welder. Jar
3 Stone Rain
ま た 親 和 か !!
■2.通常戦もたった3回戦しかありませんのであたり運がひどく影響してきます。
また、よりによってレガシー準拠です。
過去レガシー準拠の紅葉杯でよい成績をたたき出してるものといえば。
・たんぐる親和
・ごぶりん
・らいよんさるべ
・アグロウォーター
や っ ぱ り 親 和 か !!
■3.ネクロレスネクロをバトルロイヤルでプレイしてみるテスト。
たとえば8人のバトルロイヤル。
:
2T:「Innocent Blood」
:
4T:「Mutilate」
・・・全員からLightning Boltとか飛んできそうです。
4 無垢
4 布告
4 もぎとり
4 囁き
2 占骨
3 確約
3 太陽のしずく
4 堕落
4 消耗
3 貴重品室
23 沼
------------------------------
あと赤青シャープシューター警報とか。
思いっきり場が混乱しそうですw
========================================
・・・と書いてみるものの最近カード触ってないし先週末も結局他のことに
時間をささげてしまったのでデッキが準備できない可能性大。マズー。
チャットで指摘したところ
露天鉱床は無事禁止されますた。
また多人数戦はなくなる可能性
###############################
>追記:禁止制限カードについて
>コモン単:Maze of IthとMishira’s Factoryは禁止。
>通常&多人数戦:今回はレガシーに準拠
■1.のコモン単、なぜかレガシー準拠ってのが抜けてます。
つまりどういうことかというと。
露 天 鉱 床 が 使 え る 。
せっかくの露天鉱床、悪用するならこうだろうってことで。
4E(CH)+
16 Artifact-Land(4U/4B/4R/2W/2G)
4 Strip Mine(AQ)
4 Arcbond Worker(DS)
4 Atog(AQ)
4 Ornithopter(AQ)
4 Disciple of the Vault(MD)
4 Frog.(MD)
3 Myr Enf.(MD)
2 Hover Guard(MD)
4 Thoughtcast(MD)
4 Chromatic(MD)
4 Cranial Plating(DS)
3 Penta Prizm(FD)
-----------
4 Lightning Bolt
4 Tormod’s Crypt
4 Welder. Jar
3 Stone Rain
ま た 親 和 か !!
■2.通常戦もたった3回戦しかありませんのであたり運がひどく影響してきます。
また、よりによってレガシー準拠です。
過去レガシー準拠の紅葉杯でよい成績をたたき出してるものといえば。
・たんぐる親和
・ごぶりん
・らいよんさるべ
・アグロウォーター
や っ ぱ り 親 和 か !!
■3.ネクロレスネクロをバトルロイヤルでプレイしてみるテスト。
たとえば8人のバトルロイヤル。
:
2T:「Innocent Blood」
:
4T:「Mutilate」
・・・全員からLightning Boltとか飛んできそうです。
4 無垢
4 布告
4 もぎとり
4 囁き
2 占骨
3 確約
3 太陽のしずく
4 堕落
4 消耗
3 貴重品室
23 沼
------------------------------
あと赤青シャープシューター警報とか。
思いっきり場が混乱しそうですw
========================================
・・・と書いてみるものの最近カード触ってないし先週末も結局他のことに
時間をささげてしまったのでデッキが準備できない可能性大。マズー。
ごっこ遊び(シナリオの実装例)-2
2005年6月15日 SCENA仕様メモTimeStopが解決に入る直前のシナリオスタックは↓のような感じ。
[SP]=5 //スタックポインタ
[SENA_STK] //シナリオスタック
LV, SENA_NM
-----------------------------------
5, ’MTG_SENA_PRIOT’
4, ’MTG_SENA_PH_BGN_UPK’
3, ’MTG_SENA_PH_BGN’
2, ’MTG_SENA_APP_PHASE’
1, ’MTG_SENA_APP_PHASE_LOOP’
------------------------------------
で、5解決に入ってクリンナップしてるとき。
[SP]=7 //スタックポインタ
[SENA_STK] //シナリオスタック
LV, SENA_NM
-----------------------------------
7, ’MTG_SENA_PH_END_CUP’
6, ’MTG_CARD_Time_Stop_Effect0’
5, ’MTG_SENA_PRIOT’
:
(略)
------------------------------------
「残りのフェイズステップをすっとばして、フェイズ一式を終了させる」とき。
[SP]=6 //スタックポインタ
[SENA_STK] //シナリオスタック
LV, SENA_NM
-----------------------------------
6, ’MTG_CARD_Time_Stop_Effect0’
5, ’MTG_SENA_PRIOT’
4, ’MTG_SENA_PH_BGN_UPK’
3, ’MTG_SENA_PH_BGN’
2, ’MTG_SENA_APP_PHASE’
1, ’MTG_SENA_APP_PHASE_LOOP’
------------------------------------
DBのストアドでなにをしなきゃいけないかというと、
スタックを遡りながら
1.パラメタで示されたシナリオまでのシナリオスタックを全てDELETEする。
2.親シナリオで発生した一時的なスタックやヒープがあれば削除する。
T-SQLのストアドだと多分こんな感じ。
昔一回使ったきりだからよく覚えてないけど・・。
CREATE PROCEDURE MTG_APP_EXIT_TO (@argSNM VARCHAR(32))
AS
BEGIN
-- 引数のチェック
DECLARE @plv INT;
SET @plv = SELECT LV FROM SENA_STK WHERE SNM = @argSNM;
IF @plv IS NULL
BEGIN
RAISERROR(どいつが親じゃゴルア!)
END;
-- シナリオスタックのお掃除。
-- スタックだけなら一挙に削ってしまえるがわざわざループにしてるのは
-- シナリオごとに「スコープやオーナがそのシナリオである」
-- スタックとヒープの掃除を正しくしてまわらなくちゃいけないと思ってるから。
-- たとえばFinal Fortuneは遅延効果を特定のプレイヤーのターン終了時に
-- 発生させるため、ターン終了時以外のトリガーに加え、"最終(Final)ターン"が
-- 始まったことを記録するための情報をヒープに確保する。
-- (DBでそんなところまで実装すべきじゃないが手抜きのためなら何でもする)
-- シナリオスタックの関係で言えばストーム持ちのカードがデッキに入ってる場合
--「フェイズ一式300.1」のシナリオを上書きした「ストーム入りフェイズ一式」の
-- シナリオを作成する。しかしこれは永続的な上書きなので書き換えられちゃ困る。
-- (ぱっと聞いただけだと意味不明だと思うけど)
DECLARE @lv INT;
DECLARE @snm VARCHAR(32);
DECLARE c CURSOR LOCAL FORWARD_ONLY STATIC FOR
SELECT LV,SENA_NM
FROM SENA_STK
WHERE LV >= @plv
ORDER BY LV DESC;
OPEN c;
FETCH NEXT FROM c INTO @lv, @snm;
WHILE @@FETCH_STATUS = 0
BEGIN
-- シナリオの変数スタックを削除。
EXEC MTG_DELETE_SENA_HEAP, @snm;
-- シナリオスタックを削除。
EXEC MTG_DELETE_SENA_STAK, @snm;
FETCH NEXT FROM c INTO @lv, @snm;
END;
CLOSE c;
DEALLOCATE c;
END;
考えがまとまるまでもう少しかな・・・。
[SP]=5 //スタックポインタ
[SENA_STK] //シナリオスタック
LV, SENA_NM
-----------------------------------
5, ’MTG_SENA_PRIOT’
4, ’MTG_SENA_PH_BGN_UPK’
3, ’MTG_SENA_PH_BGN’
2, ’MTG_SENA_APP_PHASE’
1, ’MTG_SENA_APP_PHASE_LOOP’
------------------------------------
で、5解決に入ってクリンナップしてるとき。
[SP]=7 //スタックポインタ
[SENA_STK] //シナリオスタック
LV, SENA_NM
-----------------------------------
7, ’MTG_SENA_PH_END_CUP’
6, ’MTG_CARD_Time_Stop_Effect0’
5, ’MTG_SENA_PRIOT’
:
(略)
------------------------------------
「残りのフェイズステップをすっとばして、フェイズ一式を終了させる」とき。
[SP]=6 //スタックポインタ
[SENA_STK] //シナリオスタック
LV, SENA_NM
-----------------------------------
6, ’MTG_CARD_Time_Stop_Effect0’
5, ’MTG_SENA_PRIOT’
4, ’MTG_SENA_PH_BGN_UPK’
3, ’MTG_SENA_PH_BGN’
2, ’MTG_SENA_APP_PHASE’
1, ’MTG_SENA_APP_PHASE_LOOP’
------------------------------------
DBのストアドでなにをしなきゃいけないかというと、
スタックを遡りながら
1.パラメタで示されたシナリオまでのシナリオスタックを全てDELETEする。
2.親シナリオで発生した一時的なスタックやヒープがあれば削除する。
T-SQLのストアドだと多分こんな感じ。
昔一回使ったきりだからよく覚えてないけど・・。
CREATE PROCEDURE MTG_APP_EXIT_TO (@argSNM VARCHAR(32))
AS
BEGIN
-- 引数のチェック
DECLARE @plv INT;
SET @plv = SELECT LV FROM SENA_STK WHERE SNM = @argSNM;
IF @plv IS NULL
BEGIN
RAISERROR(どいつが親じゃゴルア!)
END;
-- シナリオスタックのお掃除。
-- スタックだけなら一挙に削ってしまえるがわざわざループにしてるのは
-- シナリオごとに「スコープやオーナがそのシナリオである」
-- スタックとヒープの掃除を正しくしてまわらなくちゃいけないと思ってるから。
-- たとえばFinal Fortuneは遅延効果を特定のプレイヤーのターン終了時に
-- 発生させるため、ターン終了時以外のトリガーに加え、"最終(Final)ターン"が
-- 始まったことを記録するための情報をヒープに確保する。
-- (DBでそんなところまで実装すべきじゃないが手抜きのためなら何でもする)
-- シナリオスタックの関係で言えばストーム持ちのカードがデッキに入ってる場合
--「フェイズ一式300.1」のシナリオを上書きした「ストーム入りフェイズ一式」の
-- シナリオを作成する。しかしこれは永続的な上書きなので書き換えられちゃ困る。
-- (ぱっと聞いただけだと意味不明だと思うけど)
DECLARE @lv INT;
DECLARE @snm VARCHAR(32);
DECLARE c CURSOR LOCAL FORWARD_ONLY STATIC FOR
SELECT LV,SENA_NM
FROM SENA_STK
WHERE LV >= @plv
ORDER BY LV DESC;
OPEN c;
FETCH NEXT FROM c INTO @lv, @snm;
WHILE @@FETCH_STATUS = 0
BEGIN
-- シナリオの変数スタックを削除。
EXEC MTG_DELETE_SENA_HEAP, @snm;
-- シナリオスタックを削除。
EXEC MTG_DELETE_SENA_STAK, @snm;
FETCH NEXT FROM c INTO @lv, @snm;
END;
CLOSE c;
DEALLOCATE c;
END;
考えがまとまるまでもう少しかな・・・。
ごっこ遊び(シナリオの実装例)-1
2005年6月15日 SCENA仕様メモあちこち省略してるけど、一応6/11のシナリオ言語(手抜き仕様)の雰囲気をつかんでみる。
ついでにシナリオスタックの振る舞いも。
■事例6
こんたはネタのアップキープに時間停止を撃った。
------------------------------
下の1〜6がこんたのTimeStopを説明するのに必要になりそうなシナリオサンプル一式。
TimeStopを解決する瞬間はおおよそ↓のの1〜5のシナリオが入れ子で実行されている。
1.プレイヤのループ
[MTG_SENA_APP_PHASE_LOOP]
EXEC,NULL,"MTG_APP_STAT_SetActivePlayer" //次のプレイヤを得る。
CALL,NULL,"MTG_SENA_APP_PHASE_LOOP" //フェイズ一式のシナリオを呼び出す。
EXIT,"MTG_GET_GAME_END","MTG_APP_START_MATCH" //自己ループさせる。
(おしまい)
2.フェイズ一式(300.1)
[MTG_SENA_APP_PHASE]
:
CALL,NULL,"MTG_SENA_PH_BGN" //開始フェイズ。
CALL,NULL,"MTG_SENA_PH_MN1"
CALL,NULL,"MTG_SENA_PH_CBT"
CALL,NULL,"MTG_SENA_PH_MN2"
CALL,NULL,"MTG_SENA_PH_END"
:
(おしまい)
3.開始フェイズ(301)
[MTG_SENA_PH_BGN]
:
CALL,NULL,"MTG_SENA_PH_BGN_PHA" //302.1
CALL,NULL,"MTG_SENA_PH_BGN_UNT" //302.2
CALL,NULL,"MTG_SENA_PH_BGN_UPK" //303
CALL,NULL,"MTG_SENA_PH_BGN_DRW" //304
:
(おしまい)
4.アップキープステップ
[MTG_SENA_PH_BGN_UPK] (303)
:
EXEC,NULL,"MTG_APP_EFCT_CHK","(’At beginning upkeep’)" //効果的なパラメタ渡しの方法は考えてないw
CALL,NULL,"MTG_SENA_PH_BGN_UPK_PUSH_STK" //スタックに積むシナリオ
CALL,NULL,"MTG_SENA_PRIORITY" // 優先権シナリオ
(おしまい)
5.優先権シナリオ
[MTG_SENA_PRIORITY]
EXIT,"MTG_GET_PRIORITY_END",NULL //優先権の入れ子直後ならそのまま終了。
:
//スタック解決へ。
:
EXIT,"MTG_GET_PRIORITY_END","MTG_SENA_PRIORITY"
// スタックが空か両方のプレイヤーがパスするか
// 状況起因効果と誘発型効果のスタック待ちがなくなるまで自己ループさせる。
(おしまい)
6.時間停止能力(509.1a〜c)
[MTG_CARD_Time_Stop_Effect0]
EXEC,NULL,"MTG_APP_RMV_OBJ" //スタックからオブジェクトを、戦闘から生物を取り除く
EXEC,NULL,"MTG_APP_EFCT_CHK","(’State-Based Effects’)" //※4.に同じ。
EXEC,NULL,"MTG_APP_PH_PH_END" //フェイズの終了処理。まだなんも考えてない。
CALL,NULL,"MTG_SENA_PH_END_CUP" //クリンナップステップを行なう。
EXEC,NULL,"MTG_APP_EXIT_TO’MTG_SENA_PH_BGN’"
//残りのフェイズステップをすっとばして、フェイズ一式を終了させる。"
(おしまい)
------------------------------
ついでにシナリオスタックの振る舞いも。
■事例6
こんたはネタのアップキープに時間停止を撃った。
------------------------------
下の1〜6がこんたのTimeStopを説明するのに必要になりそうなシナリオサンプル一式。
TimeStopを解決する瞬間はおおよそ↓のの1〜5のシナリオが入れ子で実行されている。
1.プレイヤのループ
[MTG_SENA_APP_PHASE_LOOP]
EXEC,NULL,"MTG_APP_STAT_SetActivePlayer" //次のプレイヤを得る。
CALL,NULL,"MTG_SENA_APP_PHASE_LOOP" //フェイズ一式のシナリオを呼び出す。
EXIT,"MTG_GET_GAME_END","MTG_APP_START_MATCH" //自己ループさせる。
(おしまい)
2.フェイズ一式(300.1)
[MTG_SENA_APP_PHASE]
:
CALL,NULL,"MTG_SENA_PH_BGN" //開始フェイズ。
CALL,NULL,"MTG_SENA_PH_MN1"
CALL,NULL,"MTG_SENA_PH_CBT"
CALL,NULL,"MTG_SENA_PH_MN2"
CALL,NULL,"MTG_SENA_PH_END"
:
(おしまい)
3.開始フェイズ(301)
[MTG_SENA_PH_BGN]
:
CALL,NULL,"MTG_SENA_PH_BGN_PHA" //302.1
CALL,NULL,"MTG_SENA_PH_BGN_UNT" //302.2
CALL,NULL,"MTG_SENA_PH_BGN_UPK" //303
CALL,NULL,"MTG_SENA_PH_BGN_DRW" //304
:
(おしまい)
4.アップキープステップ
[MTG_SENA_PH_BGN_UPK] (303)
:
EXEC,NULL,"MTG_APP_EFCT_CHK","(’At beginning upkeep’)" //効果的なパラメタ渡しの方法は考えてないw
CALL,NULL,"MTG_SENA_PH_BGN_UPK_PUSH_STK" //スタックに積むシナリオ
CALL,NULL,"MTG_SENA_PRIORITY" // 優先権シナリオ
(おしまい)
5.優先権シナリオ
[MTG_SENA_PRIORITY]
EXIT,"MTG_GET_PRIORITY_END",NULL //優先権の入れ子直後ならそのまま終了。
:
//スタック解決へ。
:
EXIT,"MTG_GET_PRIORITY_END","MTG_SENA_PRIORITY"
// スタックが空か両方のプレイヤーがパスするか
// 状況起因効果と誘発型効果のスタック待ちがなくなるまで自己ループさせる。
(おしまい)
6.時間停止能力(509.1a〜c)
[MTG_CARD_Time_Stop_Effect0]
EXEC,NULL,"MTG_APP_RMV_OBJ" //スタックからオブジェクトを、戦闘から生物を取り除く
EXEC,NULL,"MTG_APP_EFCT_CHK","(’State-Based Effects’)" //※4.に同じ。
EXEC,NULL,"MTG_APP_PH_PH_END" //フェイズの終了処理。まだなんも考えてない。
CALL,NULL,"MTG_SENA_PH_END_CUP" //クリンナップステップを行なう。
EXEC,NULL,"MTG_APP_EXIT_TO’MTG_SENA_PH_BGN’"
//残りのフェイズステップをすっとばして、フェイズ一式を終了させる。"
(おしまい)
------------------------------
池袋2CHD鉄人戦-コモン単の反省
2005年6月20日 ゲーム過去の経緯上今回のコモン単は「黒と親和しかいない」と思ってた。
荒川2ちゃんだーと(Type-Bコモン単)以降、紅葉杯まで2CHDのイベントで
開かれるコモン単イベントを制して来たのは黒と親和とブラストダーム。
ざっくりと考えていた対人メタはこんなところ。
--------
ネタ:ネズミ黒コンで確定(正解)
AP:緑黒コモンマルカで確定(正解)
Rebecca:3色忍者(実際は3色ハーピー)
ナモ:スタンダードに近いデッキ、おそらく親和(実際は赤緑秘儀)
koizumi:緑系ブラストダームデッキ(実際は不参加)
初参加の人:赤単スライか緑系ウイニー。
はるぅらら:黒単ペストで確定 ←【と思われているはず】
--------
チャットだと
「黒単のアドバンテージと親和のスピードに勝てて赤も茶色対策もできるデッキ」
が強いんじゃないか、という前評判。
で、考えたのは大昔スタンダードで使ってた「再入植(UL)レベル(6E-US-MM)」の強化版。
シヴィ姉の役割を再入植で補完する長期戦デッキ。
メインに黒対策15枚、茶色対策8枚、墓地封じ9枚の自分なりのソリューション。
親和のスピードは無視する方向。
とにかくネタ蒔き師匠をボコれればいいや、と割り切ってみる。
[フェルケンレベル]
22 Plains
4 Rebel Recruiter-1/1 (MM)
3 Rebel Recruiter-1/2 (MM)
2 Rebel Recruiter-1/1 Flying (NE)
4 Order of Leitbur (FE)
4 Rebel Glider:B (MM)
3 Rebel Bringer:B (NE)
4 Disenchant-Shaper (MM)
4 Topple(NE)
4 Cho-mano Blessing(MM)
4 Seal:W(NE)
2 Feldon’s Cane(CH)
-------
3 COP:R // 赤バーンメタ。
2 Bringer:R(NE) //エイトグ&スパイクショットメタ。
3 COP:B // ネタ&アプメタ。
3 Serrated Arrows(HL) //ウイニーメタ。
4 Disenchant //親和メタ。
多少いじって弱くした上でチャットで晒してみる。
でも白単使うことが周知されてしまっちゃ意味が無いw
とにもかくにも黒単ネズミで確定のネタ蒔き師匠にひどく警戒される。
チャット中、ネタ蒔き師匠が「Death’s Duetなんて使わナイよ!」と発した後
「あ」「ナモー、送ったものも貸してー」と秘密のメッセージ。
なんだかよくわからないが白単を警戒してくるらしいという意図だけは伝わってくる。
とりあえずDeath’s Duetの言葉からそれをNausea とEvincar’s Justiiceを含む
テンペストブロックに修正してくるものと解釈してみる。
ついでにkoizumiさんが赤単バーンをつかうらしい、という情報を得る。
完全にヒヨる。
タフネス1のOrderだめじゃん!!
で↓Nauseaに弱いOrderをLlanowar Knightに置き換えてNauseaの裏をかき、
赤単をアルマジロと旗持ちの硬さでいじめるパターンに変更してみる。
[当日版]
16 Plains
7 Forest
4 Rebel Recruiter-1/1 (MM)
3 Rebel Recruiter-1/2 (MM)
2 Rebel Recruiter-1/1 Flying (NE)
4 Llanowar Knight (IV)
4 Rebel Glider:B (MM)
2 Rebel Bringer:B (NE)
1 Rebel Bringer:R (NE)
4 Disenchant-Shaper (MM)
4 Topple(NE)
4 Cho-mano Blessing(MM)
3 Seal:W(NE)
2 Feldon’s Cane(CH)
-----
[side]
3 COP:R
3 COP:B
2 Bringer:R(NE)
1 Bringer:B(NE)
3 Armadillo Cloak(IV)
3 Flagbearer(AP)
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
当日。メタ外の敗北に泣く。
1回戦。
前日仕事で殆ど寝てないこともあって寝坊。
遅刻で不戦敗。完全にメタ外だw
2戦目。
Rebecca主催。
RebさんのデッキはハーピーやナイトメアでCIP効果を使いまわす
黒青赤のCIPギミックデッキ。
墓地利用をBringerとToppleで封じつつ殴るのは大正解。
1戦目を完封パターンでイジメきったあと、
かなりイタいプレイミスをして2戦目を落とすが3戦目で押し切り勝ち。
(だった気がする。あれ?もしかして負けたかも??)
3戦目。
なぜかネタ蒔き師匠と当たる。
どうやら1戦目を負けていたらしい。相性的なこともあって師匠渋い顔。
1戦目は手札を攻められるものの完封。
リクルータから湧いてくるプロテクションはネズミじゃどうにもならない。
2戦目3戦目。
目の前に現れたのはCOPメタの三節棍ゴーレム(DS)・・・だけじゃなく、
全くメタ外だったぴゅう太のゴーレム(MD)。わははははは(汗
「4/2,1B:再生」
再生がキツい、ムリw
ぴゅう太ゴーレムにボコボコ殴られて負ける。
でも白Orderならとまってたんだよな。
先生攻撃なら・・。
メタ段階のヒヨり負け。
今回もいいとこありませんでしたw
[反省]
・自分を信用しよう。
・地雷になろう。
・遅刻は最大の敵w
なにはともあれ真っ黒でなかったのは収穫。
荒川2ちゃんだーと(Type-Bコモン単)以降、紅葉杯まで2CHDのイベントで
開かれるコモン単イベントを制して来たのは黒と親和とブラストダーム。
ざっくりと考えていた対人メタはこんなところ。
--------
ネタ:ネズミ黒コンで確定(正解)
AP:緑黒コモンマルカで確定(正解)
Rebecca:3色忍者(実際は3色ハーピー)
ナモ:スタンダードに近いデッキ、おそらく親和(実際は赤緑秘儀)
koizumi:緑系ブラストダームデッキ(実際は不参加)
初参加の人:赤単スライか緑系ウイニー。
はるぅらら:黒単ペストで確定 ←【と思われているはず】
--------
チャットだと
「黒単のアドバンテージと親和のスピードに勝てて赤も茶色対策もできるデッキ」
が強いんじゃないか、という前評判。
で、考えたのは大昔スタンダードで使ってた「再入植(UL)レベル(6E-US-MM)」の強化版。
シヴィ姉の役割を再入植で補完する長期戦デッキ。
メインに黒対策15枚、茶色対策8枚、墓地封じ9枚の自分なりのソリューション。
親和のスピードは無視する方向。
とにかくネタ蒔き師匠をボコれればいいや、と割り切ってみる。
[フェルケンレベル]
22 Plains
4 Rebel Recruiter-1/1 (MM)
3 Rebel Recruiter-1/2 (MM)
2 Rebel Recruiter-1/1 Flying (NE)
4 Order of Leitbur (FE)
4 Rebel Glider:B (MM)
3 Rebel Bringer:B (NE)
4 Disenchant-Shaper (MM)
4 Topple(NE)
4 Cho-mano Blessing(MM)
4 Seal:W(NE)
2 Feldon’s Cane(CH)
-------
3 COP:R // 赤バーンメタ。
2 Bringer:R(NE) //エイトグ&スパイクショットメタ。
3 COP:B // ネタ&アプメタ。
3 Serrated Arrows(HL) //ウイニーメタ。
4 Disenchant //親和メタ。
多少いじって弱くした上でチャットで晒してみる。
でも白単使うことが周知されてしまっちゃ意味が無いw
とにもかくにも黒単ネズミで確定のネタ蒔き師匠にひどく警戒される。
チャット中、ネタ蒔き師匠が「Death’s Duetなんて使わナイよ!」と発した後
「あ」「ナモー、送ったものも貸してー」と秘密のメッセージ。
なんだかよくわからないが白単を警戒してくるらしいという意図だけは伝わってくる。
とりあえずDeath’s Duetの言葉からそれをNausea とEvincar’s Justiiceを含む
テンペストブロックに修正してくるものと解釈してみる。
ついでにkoizumiさんが赤単バーンをつかうらしい、という情報を得る。
完全にヒヨる。
タフネス1のOrderだめじゃん!!
で↓Nauseaに弱いOrderをLlanowar Knightに置き換えてNauseaの裏をかき、
赤単をアルマジロと旗持ちの硬さでいじめるパターンに変更してみる。
[当日版]
16 Plains
7 Forest
4 Rebel Recruiter-1/1 (MM)
3 Rebel Recruiter-1/2 (MM)
2 Rebel Recruiter-1/1 Flying (NE)
4 Llanowar Knight (IV)
4 Rebel Glider:B (MM)
2 Rebel Bringer:B (NE)
1 Rebel Bringer:R (NE)
4 Disenchant-Shaper (MM)
4 Topple(NE)
4 Cho-mano Blessing(MM)
3 Seal:W(NE)
2 Feldon’s Cane(CH)
-----
[side]
3 COP:R
3 COP:B
2 Bringer:R(NE)
1 Bringer:B(NE)
3 Armadillo Cloak(IV)
3 Flagbearer(AP)
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
当日。メタ外の敗北に泣く。
1回戦。
前日仕事で殆ど寝てないこともあって寝坊。
遅刻で不戦敗。完全にメタ外だw
2戦目。
Rebecca主催。
RebさんのデッキはハーピーやナイトメアでCIP効果を使いまわす
黒青赤のCIPギミックデッキ。
墓地利用をBringerとToppleで封じつつ殴るのは大正解。
1戦目を完封パターンでイジメきったあと、
かなりイタいプレイミスをして2戦目を落とすが3戦目で押し切り勝ち。
(だった気がする。あれ?もしかして負けたかも??)
3戦目。
なぜかネタ蒔き師匠と当たる。
どうやら1戦目を負けていたらしい。相性的なこともあって師匠渋い顔。
1戦目は手札を攻められるものの完封。
リクルータから湧いてくるプロテクションはネズミじゃどうにもならない。
2戦目3戦目。
目の前に現れたのはCOPメタの三節棍ゴーレム(DS)・・・だけじゃなく、
全くメタ外だったぴゅう太のゴーレム(MD)。わははははは(汗
「4/2,1B:再生」
再生がキツい、ムリw
ぴゅう太ゴーレムにボコボコ殴られて負ける。
でも白Orderならとまってたんだよな。
先生攻撃なら・・。
メタ段階のヒヨり負け。
今回もいいとこありませんでしたw
[反省]
・自分を信用しよう。
・地雷になろう。
・遅刻は最大の敵w
なにはともあれ真っ黒でなかったのは収穫。
一番楽しいのは名前を考えてるときらしい。
たぶんあっさり「SE(Senario Engine)」でいいや、って
なっちゃうんだろうけど。
■解決中。
・Shahrazad(AN;Rule506)
カードや能力の二重帳簿は考えていたがゲーム状態やプレイヤーまで二重帳簿??。
サポートしたくない、というあたりで解決するとおもう。
・毒カウンター:
プレイヤーはPYRゾーンに存在するカードの一つにしてしまえばいいと思う。
ダメージの解決も非常に楽になる。
・Shizuko, Caller of Autumn(SK), Food Chain(MM)
安直なマナプールの考え方を根底からぶち壊す。ひどい奴だ。
ええい、マナプールもカードの一つにしてしまえ。(・・・いいのか?)
・Fire/Ice(AP) カードの特性値が一つでない例。
頭では判っていても厄介。反転カードは全然楽。
【メモ】
オブジェクトのインスタンス(プロパティ)に有効期間を設けることでシナリオの記述を
軽減しようとしてたらオブジェクトの有効期限もあったほうがいいことに気づく。
シナリオで書くよりはよほど美しいと思う。
でも一方でCEF(常在能力)領域以外ではあまり有効でない気もしてる。
--------------------------------------------------------------------
■*** MUSICAL BATON ***
音楽協会かどこかの陰謀じゃねーのと思ってみる。
*Total volume of music files on my computer
NO FILES ON MY PC.
I listen to music with only CD player.
・・・こういうことをやってるからCDが棚に数百枚ストックされちゃったりするわけだ。
*Song playing right now
Innocent O.S.T
一年経ってようやく買いました。お目当てはFollow Me。
*The last CD I bought
ドリフだョ!全員集合(赤盤)
*Five songs(tunes) I listen to a lot, or that mean a lot to me
・・・聞くものの殆どがインスツルメンタルなんで強引にでっちあげ。
1.GUSTAV MAHLER: Das Lied von der Erde
自分にとって古典音楽のポータルとなった曲の一つ。
マーラーから選ぶなら交響曲No.1かNo.4。
2.YUJI OHNO: LUPIN THE THIRD Theme
先生!原曲に歌詞ありません!
3.TORAZO HIROSAWA: 清水次郎長伝 石松三十石船道中
「旅行けば 駿河の国に 茶の香り...」・・・・SONGちゃうやん!!
4.ヘドロ: ヘドロのテーマ 〜from Princess PrinPrin
♪わたしはヘドロ ヘドロ
世界で一番いいオンナ 好きな色は 赤と黒
レッドアンドブラック レッドアンドブラック
赤は血の色 黒は罪の色 オーレ!♪
・・・若者置き去りw
5.ZUNTATA: セラミックハート
ゲーム音楽から一つあげてみたかっただけ。
ゲー天の「ラブリースター」でもいいや。ステージ好きだし。
*Five people to whom I’m passing the baton
>NUL
>NUL
>NUL
>NUL
>NUL
・・・めんどいのでアースしときます。
─┐
─┴─
/////
たぶんあっさり「SE(Senario Engine)」でいいや、って
なっちゃうんだろうけど。
■解決中。
・Shahrazad(AN;Rule506)
カードや能力の二重帳簿は考えていたがゲーム状態やプレイヤーまで二重帳簿??。
サポートしたくない、というあたりで解決するとおもう。
・毒カウンター:
プレイヤーはPYRゾーンに存在するカードの一つにしてしまえばいいと思う。
ダメージの解決も非常に楽になる。
・Shizuko, Caller of Autumn(SK), Food Chain(MM)
安直なマナプールの考え方を根底からぶち壊す。ひどい奴だ。
ええい、マナプールもカードの一つにしてしまえ。(・・・いいのか?)
・Fire/Ice(AP) カードの特性値が一つでない例。
頭では判っていても厄介。反転カードは全然楽。
【メモ】
オブジェクトのインスタンス(プロパティ)に有効期間を設けることでシナリオの記述を
軽減しようとしてたらオブジェクトの有効期限もあったほうがいいことに気づく。
シナリオで書くよりはよほど美しいと思う。
でも一方でCEF(常在能力)領域以外ではあまり有効でない気もしてる。
--------------------------------------------------------------------
■*** MUSICAL BATON ***
音楽協会かどこかの陰謀じゃねーのと思ってみる。
*Total volume of music files on my computer
NO FILES ON MY PC.
I listen to music with only CD player.
・・・こういうことをやってるからCDが棚に数百枚ストックされちゃったりするわけだ。
*Song playing right now
Innocent O.S.T
一年経ってようやく買いました。お目当てはFollow Me。
*The last CD I bought
ドリフだョ!全員集合(赤盤)
*Five songs(tunes) I listen to a lot, or that mean a lot to me
・・・聞くものの殆どがインスツルメンタルなんで強引にでっちあげ。
1.GUSTAV MAHLER: Das Lied von der Erde
自分にとって古典音楽のポータルとなった曲の一つ。
マーラーから選ぶなら交響曲No.1かNo.4。
2.YUJI OHNO: LUPIN THE THIRD Theme
先生!原曲に歌詞ありません!
3.TORAZO HIROSAWA: 清水次郎長伝 石松三十石船道中
「旅行けば 駿河の国に 茶の香り...」・・・・SONGちゃうやん!!
4.ヘドロ: ヘドロのテーマ 〜from Princess PrinPrin
♪わたしはヘドロ ヘドロ
世界で一番いいオンナ 好きな色は 赤と黒
レッドアンドブラック レッドアンドブラック
赤は血の色 黒は罪の色 オーレ!♪
・・・若者置き去りw
5.ZUNTATA: セラミックハート
ゲーム音楽から一つあげてみたかっただけ。
ゲー天の「ラブリースター」でもいいや。ステージ好きだし。
*Five people to whom I’m passing the baton
>NUL
>NUL
>NUL
>NUL
>NUL
・・・めんどいのでアースしときます。
─┐
─┴─
/////
RDBはメニューにございません。
2005年6月25日 SCENA仕様メモアクセス元をみると最近のは殆どDB関係の御用事のようです。
そのせいか最近はアクセス元もgoogleからのリンクは↓こんなのばっかりです。
1)q=sqlplus 戻り値
2)q=SQLServer ストアド呼び出し
3)q=SQLServer トリガー
4)q=create procedure oracle exec
5)q=SQLPLUS ストアド 呼び出し
試しにいくつか試してみると・・・・マジで出てきましたw
1)出てきません。(167件)
2)上から1番目。(8件)
3)上から7番目。(224件)
4)上から30番目。(309件)
5)上から2番目。(59件)
ごめんなさい。そういう記事扱ってませんですw
常日頃あまり使わないRDBを使って遊んでみよう企画ですから。
以前のようなアクセス元「ラーメン二郎」とか「人間凶器」みたく物騒なのは
無くなりましたがすげー無味乾燥な気分。
-----------------------------------------
■ごっこ遊び
(その1)
DBインスタンスはSE(Senario Engine)という名前に決定。
基本部分をぼちぼち書いて基礎実験と考えの整理。
うわぁぁ、ぜんぜんまとまってねぇw
湧き出る疑問に溺れ気味。
(その2)
なにげなく使ってるのってホントにイヤ。
ついさっきまでSQL Serverでスキーマ使えると思ってた。
(SQLServer 2000だとCREATE SCHEMAという構文は存在するがOracleな人や
Postgresな人が期待するようなスキーマは作成されないです。)
そういやあユーザ部門のAccess97(現役ですが何か?)からODBC経由でみたら、
SQLServerは違和感感じないけどORACLEだとスキーマがある都合で嫌な名前になるんだっけ。
「いつも何を見てるんだ?」
とかいわれそうだけどいつも見てるのはメインフレームの階層DBだったりする。
(知らない人が多いと思いますがRDBが開発される遥か以前から使われてるDBです)
なのでここからそっちは初心者並みの知識しかない。
このBlogに期待できる技術的知識などないぞ、と開き直ってみる。
(その3)
ちなみにYukonだとSCHEMAはまともなものがサポートされてる模様。
でも.NETは触ったことない。
(ADOとかDAOはVBAから叩いたことあるけどほんの数千行程度。てかVBAでそんなことするな)
(その4)
CounterSpellとかマジ嫌いです。
下のほうのスタック勝手に取り除かないで下さい。
ヘルメットがなかったら即死だったかもしれません。
戦闘ダメージとかもどっかいって下さい。
あんたいろんなもんごっちゃにして一まとめにしすぎですから。
あんたに比べたら謙虚のほうがマシです(いいすぎ)。
(その5)
エラヨウをつくるとシナリオで7本?
1)レジェンドのシナリオ
2)プレイの能力シナリオ(熊と互換)
3)反転する能力シナリオ(特性値を書き換える)
4)プレイヤーのプレイをトリガすトリガシナリオ(有効期間=ゲーム中ずっと)
正常:このターンにプレイされた呪文が4つでこの能力の親オブジェクトが
場にある場合反転するシナリオをスタックに積む。
反転:そのプレイヤがコントローラでない場合打消しの能力オブジェクトをスタックに積む。
5)ターンの開始時にプレイされたカウントをゼロにするトリガシナリオ。
6)打ち消し(対象は取らない)の能力オブジェクトシナリオ
--------------------------------------------
■8Mox
なぜかネタ蒔きがまわしてる時間の方が長いデッキ。
TimeTwisterをいれて「弱体化」してみる。
(25)
8 Islands
3 Fetch:WU
8 Moxen:UUUUWBRG
3 Alex.
4 Sol Ring
(3)
3 Morphling
(12)
4 Counterspell
4 Mana Drain
4 FoW
(20)
4 Isochron Scepter
4 Ancestral Recall
3 FoF
3 Time Walk
4 Brainstorm
1 Time Twister
3 Fact or Fiction
1 Amnesia
そのせいか最近はアクセス元もgoogleからのリンクは↓こんなのばっかりです。
1)q=sqlplus 戻り値
2)q=SQLServer ストアド呼び出し
3)q=SQLServer トリガー
4)q=create procedure oracle exec
5)q=SQLPLUS ストアド 呼び出し
試しにいくつか試してみると・・・・マジで出てきましたw
1)出てきません。(167件)
2)上から1番目。(8件)
3)上から7番目。(224件)
4)上から30番目。(309件)
5)上から2番目。(59件)
ごめんなさい。そういう記事扱ってませんですw
常日頃あまり使わないRDBを使って遊んでみよう企画ですから。
以前のようなアクセス元「ラーメン二郎」とか「人間凶器」みたく物騒なのは
無くなりましたがすげー無味乾燥な気分。
-----------------------------------------
■ごっこ遊び
(その1)
DBインスタンスはSE(Senario Engine)という名前に決定。
基本部分をぼちぼち書いて基礎実験と考えの整理。
うわぁぁ、ぜんぜんまとまってねぇw
湧き出る疑問に溺れ気味。
(その2)
なにげなく使ってるのってホントにイヤ。
ついさっきまでSQL Serverでスキーマ使えると思ってた。
(SQLServer 2000だとCREATE SCHEMAという構文は存在するがOracleな人や
Postgresな人が期待するようなスキーマは作成されないです。)
そういやあユーザ部門のAccess97(現役ですが何か?)からODBC経由でみたら、
SQLServerは違和感感じないけどORACLEだとスキーマがある都合で嫌な名前になるんだっけ。
「いつも何を見てるんだ?」
とかいわれそうだけどいつも見てるのはメインフレームの階層DBだったりする。
(知らない人が多いと思いますがRDBが開発される遥か以前から使われてるDBです)
なのでここからそっちは初心者並みの知識しかない。
このBlogに期待できる技術的知識などないぞ、と開き直ってみる。
(その3)
ちなみにYukonだとSCHEMAはまともなものがサポートされてる模様。
でも.NETは触ったことない。
(ADOとかDAOはVBAから叩いたことあるけどほんの数千行程度。てかVBAでそんなことするな)
(その4)
CounterSpellとかマジ嫌いです。
下のほうのスタック勝手に取り除かないで下さい。
ヘルメットがなかったら即死だったかもしれません。
戦闘ダメージとかもどっかいって下さい。
あんたいろんなもんごっちゃにして一まとめにしすぎですから。
あんたに比べたら謙虚のほうがマシです(いいすぎ)。
(その5)
エラヨウをつくるとシナリオで7本?
1)レジェンドのシナリオ
2)プレイの能力シナリオ(熊と互換)
3)反転する能力シナリオ(特性値を書き換える)
4)プレイヤーのプレイをトリガすトリガシナリオ(有効期間=ゲーム中ずっと)
正常:このターンにプレイされた呪文が4つでこの能力の親オブジェクトが
場にある場合反転するシナリオをスタックに積む。
反転:そのプレイヤがコントローラでない場合打消しの能力オブジェクトをスタックに積む。
5)ターンの開始時にプレイされたカウントをゼロにするトリガシナリオ。
6)打ち消し(対象は取らない)の能力オブジェクトシナリオ
--------------------------------------------
■8Mox
なぜかネタ蒔きがまわしてる時間の方が長いデッキ。
TimeTwisterをいれて「弱体化」してみる。
(25)
8 Islands
3 Fetch:WU
8 Moxen:UUUUWBRG
3 Alex.
4 Sol Ring
(3)
3 Morphling
(12)
4 Counterspell
4 Mana Drain
4 FoW
(20)
4 Isochron Scepter
4 Ancestral Recall
3 FoF
3 Time Walk
4 Brainstorm
1 Time Twister
3 Fact or Fiction
1 Amnesia
一応サルベージ。
海外企業敵にまわすのやだしね。
http://game9.2ch.net/test/read.cgi/tcg/1113999189/301-400
海外企業敵にまわすのやだしね。
http://game9.2ch.net/test/read.cgi/tcg/1113999189/301-400
343 :名無しプレイヤー@手札いっぱい。:2005/06/02(木) 01:49:47 ID:bDiGzkmA
http://diarynote.jp/d/68000
これってMWSみたいなのか?
364 :名無しプレイヤー@手札いっぱい。:2005/06/05(日) 02:43:09 ID:XFwpUcZ1
>>343
できればいいけど間違いなくムリです。
APレベルでも下記の1,2,3は私にスキルがありません。
MOレベルだと4,5が必要になりますので完璧に個人作業の域を逸脱します。
1.クライアントUIを記述できる人、
2.サーバインタフェイスを記述できる人
3.サーバを提供できる人、
4.MTGルールをSQL Serverとシナリオ言語で記述できる人、
5.膨大なカードをSQL Serverとシナリオ言語で記述できる人
6.etc.
基本エンジンの設計とその実証以上はやらないとおもいますので
生暖かく見守ってください
新しいノートPCが必要です。と囁く声が。
2005年6月27日 コンピュータ電波と悪魔の囁きに悩まされてる。
触発されたからって訳じゃないけどノートPCを買えという囁きがとまらない。
------------
1.Intel Macが欲しい。でも待てない。
2.THINKPADでなきゃ駄目。
3.B5ノートじゃ駄目。i1620は掘り起こしたが使う気にならない。
4.Yukon(SQLServer 2005)の動くPCが欲しい。
------------
・・・・動機が弱い気がする。いいのか?買っても。
でも今本当に欲しいのはMiniMac。
というか今年の夏に買おうとしてた。
次回は間違いなくMacだと思ってた。
でもCPU乗り換えのアナウンスがあったから買えなくなった。
さすがにそこまで若くない。
2006年?待てねぇ。
G5にしとけ?やなこった。
Macを買うのにはもう一つ問題がある。
MacOSから離れてるうちにトラックポイント付のキーボードしか
さわれなくなっていた。
というかIBMのキーボードしか受け付けない。
106キーボードに慣れきってしまったのでApple配列は
今となってはきつい。
キーボードの交換が出来ないPowerbookはつかう気にならない。
・・・・・困。
〜〜〜〜〜〜〜〜〜
そろそろ記憶のかなたに薄れつつあるのでメモ。
PC歴。
1988年頃 Mac Plus(MC68000 8MHz RAM:4MByte + 20MByteHDD):
学生時代に買った贅沢機。5年間現役。
プリンタは、ImageWriterと、StyleWriterで運用してた。
1992年頃。19Powerbook165c(RAM:12MByte /HDD:80MByte + Ext.1.3G)
見栄だけで買った。実はPC98+MSDOSが欲しかった。
1993年頃。EPSON PC-386なんとか。(RAM?? /HDD 200MByte+PowerbookのExt.を譲り受け。)
TURBO Pascal6.0+VZEditor専用機。
それ以外のアプリはゲームすら入っていなかった。
PowerBook5300c(RAM:32 /HDD:500? + Ext.1.3G)
このころからMacの割高感に悩むようになる。
AT互換半自作機(Soket? 486-33 RAM32。買って1年で後のP2機に改造された。)
System 7系の出来の悪さにWin95の方がマシに見え乗り換えた。
AT互換自作機(K6 以外は覚えてない):気に入らなかったので3週間で手放した。
AT互換自作機(P2-266x2,RAM 256MByte + HDD:1G よく使い込んだが、手放した。
AT互換自作機(P3-733x2,RAM 1GByte + HDD 18G(boot/RAID-0)+20G(DATA/RAID-1)
一番気合を入れて組んだ。DUAL CPU + RAID + Twin Monitorのへんてこマシン。
CPUファンなしで静かに動いてます。
AT互換自作機(Cel-600 RAM 128MByte HDD 20G(RAID-1)):ファイルサーバ専用機。あまりパーツ機。
AT互換自作機(Cel-1.4 RAM 128MByte HDD 20G):もらい物のパーツを使ったマシン。組んですぐに押し入れ行き。
Thinkpad iSeries 1620(RAM 128 + HDD ?) :キーボードが手に合わなかったので半年くらいしか使ってない。
--------
PCゴミを吐いてしまえたらさぞ部屋の中がすっきりするだろうに。
・・・捨てるか。
------
ごっこ遊びに進展なし。
飽きたわけじゃなくてDB選択に困ってる。
PostgreSQLにしとけという悪魔の囁きがうるさくて仕方ない。
悪くはないが経験がないしうちの会社だとそのスキルが生きてこない。
転職するなら兎も角なんだろうけど。
触発されたからって訳じゃないけどノートPCを買えという囁きがとまらない。
------------
1.Intel Macが欲しい。でも待てない。
2.THINKPADでなきゃ駄目。
3.B5ノートじゃ駄目。i1620は掘り起こしたが使う気にならない。
4.Yukon(SQLServer 2005)の動くPCが欲しい。
------------
・・・・動機が弱い気がする。いいのか?買っても。
でも今本当に欲しいのはMiniMac。
というか今年の夏に買おうとしてた。
次回は間違いなくMacだと思ってた。
でもCPU乗り換えのアナウンスがあったから買えなくなった。
さすがにそこまで若くない。
2006年?待てねぇ。
G5にしとけ?やなこった。
Macを買うのにはもう一つ問題がある。
MacOSから離れてるうちにトラックポイント付のキーボードしか
さわれなくなっていた。
というかIBMのキーボードしか受け付けない。
106キーボードに慣れきってしまったのでApple配列は
今となってはきつい。
キーボードの交換が出来ないPowerbookはつかう気にならない。
・・・・・困。
〜〜〜〜〜〜〜〜〜
そろそろ記憶のかなたに薄れつつあるのでメモ。
PC歴。
1988年頃 Mac Plus(MC68000 8MHz RAM:4MByte + 20MByteHDD):
学生時代に買った贅沢機。5年間現役。
プリンタは、ImageWriterと、StyleWriterで運用してた。
1992年頃。19Powerbook165c(RAM:12MByte /HDD:80MByte + Ext.1.3G)
見栄だけで買った。実はPC98+MSDOSが欲しかった。
1993年頃。EPSON PC-386なんとか。(RAM?? /HDD 200MByte+PowerbookのExt.を譲り受け。)
TURBO Pascal6.0+VZEditor専用機。
それ以外のアプリはゲームすら入っていなかった。
PowerBook5300c(RAM:32 /HDD:500? + Ext.1.3G)
このころからMacの割高感に悩むようになる。
AT互換半自作機(Soket? 486-33 RAM32。買って1年で後のP2機に改造された。)
System 7系の出来の悪さにWin95の方がマシに見え乗り換えた。
AT互換自作機(K6 以外は覚えてない):気に入らなかったので3週間で手放した。
AT互換自作機(P2-266x2,RAM 256MByte + HDD:1G よく使い込んだが、手放した。
AT互換自作機(P3-733x2,RAM 1GByte + HDD 18G(boot/RAID-0)+20G(DATA/RAID-1)
一番気合を入れて組んだ。DUAL CPU + RAID + Twin Monitorのへんてこマシン。
CPUファンなしで静かに動いてます。
AT互換自作機(Cel-600 RAM 128MByte HDD 20G(RAID-1)):ファイルサーバ専用機。あまりパーツ機。
AT互換自作機(Cel-1.4 RAM 128MByte HDD 20G):もらい物のパーツを使ったマシン。組んですぐに押し入れ行き。
Thinkpad iSeries 1620(RAM 128 + HDD ?) :キーボードが手に合わなかったので半年くらいしか使ってない。
--------
PCゴミを吐いてしまえたらさぞ部屋の中がすっきりするだろうに。
・・・捨てるか。
------
ごっこ遊びに進展なし。
飽きたわけじゃなくてDB選択に困ってる。
PostgreSQLにしとけという悪魔の囁きがうるさくて仕方ない。
悪くはないが経験がないしうちの会社だとそのスキルが生きてこない。
転職するなら兎も角なんだろうけど。
無意識下の自分をdrftぎゅおいjふじこ
2005年6月28日 日常DB関係のリンクをたどってくる人がいなくなって途端にアクセス件数減ったw
■業務連絡:PCの見積の件
在庫処分系の見積取ってみましたがあんまり安いのありませんでした。
2371-AFJ 140k
2373-J8J 175k
2373-8YJ 150k
・・・・モバイルじゃないのって値引率すげぇw
■あ!クマーの囁き/Ah! Kuma’s Whisper
↑で、 個人用に2373-8YJが欲しくなってきた。
Mobile Radeon9600と1400x1050の画面ってそれだけなんだけど。
その画面サイズは魅力的。
すげぇ欲しい。欲しい。欲しい。
問題は重量とサイズ。
重さは2.65kgもある。(ちなみに2371-AFJは1.3kg位。倍だ。)
サイズが329x268ってもの致命的。
210 x 310を大幅に超えるって言うのはよろしくない。
いつのまにか、ちっぽけな欲望のためにでかい問題を抱える
羽目になりかけてる事に気づかぬ振りを必死でする自分がいる。
こうして衝動買いに走ると大抵後味の悪い思いをする。
■8Mox
デッキリストまで公開されると思ってなかったですが。
晒されちゃったらなにか次の新しいことを考えなきゃいけません。
次の目標はTwisterを使いまわすデッキ・・・。
--------------------------
[募集]
3 x Time Twister
1 x TimeWalk
--------------------------
「ガッ」が大量に飛んできそうです。
■ごっこ遊び
機能をエンジン、ユーティリティ、アプリケーションに分類中。
急にやる気がなくなってくる自分に気づく。
SQLServerのちっぽけな不都合(つまりスキーマを使えない)が今回は嫌なものに見えてくる。
多分無意識下で「面倒くささをツールのせいにしてる」だけ。
■業務連絡:PCの見積の件
在庫処分系の見積取ってみましたがあんまり安いのありませんでした。
2371-AFJ 140k
2373-J8J 175k
2373-8YJ 150k
・・・・モバイルじゃないのって値引率すげぇw
■あ!クマーの囁き/Ah! Kuma’s Whisper
↑で、 個人用に2373-8YJが欲しくなってきた。
Mobile Radeon9600と1400x1050の画面ってそれだけなんだけど。
その画面サイズは魅力的。
すげぇ欲しい。欲しい。欲しい。
問題は重量とサイズ。
重さは2.65kgもある。(ちなみに2371-AFJは1.3kg位。倍だ。)
サイズが329x268ってもの致命的。
210 x 310を大幅に超えるって言うのはよろしくない。
いつのまにか、ちっぽけな欲望のためにでかい問題を抱える
羽目になりかけてる事に気づかぬ振りを必死でする自分がいる。
こうして衝動買いに走ると大抵後味の悪い思いをする。
■8Mox
デッキリストまで公開されると思ってなかったですが。
晒されちゃったらなにか次の新しいことを考えなきゃいけません。
次の目標はTwisterを使いまわすデッキ・・・。
--------------------------
[募集]
3 x Time Twister
1 x TimeWalk
--------------------------
「ガッ」が大量に飛んできそうです。
■ごっこ遊び
機能をエンジン、ユーティリティ、アプリケーションに分類中。
急にやる気がなくなってくる自分に気づく。
SQLServerのちっぽけな不都合(つまりスキーマを使えない)が今回は嫌なものに見えてくる。
多分無意識下で「面倒くささをツールのせいにしてる」だけ。
スキーマ実装ってほんとまちまちだな。(若干修正-1)
2005年6月29日 コンピュータOracleのところがかなりデムパで無茶苦茶だったので修正。
■運命の逆転/Reversal of Fortune(FD)
いつもいろんな方にこのカードをプレゼントしていただいています。
先日も思いがけない方からこのカードをいただきました。
謝謝!
_
( ゜∀゜)∩
⊂彡
↑実はジョルジュ長岡という名前がついてる以外元ネタとか知りません。
ぶっちゃけよくわかりませんが調べる気にもなりません。
■PostgreSQLのスキーマ実装について勉強してみた。
ついでにDBごとのスキーマ実装についても自分なりに比較。
てんでまちまちやんけ・・・・orz。
---------------------
・SQL Server 2000 : スキーマはサポートされてません。
全てのテーブルやストアドはフラットな空間に作成されます。
(Yukonではスキーマがサポートされますが動作するPCが無いのでわかりません)
スキーマが無いので書くことありません。
・Oracle : スキーマ = ユーザ名 として実装されています。
ユーザを作るとユーザ名のスキーマが自動的に用意されるので
スキーマ名=ユーザ名である限りスキーマを意識して作る必要はありません。
テーブルやストアドはいずれかのスキーマ(ユーザ)に属していて
ユーザ名以外のスキーマが欲しい場合新たにユーザを作ることになります。
ただ、パッケージという機構が用意されているので、ロジックが
フラットな空間に大量に散在するなんてことにはならなさそうです。
・PostgreSQL : 数時間いじってみただけなのでその程度の理解ですが。
Oracleと似たようなもんだろうと思ってましたが、PostgreSQLは
スキーマ = ただの名前空間 として実装されているようです。
ユーザ名とスキーマ名は一致する必要がありません。
また一つのユーザが複数のスキーマを持つことも出来ます。
このためユーザ作成直後にはスキーマは存在しませんしOracleの様に
勝手にスキーマが生成されたりとかもしません。
スキーマを作らずにスキーマ名を指定せずにテーブルを作ると
publicというシステムスキーマにテーブルが作成されます。
自分の名前のスキーマにテーブルを作りたいなら最初に明示的に
スキーマを作成してやる必要があります。
又、PostgreSQLはオブジェクト名の解決の際、検索パスを使用して
オブジェクト名を解決します。
デフォルトのオブジェクト検索パスは
$USER(ユーザ名)スキーマ→PUBLICスキーマ
の順になっています。
(Oracleではログインユーザ名のついたスキーマ内しか検索しません)
このため特定スキーマの中でDROP TABLEしてもpublicスキーマに
同じ名前のテーブルが存在してたりすると、うっかりSELECT文が
通ってしまう可能性もあります。
(publicスキーマへのアクセス権を剥奪すればいいだけだけどな。)
逆にいえばSQLServerのようなフラットなスキーマモデルにもOracleのような
ユーザごとにスキーマが与えられるモデルにも両方化けられるということ。
混在モデルは検索パスを悪用すれば継承関数のオーバーライドみたいな
使い方が・・・いいのか?
--------------------
■他
1.PL/SQLについてAdaに酷似してるな〜と思ってたら本当にそういうつもりだったらしい。
http://ja.wikipedia.org/wiki/PL/SQL
2.OracleのようなパッケージがPostgresには無いということに気づく。
「ないからそういうのがほしけりゃスキーマに格納しろ」とか書いてある。
パッケージが無いのでパッケージ内の変数は定義できない。
・・・・というかOracleのPL/SQLが高機能すぎるだけじゃんw
パッケージごとに内部変数もってたりパッケージの自動初期化が出来たり。
Adaのまがい物を根性と意地で実装したのがOracleで、Oracleの真似を
しようとしたけど制御構文くらいしか真似できてないのがPostgreSQL、そう理解した。
そういやMySQL5.0もOracleモドキのストアドを実装する予定と書いてたな。
MySQLはおそらく一生使わないと思うけど。
■運命の逆転/Reversal of Fortune(FD)
いつもいろんな方にこのカードをプレゼントしていただいています。
先日も思いがけない方からこのカードをいただきました。
謝謝!
_
( ゜∀゜)∩
⊂彡
↑実はジョルジュ長岡という名前がついてる以外元ネタとか知りません。
ぶっちゃけよくわかりませんが調べる気にもなりません。
■PostgreSQLのスキーマ実装について勉強してみた。
ついでにDBごとのスキーマ実装についても自分なりに比較。
てんでまちまちやんけ・・・・orz。
---------------------
・SQL Server 2000 : スキーマはサポートされてません。
全てのテーブルやストアドはフラットな空間に作成されます。
(Yukonではスキーマがサポートされますが動作するPCが無いのでわかりません)
スキーマが無いので書くことありません。
・Oracle : スキーマ = ユーザ名 として実装されています。
ユーザを作るとユーザ名のスキーマが自動的に用意されるので
スキーマ名=ユーザ名である限りスキーマを意識して作る必要はありません。
テーブルやストアドはいずれかのスキーマ(ユーザ)に属していて
ユーザ名以外のスキーマが欲しい場合新たにユーザを作ることになります。
ただ、パッケージという機構が用意されているので、ロジックが
フラットな空間に大量に散在するなんてことにはならなさそうです。
・PostgreSQL : 数時間いじってみただけなのでその程度の理解ですが。
Oracleと似たようなもんだろうと思ってましたが、PostgreSQLは
スキーマ = ただの名前空間 として実装されているようです。
ユーザ名とスキーマ名は一致する必要がありません。
また一つのユーザが複数のスキーマを持つことも出来ます。
このためユーザ作成直後にはスキーマは存在しませんしOracleの様に
勝手にスキーマが生成されたりとかもしません。
スキーマを作らずにスキーマ名を指定せずにテーブルを作ると
publicというシステムスキーマにテーブルが作成されます。
自分の名前のスキーマにテーブルを作りたいなら最初に明示的に
スキーマを作成してやる必要があります。
又、PostgreSQLはオブジェクト名の解決の際、検索パスを使用して
オブジェクト名を解決します。
デフォルトのオブジェクト検索パスは
$USER(ユーザ名)スキーマ→PUBLICスキーマ
の順になっています。
(Oracleではログインユーザ名のついたスキーマ内しか検索しません)
このため特定スキーマの中でDROP TABLEしてもpublicスキーマに
同じ名前のテーブルが存在してたりすると、うっかりSELECT文が
通ってしまう可能性もあります。
(publicスキーマへのアクセス権を剥奪すればいいだけだけどな。)
逆にいえばSQLServerのようなフラットなスキーマモデルにもOracleのような
ユーザごとにスキーマが与えられるモデルにも両方化けられるということ。
混在モデルは検索パスを悪用すれば継承関数のオーバーライドみたいな
使い方が・・・いいのか?
--------------------
■他
1.PL/SQLについてAdaに酷似してるな〜と思ってたら本当にそういうつもりだったらしい。
http://ja.wikipedia.org/wiki/PL/SQL
2.OracleのようなパッケージがPostgresには無いということに気づく。
「ないからそういうのがほしけりゃスキーマに格納しろ」とか書いてある。
パッケージが無いのでパッケージ内の変数は定義できない。
・・・・というかOracleのPL/SQLが高機能すぎるだけじゃんw
パッケージごとに内部変数もってたりパッケージの自動初期化が出来たり。
Adaのまがい物を根性と意地で実装したのがOracleで、Oracleの真似を
しようとしたけど制御構文くらいしか真似できてないのがPostgreSQL、そう理解した。
そういやMySQL5.0もOracleモドキのストアドを実装する予定と書いてたな。
MySQLはおそらく一生使わないと思うけど。