SQYBI.com

Change is a part of life, and takes part in finding us who we are.

2010年09月27日
by sqybi
0 comments

我与轻小说

这两天文学少女和笨蛋的新篇纷纷到货,然后被我速度看完。突然想到一个问题,我是怎么开始看轻小说的呢?然后正好发现明天要交的大物作业异常地少,于是花点时间来写一写这些回忆吧。

记得一切的开始,都在V姐给我发的这条消息:

V 12:32:27
去看笨蛋测试召唤兽吧

翻了一下聊天记录才发现,当时这句话被说出来的情景很奇怪啊,明明在讨论其它的事情(什么事情呢?什么事情呢什么事情呢~ V姐你一定还记得吧~)突然就跳出了这么一句。或许也是因为这样,之前一直不喜欢看动漫,甚至除了柯南以外就没看过别的动漫的我,才去看了笨蛋测试召唤兽的动画(小说明一下,小说一般叫“测验”,动画一般叫“测试”,至少我看来是这样……)。当然也有推荐人是V姐的原因啦——不管怎么样,总之是开始看了。然后发现动画很不错,于是第一次萌生了去看原创小说的念头。
之前一直没有看过任何轻小说,于是我看的第一本轻小说就是《笨蛋测验召唤兽》了。这一看就不可收拾,很短的时间内就把1~7加上三册短篇集都看完了。后来才知道,笨蛋其实是《真厉害》排行榜的2010年度第一,也算是开头就恰好赶上一个很棒的小说吧,也就给了我继续看下去的动力。
怎么说呢,笨蛋的最大优点,就在于相当给力的剧情设计。从语言运用到各种伏笔的设计,感觉和我的写作风格有一些相似。每一本都情节跌宕起伏而且不混乱,这大概是笨蛋最吸引人的地方了。而且相当精细的插图风格也很受我的喜爱。

之后,在不断反复看召唤兽的同时(直到今天我还能从第一本一直看到第八本,而且一点不觉得腻,召唤兽写得的确很棒),我也在继续寻找新的轻小说来看。最开始其实还是在找动画的,然后V姐还推荐过一个学生会,但是感觉就没有召唤兽那么好,无论是画风还是剧情(毕竟跟召唤兽比起来比较老了)。后来在skyfire看召唤兽的时候看下面推荐的小说列表有一本《零之使魔》,于是就开始看那本。
零使给我的感觉其实并不是很好,虽然相比一些小说魔幻的剧情安排还算不错了,但是过于拖沓的情节,特别是最后几本严重的商业化,使得零使可以说是虎头蛇尾。零使无论是剧情还是人物塑造都只能说一般,但还好在可看的级别。插图并不是很好,同样是有各种线条的省略,我更喜欢文少的水彩风格——这是后话了。

零使真的很长,看完也花了不少时间。之后似乎就没有继续看小说,而是转而去玩Key的三部曲。这里随便说一下,CLANNAD的确神作,但是AIR和CANON比想象中差了不少,无论是游戏系统还是剧情,甚至再加上动画改编,CLANNAD都明显领先另外两部作品一大截。

好,不跑题,继续说小说的问题。之后一个偶然的机会,接触到了《文学少女》这部小说。应该是暑假的时候吧,人比较闲,不知道干些什么好,CLANNAD和笨蛋的动画看了N遍无聊了,于是想到了开始看一部新的小说。这时忘记是有人推荐的还是在skyfire的推荐列表里看到的了想起来了,是这时恰好读了《“文学少女”登上石像怪与笨蛋的阶梯》这部短篇集,于是得知了文学少女这个名字。
先简单说一下这个短篇集吧。短篇集里收录了不少文章,每篇文章都是文学少女、笨蛋、吉永家的石像怪和学校的阶梯四本轻小说中的某两本合写(乱入?)的。其中收录了这样五篇文章:
《“文学少女”和少女召集的召唤兽》 = 文学少女 + 笨蛋
《“文学少女”和被杀的笨蛋》 = 文学少女 + 笨蛋
《天栗滨的石像怪》 = 石像怪 + 阶梯
《笨蛋,阶梯,召唤兽》 = 笨蛋 + 阶梯
《“文学少女”和狂奔者》 = 文学少女 + 阶梯
当时因为除了笨蛋另外三个都没看过,所以只看了和笨蛋相关的三本。然后恰好笨蛋+文少有两本而且写得都很不错(似乎第一本是野村美月写的,第二本是井上坚二写的?求解),所以注意到了《文学少女》这部作品。

然后,我就开始看《文学少女》了。因为看到这部作品已经完结而且只有八本,刚开始还很高兴。后来才发现,根本不是那么回事——巧妙的剧情设计,紧凑的故事节奏,大赞的故事情节,加上相当适合这部书的水彩(水墨)风格的插图,当时这部作品给我的感觉不差于笨蛋。唯一感觉不好的一点是,很长时间以内我都以为这部作品很黑暗,因为前几部的写作风格真的很黑暗……不过到后面事情的谜底慢慢解开,感觉就好了不少。
可以说,这套小说甚至不应该被算作“轻小说”——不是因为里面引用了许多其它的文学作品,而是因为文少看起来太费脑子了。要记住很多人物关系,记住很多可能是伏笔的细节,再加上每一章都会出现的一段独白或者信件之类的东西(还要一直想这段文字是出自哪个人物的口中,以正确地判断剧情走向),可以说读这本小说比读某些推理小说都头疼得多。
但是,正篇八本书一环扣一环的剧情,让我不得不赞叹作者的心思缜密,甚至超过了召唤兽的设计。并没有花费太多精力在设计世界观上,场景就是日常的生活,但是日常生活中的故事情节也一样能够震撼人心。我想,很长时间之内,都不会有任何轻小说作品能够超过文少了——包括文少的续集。
关于续集的问题,我就不多说了,反正最新的这本《“文学少女”见习生的毕业》让我很失望。商业化果然是文学作品的坟墓啊。当然,各种插画集和短篇集还是很不错的。

之后稍微提一下《魔法禁书目录》《某科学的超电磁炮》。后者算是前者的外传吧,而且后者没有小说只有动画。不过,感觉超电磁炮比魔禁更好,好得不是一点半点。魔禁的设计理念是,有一方科学阵营(超能力),一方魔法阵营(魔法),然后创造科学和魔法的碰撞。思路很不错,但是真正写起来就有问题了——每一个阵营都出现了太多的人,加上一些世界设定上的冲突,虽然有男主这个科学魔法通吃的人从中周旋,文章还是显得过于臃肿和混乱了。以至于到了后面几卷,很多剧情完全看得一头雾水,不知道在说什么。加上作者的行文风格很诡异,直接导致很多剧情之间接不上。这也是魔禁最失败的地方吧。另外一点就是,女主Index的塑造太差了,本来前几卷给了Index的一个性格特点的塑造方向,但后面的剧情中完全没有体现出来,Index的讨人喜欢的一面根本不知道到了哪里去,甚至连前几卷的活跃都没有了。似乎就是打完金色大衍术那个人之后出现的这个问题吧,而且作者似乎已经没有办法控制了。甚至一方通行(Accelerator)和最后之作(Last Order)都快取代当麻和Index的男女主角身份了……这很蛋疼啊。
相比之下,超电磁炮这部科学阵营方面的外传就清爽了许多。加上炮姐的性格塑造很不错,所以感觉身边喜欢炮姐的人比喜欢Index的人多很多——甚至很多人只看过超电磁炮没看过魔禁。或许设置魔法阵营和科学阵营两方面对峙的剧情就是个最大的错误吧,真希望超电磁炮能多写一些,不要光出动画,最好能出点小说啊……

最后《灼眼的夏娜》最近在看,刚刚看完一本,感觉不是很好。剧情和写作都比较无聊。

写着写着没注意就断网了,明天再发吧。最后总结一下。
《笨蛋测验召唤兽》,可以说是搞笑轻松的神作,作为放松相当耐看。连续看上三四次也不会厌烦,我都不知道自己看过多少遍了……
《文学少女》,作为轻小说可能太“重”了一些,但是作为小说绝对相当棒。虽然借用了其它文学作品但是却没有一本掉入其它作品的剧情套路,而是每一本都在原先作品的剧情上增加了新的转折,能做到这点,说明作者的文字驾驭能力不是一般的NB。加上本身就不错的文字和剧情设计还有插图,十分值得一看。
然后《零之使魔》《魔法禁书目录》,比较标准的轻小说,大部分魔幻类的基本上都是这个样子吧。只是可看的程度(甚至魔禁不可看)。
《超电磁炮》,看过魔禁可以看一下,也算是比较轻松的剧情吧。只可惜不是小说。
《“文学少女”登上石像怪与笨蛋的阶梯》,文学少女和笨蛋合写的两篇很棒(特别是被杀的笨蛋那篇),笨蛋和阶梯那篇比较乱,文学少女和阶梯的那篇还可以,而石像怪那个因为阶梯和石像怪我都没看过所以也没有看。

似乎还看过什么别的,但是记不起来了。估计也不是什么太好的小说吧。

之后想看完《灼眼的夏娜》《TIGER × DRAGON》《我的妹妹怎么这么可爱》这几本,慢慢来吧。时间不是很多,基本只能晚上上床之后看,但是又有些影响睡眠。纠结>.<。

好,就这样,睡觉去,明天早晨起床发出来。

2010年09月25日
by sqybi
0 comments

DS大作业的两段代码

 

#include <iostream>

using namespace std;

class OutOfBound {};
class IllegalSize {};

template <class elemType>
class list
{
public:
    virtual void clear() = 0;
    virtual int length() const = 0;
    virtual void insert(int i, const elemType &x) = 0;
    virtual void remove(int i) = 0;
    virtual int search(const elemType &x) const = 0;
    virtual elemType visit(int i) const = 0;
    virtual void traverse() const = 0;
    virtual ~list() {};
};

template <class elemType>
class seqList: public list<elemType>
{
private:
    elemType *data;
    int currentLength;
    int maxSize;

    void doubleSpace();

public:
    seqList(int initSize = 10);
    ~seqList() { delete [] data; }

    void clear() { currentLength = 0; }
    int length() const { return currentLength; }
    void insert(int i, const elemType &x);
    void remove(int i);
    int search(const elemType &x) const;
    elemType visit(int i) const;
    void traverse() const;

    //new part
    seqList operator + (const seqList<elemType> &x);
    seqList operator = (const seqList<elemType> &x);
};

template <class elemType>
seqList<elemType>::seqList(int initSize)
{
    if (initSize <= 0) throw IllegalSize();
    data = new elemType[initSize];
    maxSize = initSize;
    currentLength = 0;
}

template <class elemType>
void seqList<elemType>::doubleSpace()
{

    elemType *tmp = data;
    if (maxSize == 0)
        maxSize *= 2;
    else
        maxSize = 1;
    data = new elemType[maxSize];
    for (int i = 0; i < currentLength; ++i)
        data[i] = tmp[i];
    delete [] tmp;
}

template <class elemType>
void seqList<elemType>::insert(int i, const elemType &x)
{
    if (i < 0 || i > currentLength) throw OutOfBound();
    if (currentLength == maxSize) doubleSpace();
    for (int j = currentLength; j > i; j--)
        data[j] = data[j - 1];
    data[i] = x;
    ++currentLength;
}

template <class elemType>
void seqList<elemType>::remove(int i)
{
    if (i < 0 || i > currentLength - 1) throw OutOfBound();
    for (int j = i; j < currentLength - 1; j++)
        data[j] = data[j + 1];
    --currentLength;
}

template <class elemType>
int seqList<elemType>::search(const elemType &x) const
{
    int i;
    for (i = 0; i < currentLength && data[i] != x; ++i);
    if (i == currentLength)
        return -1;
    else
        return 1;
}

template <class elemType>
elemType seqList<elemType>::visit(int i) const
{
    if (i < 0 || i > currentLength - 1) throw OutOfBound();
    return data[i];
}

template <class elemType>
void seqList<elemType>::traverse() const
{
    for (int i = 0; i < currentLength; ++i)
        cout << data[i] << " ";
    cout << endl;
}

template <class elemType>
seqList<elemType> seqList<elemType>::operator + (const seqList<elemType> &x)
{
    seqList<elemType> temp(currentLength + x.currentLength);
    for (int i = 0; i < currentLength; ++i)
        temp.data[i] = data[i];
    for (int i = 0; i < x.currentLength; ++i)
        temp.data[i + currentLength] = x.data[i];
    temp.currentLength = currentLength + x.currentLength;
    return temp;
}

template <class elemType>
seqList<elemType> seqList<elemType>::operator = (const seqList<elemType> &x)
{
    while (maxSize < x.currentLength) doubleSpace();
    for (int i = 0; i < x.currentLength; ++i) data[i] = x.data[i];
    currentLength = x.currentLength;
    return *this;
}

int main()
{
    seqList<int> a, b, c;
    a.insert(0, 1);
    a.insert(1, 2);
    b.insert(0, 3);
    b.insert(1, 4);
    b.insert(2, 5);
    a.traverse();
    b.traverse();
    c = a + b;
    c.traverse();

    return 0;
}

2010年09月12日
by sqybi
3 Comments

在你耳边哼首歌 2010.9.12 曾经的旋律

这是一个新的文章分类,我会隔一段时间发一次。每次会放几首我最近听得比较多的歌曲。可能是轻音乐,也可能是R&B;可能是blues,也可能是重金属;你可能曾经把某首歌单曲循环了一个月,也可能第一次听它——这都没有关系。希望每个人都能在某一个时间,看到这些文章,放下手里的工作,戴上耳机,深吸一口气,闭上眼,听我在你耳旁哼首歌。
所有放出来的歌都是我认真听过的,而且感觉不错的歌。我不会放上任何一首仅仅是流行但是我还没有听过或者没有认真听过的歌曲。
你可能和我的口味不合,也可能对我的点评不满意(虽然我会尽量少在点评中加入自己的看法而仅仅是如实地介绍歌曲)。欢迎留言与我讨论,或者推荐你喜欢的歌。你可以用audio标签来在评论中插入歌曲,用法如下:[a_udio:你的歌曲地址],请自行去掉下划线。我会认真考虑你的推荐。

这次要推荐的歌曲比较多,有四首:

  1. 乡间的小路(走在乡间的小路上) by 张明敏(卓依婷)
    流行一时的校园音乐,让我们无忧无虑地走在小路上。
  2. 走过咖啡屋 by 千百惠 in 女人别太傻
    新专辑,老歌曲。
  3. 外婆的澎湖湾 by 潘安邦 in 思念总在潘安邦
    两对半的脚印,拄着拐杖的外婆,还有那永远让人感到温暖的澎湖湾。
  4. 蜗牛与黄鹂鸟 by 北京天使合唱团
    不知道出处却大部分人都耳熟能详的歌曲,儿歌般的风格但又脍炙人口。

不难看出,这次我推荐的歌曲都是一些可以称得上是“老歌”的歌。虽然《走过咖啡屋》和《外婆的澎湖湾》两曲所选择的专辑都比较新,但是这两首歌第一次出现的时间也都很老了,至少都比我岁数大:)。但有时候,就是这些经典的歌曲才更值得回味。从hip-pop、重金属和小清新的世界里走出来,看看我们的上一辈都喜欢些什么吧。

Continue Reading →

2010年08月25日
by sqybi
12 Comments

在你耳边哼首歌 2010.08.25

这是一个新的文章分类,我会隔一段时间发一次。每次会放几首我最近听得比较多的歌曲。可能是轻音乐,也可能是R&B;可能是blues,也可能是重金属;你可能曾经把某首歌单曲循环了一个月,也可能第一次听它——这都没有关系。希望每个人都能在某一个时间,看到这些文章,放下手里的工作,戴上耳机,深吸一口气,闭上眼,听我在你耳旁哼首歌。
所有放出来的歌都是我认真听过的,而且感觉不错的歌。我不会放上任何一首仅仅是流行但是我还没有听过或者没有认真听过的歌曲。
你可能和我的口味不合,也可能对我的点评不满意(虽然我会尽量少在点评中加入自己的看法而仅仅是如实地介绍歌曲)。欢迎留言与我讨论,或者推荐你喜欢的歌。你可以用audio标签来在评论中插入歌曲,用法如下:[a_udio:你的歌曲地址],请自行去掉下划线。我会认真考虑你的推荐。

这次的歌曲有这样几首:

  1. 手纸 by 西村由纪江 in Virgin
    淡淡的钢琴曲,淡淡的旋律,淡淡的一封信送给你淡淡的哀愁。
  2. Croatian Rhapsody by Maksim in Piano Player
    在大海的波涛中寻找你要的安静。
  3. See Me Fall by Keren Ann in Lady & Bird
    冷暖交织的“破碎的”阳光。

几首歌有一个共同的特点,就是把两种截然不同的感情毫无破绽地粘结到了一起。听着音乐的旋律和音乐想要表现的内容是两种截然相反的感情,也是一件很有意思的事。

Continue Reading →

2010年08月24日
by sqybi
4 Comments

sqybi的三题故事 之三 作者ddue

三题故事Q&A

什么是三题故事?
三题故事,简而言之,就是由一个人给出三个词语作为题目,而另一个人根据这三个词语写一篇故事。看起来和命题作文很像,但是实际上,它比命题作文灵活得多。你没有必要把题目作为文章的中心,甚至没有必要让题目在文章中起到什么作用(但是sqybi本人还是非常喜欢让题目作为推动文章发展的关键点的),你只需要让题目的词语在文章中出现就可以,这给了你更多的想象空间。
更多关于“三题故事”是什么的问题,请阅读小说《文学少女》。

我怎么参与三题故事?
想要参与到三题故事中吗?非常好!sqybi为你准备了很方便的参与方式。无论你是想出题,还是想自己写故事,我都会满足你的需求!
访问http://sqybi.com/triple/,无论是出题还是提交你的故事,上面都有相应的页面。
当然,如果你选择了某个题目,最好还是提前通知我一声,避免题目被别人选走。

题目:
收集 单挑 黑鸟
来自匿名出题人(其实是qcb111)。

本文作者ddue。中学同学(或者说初中同学,不过对我这种初高中不敏感的人来说没啥区别),还真从来没见他写过东西。
刚跟我们合租了DH空间,不过看起来是不想搭建blog了。那就不给他挂链接了。

关于题目的小知识:

  • 黑鸟
    对于我来说,我会把这个词理解为游戏DotA(Defence of the Ancient)中的一个英雄。但是在文章中,作者将其解释为了“青鸟的一种”。青鸟是象征着幸福和快乐的一种动物,而关于作者对于“黑鸟”的具体解释,请阅读文章。

Continue Reading →