随便聊聊Magic 2014 Duels of the Planeswalker & 我的sealed deck

电子版万智牌既能止痒,又省钱,还不用风吹日晒跑牌店,可喜可贺可喜可贺

2014版已出,剧情最后一关是2头龙打1头龙,Ramaz君虽然有40点的变态血量,但放下exploration狂下几个地以后就没后招了,难度好低……预组deck方面Jace同学明显强到爆表,Chandra同学照例悲剧,这次连1R打3都没了,unlock牌里面竟然有加血法杖……

还是说新版的亮点sealed deck吧,6+3一共9包的现开,默认2次机会,12软妹币加额外一次机会,花了近三位数开了一共10个格子的前牌手的mc应该算有点发言权了,先说说各颜色,然后再看看我的deck吧(竟然就是第一个格子开的最强,真不甘心……)

无色

Brittle Effigy应该是开到必放,别的没有什么特别值得注意的

蓝色

就我最后接触的赞迪卡以来,蓝色势弱几乎已经不可逆转(这次预组Jace是安抚一下蓝色牌手吧,虽然那其实压根不是蓝色,摆明了流氓快攻)看了下我的十个格子,一个蓝色都没有……值得注意的单卡有

  • Phantasmal Dragon 4费55飞,如果抓到3个的话可以考虑入蓝吧
  • Redirect 限制里面redirect一发去除什么的可能扭转战局,如果还有若干Essence Scatter或者闪现怪之类的让你值得竖着地耐心地等,那可以考虑入蓝
  • Fog Bank 很结实的阻挡者,可惜太少开到了

红色

红色明显感觉兽的质量一般,1R烧3缺席,龙和凤凰都不错

白色

白色这次比较全面,有一些不错的去除和trick,但超过2攻的银铁竟然只有撒拉天使(还很难开到)

  • Angelic Destiny 可以单独为其入白的变态炸弹,没抓到过
  • Archangel of Thune 另一个变态炸弹,没抓到过
  • Aegis Angel 这只天使到常见的多,强度也还不错
  • Spirit Mantle 反生物保护=不可被阻挡,阻挡不受伤,和死触警戒系命等都很搭,还能躲过绿色的那些战斗去除
  • Roc Egg 很强的早期阻挡者,开到不多
  • Stave Off 除了躲去除,加穿透之外,别忘了还能给对手的怪加反色保护来消结界或者反击变巨术之类的玩意儿,很不错

黑色

本次第二强的颜色,比绿色只有铁牌的质量略逊一筹,这里直接评全牌表了

  • Tormented Soul 一费的不能被阻挡,放多了攻防会有问题,但少放一两个如果早期抓到就赚大了,中期也不亏
  • Ravenous Rats 大家都熟悉的贪吃老鼠,填充曲线用,牺牲用
  • Giant Scorpion 蝎子,由于没有1R烧3,烧3需要2R法术,黑色也没有减三屁股,所以3防在本作里已经前期无忧,入黑的话基本抓到多少放多少
  • Bloodhunter Bat 曲线生物,吮来的血正好拿来签字,皆大欢喜
  • Rotting Legion 曲线生物,身材合理
  • Minotaur Abomination 曲线生物,攻击有点遗憾,和楼上角色重复了喂
  • Taste of Blood 黑色里罕见的垃圾牌
  • Distress 苦痛这类牌在限制里地位比较微妙,放多了占位置,后期无用,放少了前期抓不到,后期本来一般手里也没啥好货
  • Sign in Blood 人见人爱的血书,蓝色撞墙去吧
  • Assassinate 谋杀不够用或者只是混少量黑的话拿这个凑合用
  • Murder 居家旅行
  • Mark of the Vampire 有点笨重,但打中一拳不亏,打中两拳就赚了
  • Black Knight 少侠好身手
  • Vampire Nighthawk 夜盗这种构筑都放满的变态……
  • Gravedigger 不起眼但我基本会把抽到的全都放满
  • Cower in Fear 没位置是最大的问题,贵几费弄个结界定下来的话或许还有位置
  • Diabolic Tutor 没位置
  • Rise from the Grave 多一费在限制里问题不大,可以挖墙角有时感觉真是帅呆了
  • Sengir Vampire 不错的曲线生物,虽然没trick的时候很难放上指示物
  • Public Execution 大号trick,扭转天王山之战
  • Hypnotic Specter 老同志催幽
  • Nightmare 黑色最弱的金牌了,但也能用
  • Rune-Scarred Demon 紧急的时候可以找解,一般都是找掘墓魔或者坟场复生哼哼哼哈哈哈
  • Grave Titan 黑泰坦可能是限制里最强的泰坦
  • Xathrid Demon 没抓到过,看上去逆风向的时候有点太拼了,万一被和平主义了就亏大了
  • Diabolic Revelation 对限制来说,比就抓一张的恶魔导师稍好一些?还是觉得没位置

绿色

黑色这次很容易抓的很强,而绿色这次是很难抓的很弱

  • Deadly Recluse 2/1的荆林箭手在构筑里大展身手,1/2略差一些,但真的无法要求更多了,屁股比蝎子小一点但能挡各种飞机,比蝎子低一费,虽然都是放满但我觉得还是蜘蛛更强一点
  • Predatory Sliver 抓到很多这货和先攻/警戒的裂片妖的话还可以,嘛,最差也是灰棕熊了
  • Brindle Boar 阻挡,牺牲,理解成3费加了七点左右血?一般
  • Advocate of the Beast 变态铁牌,本身是不错的曲线生物,配合任何一个beast变身炸弹,炸弹铁牌……注意红色那边的5/3也是beast,还和这货有配合不必须进攻了
  • Rumbling Baloth 4费44,强大的身板,有了楼上还能每回合变大一次
  • Yavimaya Wurm 屁股有点小
  • Fog 这个是用来对抗绿色自己的那些膨胀的
  • Giant Growth 最经典trick没有之一
  • Plummet 问题是对手有没有飞机可以给你打
  • Rampant Growth 提速,压缩牌库,徒长,我们一直在用
  • Oakenform 朴实无华
  • Hunt the Weak 太棒了,绿色竟然有这么漂亮的一张去除,限制里绝对够用了
  • Mwonvuli Beast Tracker 帮我们找到各类蜘蛛,蝎子,亚龙,有空间的话来一发
  • Briarpack Alpha 虽然远远不如以前的Briarhorn,但限制里首先肯定不需要前辈的evoke,+2/+2也足够trick过很多情况了,还是一张非常强的牌,抓到多少放多少
  • Prized Unicorn 如果能想办法保住它的小命,比如Safe passage或者充足的膨胀,还是很值的,不然就只有一发的命
  • Acidic Slime 开到的不多,但明显也是开到多少放多少的
  • Garruk’s Packleader 注意他不是图上的贾路大叔而是旁边的那个beast,所以和Advocate of the Beast关系也是杠杠的
  • Duskdale Wurm 身材过硬,好评
  • Windstorm 比plummet更值得放一点,而已
  • Enlarge 实在太强了,橡树之力哭了……
  • Protean Hydra 有trick或者Hunt the Weak,成功长大一次,后面就好办了,记住由于伤害替代效应,不怕死触
  • Dungrove Elder 一般般,不能飞不践踏有点遗憾,但因为辟邪的,所以基本可以放心上强化
  • Silklash Spider 屁股很性感,没警戒不幸福
  • Might of Oaks 我更愿意用enlarge,但橡树之力偶尔可以拿来trick一下让1/1挡死7/7的山脉巨人之类的?
  • Overwhelming Stampede 变态炸弹
  • Primordial Hydra 变态炸弹
  • Gaea’s Revenge 垃圾秘稀果然很容易抓到……践踏都没有还不能装穿透,真的能偷袭到么……

最后是我第一个格子里的牌组,应该也是目前我的十个牌池里最强的一组了

Runed Demon

兽 (15)
Black Knight
Deadly Recluse
Giant Scorpion
Hypnotic Specter
Bloodhunter Bat
Gravedigger
Briarpack Alpha
Acidic Slime
Rune-Scarred Demon

其他 (7)
Assassinate
Murder
Sign in Blood
Mark of the Vampire
Rise from the Grave
Hunt the Weak
Might of Oaks

法术力源 (19)
Terramorphic Expanse
Rampant Growth
Swamps
Forrests

因为恶魔要7费,所以配置了41牌17地2徒长,早期蝎子蜘蛛拖时间,运气好的话催幽能打到几下,中期用Briarpack Alpha和不算太好的去除来稳住战局,最后摸到恶魔以后开始变态地恶魔找恶魔,恶魔找挖坟,挖恶魔找挖坟……一般来说两个恶魔&一次挖坟可以让大多数对手崩溃了

Permanent link to this article: http://mcfog.com/p875/%e9%9a%8f%e4%be%bf%e8%81%8a%e8%81%8amagic-2014-duels-of-the-planeswalker-%e6%88%91%e7%9a%84sealed-deck.fog

最近,新地址,以及再见GR

时光飞逝,上次更新已经超过一年,现在已经是接近毕业一年,工作两年,和学生党没有半毛关系的社会死宅了。工作如预料一般地开心,虽然部门在业务方面表现乏力,但作为工程师,自问给了业务自己能力范围内最大的支持,无怨无悔。

发现把技术类的和非技术类的文章混在一起非常不合理,最近又特别想写技术类的文章,于是开通了Github Pages 折腾了octopress(还顺手修了个bug)后,发现基于node的hexo,果断换之……闲话打住,传送门 http://mcfog.github.io/

趁GR还有最后一口气的时候这么更新一把,我们feedly或者鲜果或者别的地方再见

Permanent link to this article: http://mcfog.com/p862/%e6%9c%80%e8%bf%91%ef%bc%8c%e6%96%b0%e5%9c%b0%e5%9d%80%ef%bc%8c%e4%bb%a5%e5%8f%8a%e5%86%8d%e8%a7%81gr.fog

It’s mcfog’s Note!

Permanent link to this article: http://mcfog.com/p866/its-mcfogs-note.fog

兵贵神速-domReady事件原理及相应jQuery源码分析

突然发现,其实本来自以为非常熟悉的一些技术,一旦被人提问以后就会发现自己并不能很好地说明清楚,所以开始认真地写一些非常基础的技术分享,不断查资料探究原理的过程还是非常有趣的

2009090812124856310.jpg

之前被问domReady事件到底是啥,比onload到底好在哪里,一句话说的话就是 DomTree加载完成之后,不等图片加载完domReady就会发生,这时绝大多数JS已经可以正常地运行了(因为页面上初始的dom元素都齐了)。但要说清楚这个domReady的来龙去脉,还真没那么简单。

W3C标准页面加载过程

W3C中关于浏览器加载过程的时间信息的接口标准中有很多页面加载方面的标准,简单地说在chrome里检查performance.timing就可以看见各个事件发生的时间戳
無名の QQ スクリーンショット.png
W3C的这张图很好地描述了浏览器加载页面的整个过程,除了domLoading(开始解析dom树)可能会抢先在responseEnd(网络接受应答完毕)之前发生之外,基本是从左到右时间顺序发生

这里我们关注processing以及之后的部分,我尝试解释一下各个事件的含义

  • domLoading 浏览器拿到了一些HTML代码,开始解析dom树
    • 设置document.readyState为”loading”(也就触发了readyStateChange)
    • 注意引用的外部script会阻塞dom树解析
    • 解析过程比较复杂这里不多涉及,可以参考W3C的Parsing部分的标准
  • domInteractive 浏览器初步解析完dom树,但并不稳定,仍残余一些工作,W3C的相关标准链接
    • 设置document.readyState为”interactive”
    • 清空打开标签堆栈,也就是强制关闭仍未闭合的标签
    • 写在html中的script元素,含defer属性且不含async属性的会在这个时机被执行
    • 此时才会触发domContentLoaded事件
  • domContentLoaded其实就是俗称的domReady事件,此时dom树已经稳定
    • aync属性的script元素在这个时机被执行
    • 满足另一种条件的script元素也是这个时机被执行,我没能看懂,估计是来自于document.createElement创建出来的某种情况
  • domComplete 需要加载的资源(包括图片、iFrame等等等等)以及脚本全部执行完毕
    • 设置document.readyState为”complete”
    • 这个事件和load事件的区别是load事件必须要有Browsing Context才会被触发,但时机是一样的
  • loadEventStart load事件被触发
  • loadEventEnd load事件执行完毕

domReady的现实

一般来说我们希望页面上的脚本尽量快速地被执行,但很多情景下都需要完整可操作的dom树才能保证脚本执行正确,尤其是IE6在interactive以及之前的阶段,如果用JS操作了dom树会直接“无法打开站点”。

问题是绝大多数情况下,图片(或者swf等)都不是JS脚本需要的资源,也就是说我们要找的时间点是dom树完整之后,图片加载之前的一个地方来执行我们的脚本,也就是所谓的domReady。对于主流标准浏览器来说,domContentLoaded正是我们需要的domReady,但很不幸我们生活在有IE的世界里,所以需要为IE找一个替代品(doScroll checking)

jQuery相关源码解析

这里看的是jQuery1.7.2的代码,相关部分在core.js里面

jQuery里domReady的绑定代码是jQuery(callback)或者jQuery(document).ready(callback),最终都落到了jQuery.fn.ready上,readyList维护注册在ready时间上的callback集合,jQuery.ready是jQuery希望绑定在domReady上的callback,里面会执行所有通过各种手段绑定上ready的callback,于是我们主要看jQuery.bindReady

  1. 处理了被调用时已经load事件都发生过的情况(L430)
  2. 对标准浏览器,用domContentLoaded事件并同时也绑上load事件作为fallback来支持早期版本 (L437)
  3. 对IE,首先绑定了readystatechange的complete的情况,以及load事件,然后尝试使用doScrollCheck来更早地触发ready事件(L445)

domReady的问题

domReady虽然通常比load快不少,但此时并不能保证外部资源全部load到,所以需要读img/包含img的元素的尺寸时不能直接在domReady里面跑,flash及类似的外部资源也有类似的问题


参考:DOM Ready 详解

Permanent link to this article: http://mcfog.com/p848/%e5%85%b5%e8%b4%b5%e7%a5%9e%e9%80%9f-domready%e4%ba%8b%e4%bb%b6%e5%8e%9f%e7%90%86%e5%8f%8a%e7%9b%b8%e5%ba%94jquery%e6%ba%90%e7%a0%81%e5%88%86%e6%9e%90.fog

Nite.PointDenoiser的正确用法

摘要

在OpenNI/Kinect框架开发中,如何正确地使用Nite.PointDenoiser (XnVPointDenoiser) 来对手势进行平滑、降噪处理

问题

嗯,最近调教Kinect做手势识别,上OpenNI/Nite框架。
追踪手部用Nite.SessionManager很轻松就能弄出样子来,但是用带除噪的Nite.PointDenoiser代替Nite.PointControl却无效,坐标依旧不停地颤动。

原因

在GoogleGroups里找到了一些有关的讨论,简单地说就是根据API手册,相关的事件如OnPrimaryPointUpdatePointDenoiser类中压根没有重载,

翻API手册,可以找到一张难看的类图
PointDenoiser类图
作为一个PointFilter的子类,PointDenoiser是有信息输入(订阅者)MessageListener 和信息输出(发布者)MessageGenerator两者的特性的,在XnVPointDenoiser Member List页面可以很清楚地看到PrimaryPointUpdate等事件都是属于PointControl也就是MessageListener继承而来的,所以这些事件中的信息必然是和输入的信息一模一样不可能被降噪,要获取降噪后的结果,我们需要的是MessageGenerator下的方法,也就是PointDenoiser::AddListener

解决

最简单的方法就是把PointControl的实例传给PointDenoiser::AddListener,然后监听PointControl的相关事件,大致代码如下

?View Code CSHARP
1
2
3
4
5
6
7
8
ScriptNode scrNode;
SessionManager session = Context.CreateFromXmlFile("./path/to/config.xml", out scrNode);
PointControl pointControl = new PointControl();
PointDenoiser pointDenoiser = new PointDenoiser();
 
session.AddListener(pointDenoiser);
pointDenoiser.AddListener(pointControl);
pointControl.PrimaryPointUpdate += new EventHandler<HandEventArgs>(pointControl_PrimaryPointUpdate);

最后贴个完整的类,转发了PointDenoiser的三个配置属性,另外在当中插入了一个broadcaster预留给子类一个访问和控制的接口

?View Code CSHARP
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
using System;
using NITE;
 
namespace GGI.Model
{
    class PointDenoiseControl:PointControl
    {
        public PointDenoiseControl(SessionManager _session)
            : base()
        {
            session = _session;
            broadcaster = new Broadcaster();
            broadcaster.AddListener(this);
 
            pointDenoiser = new PointDenoiser();
            session.AddListener(pointDenoiser);
            pointDenoiser.AddListener(broadcaster);
        }
 
        protected Broadcaster broadcaster;
        protected SessionManager session;
        protected PointDenoiser pointDenoiser;
 
        public float DistanceThreshold
        {
            get
            { return pointDenoiser.DistanceThreshold; }
            set
            { pointDenoiser.DistanceThreshold = value; }
        }
        public float CloseRatio
        {
            get
            { return pointDenoiser.CloseRatio; }
            set
            { pointDenoiser.CloseRatio = value; }
        }
        public float FarRation
        {
            get
            { return pointDenoiser.FarRatio; }
            set
            { pointDenoiser.FarRatio = value; }
        }
    }
}

PS: 还是MarkDown爽,怎么就没早点想起来装个MarkDown的WP插件呢= =

Permanent link to this article: http://mcfog.com/p787/nite-pointdenoiser%e7%9a%84%e6%ad%a3%e7%a1%ae%e7%94%a8%e6%b3%95.fog

流水账

一不小心又是一年多没有写这个分类了,随便翻翻前面,按短的算我入宅都有3年了……这个分类最早从高考前的月经贴开始,而我现在已经在开始头疼能不能正常毕业了……

不知道是不是一边上学一边实习的缘故,总觉得最近的状态没有暑假的时候的好了,工作方面开始出现一些差错和不足了,在公司抽不出时间来看新番了,自信心似乎也没以前那么强了

学校这边还要还挂科的债,而且大四这帮课竟然充满了PJ,实在是没有天理(顺带一提这周一我翘了一个PJ的检查,昨天下午去找了助教演示那个残缺的PJ被鄙视了,今天上午还要再去)

找工作方面,我越来越佩服那些玩海投战术的同志了……我就投了俩,其中支付宝还渺无音讯呢,都觉得焦头烂额了……不过我还是坚持自己的做法,投的少&准,希望这周末的面试能果断拿下一个offer先吧……

PS,我发现这个分类其实可以改名叫黑历史了……
PS2,准备尝试实施GTD了……

Permanent link to this article: http://mcfog.com/p781/%e6%b5%81%e6%b0%b4%e8%b4%a6.fog

Pages: 1 2 3 4 5 6 7 8 ... 20 21 22 >>

旧文章 «