Pulpcode

捕获,搅碎,拼接,吞咽

0%

这里总结c#类型转换的知识

值类型

值类型的类型转换,可以理解为用一个类型A的值去初始化一个类型B的变量。

变宽转换

如果是变宽转换,那么不会有问题。比如32位的int到64位的int,或者是int到float。

变窄转换

如果是变窄转换,那么就可能有问题。(可能会发生溢出)

阅读全文 »

Start

最近工作中要实现一个计算分期价款程序。

比如1000万的总金额,如果分5期付完,那么第一期要占50%(也就是500),其余四期要均分剩余的50%,也就是125万,那么你得到的结果列表应该是[500,125,125,125,125]

但是并没有那么简单。

首先,不仅仅能够从总金直接生成,因为用户可以根据需要修改任意一期,那么其后金额的也要跟着变化。比如上面例子中的数据,如果修改了第二期。将其修改为200,那么余下三期将分摊剩下的300,那么结果列表将变为[500,200,100,100,100]

当然实际情况比这个还要复杂一点,因为要考虑到整除,也就是金额部分不能有小数。那么期数越大,比如11,是很容易不能整除的。

我的第一种做法是将每期的的小数部分保存在一个值中,最后将这个不断累加的值加到最后一期。但是这样算会有误差,(除法带来的误差),而且难以测试。

阅读全文 »

肖申克的救赎

瑞德被释放后,去安迪在逃离前告诉他的那个橡树下找到一盒现金,两个老朋友终于在墨西哥阳光明媚的海滨重逢了。你是否觉得一切都是那么的温馨,励志?

《肖申克的救赎》是我最喜欢的电影之一,而且我还特意读了斯蒂芬金的原著,我印象深刻的是原著中典狱长最后并没有自杀,而是被检察院带走了。而且原著最后也没有描写两人在重逢的画面。据说电影本来也是打算这么拍的,作为一个开放结局,最后多亏看样片的观众非常喜爱重逢的画面,才使得导演保留。

但是我想从另外一种角度去理解肖申克的救赎。

肖申克的救赎

阅读全文 »

前言

其实我早就想写一篇这样的博客了,但我又知道写这样一篇文章只能是“献丑”而已。我是没开发过游戏,更没设计过游戏,我只是把我对Dota的一些思考总结出来而已。
题目叫“如何设计一款Dota类的游戏”,这句话也许太狂了。叫“我对Dota的一些理解”也许更好。

Dota

开发方式

首先dota的开发过程很是像开源软件的开发过程。我的意思不是说dota是开源的,而是说dota是冰蛙在与玩家一次一次的交流中逐渐开发成型的

阅读全文 »

Start

作为一个一开始编写c的程序员,刚接触c#(静态)或者是python(动态)这样”现代化的语言时”,编写代码的时候常常是使用古老的解决方案。这就是没能理解一门语言的表现。所以这篇博客想总结一下,对集合的操作,有哪些古老的做法,而在”现代语言“中又是如何解决的。

说语言不重要,重要的是编程思维,这种说法确实很是扯淡,因为你用什么语言就决定了你的编程思维,如果你没有长时间使用一门语言,去吸取它的精华,那么你根本不会有什么编程思维,也只能用各种语言写C代码

说到数据库我们经常会说“增删改查”。对于集合而言也基本是这些操作。

比如将一个整型数组中大于5的元素过滤出来,我们一直会写这样的代码:

阅读全文 »

想象力与创造力

大多数人一开始都会认为自己很有想法,勤于思考,有创造力。其实大多数人真么没什么想法,更别说是想象力,甚至说是创造力,充其量是想太多。

如果我给一个三四岁的小孩一盒颜料,他肯定会把天空画的五颜六色的,然后又是些生长奇特的树,奇怪的动物,大人们会去鼓励他们说,“恩,这个孩子有想象力”。

但是其实那根本不是想象力或者是什么创造力。只不过那些孩子什么都不懂罢了,你认为他们所谓的”想象力“作品中的场景能跟漫画家(比如宫崎骏)笔下那些看似奇特但美的真实的场景相比吗?

那些漫画家们,能画出那些极具想象力的作品,不仅仅是因为他们有想象力,有想法,更重要的是他们已经把绘画的知识和绘画的基本功磨练的如此透彻。

阅读全文 »

Introduction

之前的两篇博客介绍了c#的委托和设计模式中的观察者模式,这一篇谈谈具体的c#事件。

c#的事件监听器们,要求它们必须匹配于事件所要求的返回类型和参数,这个限制是事件定义的一部分,由一个委托指定:

1
2
3
4
5
public delegate void mmmm(object sender, EventArgs e);

private void xxxx(object sender, EventArgs e)
{
}

sender就是主题类,e就是主题类想要发送给观察者们的数据。

阅读全文 »