摘要: 生命游戏的介绍在这里: http://zh.wikipedia.org/wiki/%E7%94%9F%E5%91%BD%E6%B8%B8%E6%88%8F最早在<Hackers>上面看到这个, 有点印象. 看wikipedia上的介绍也很简单, 三条规则:对于平面上的任意点:1. 四周(周围8个点)有2个生命时, 该点状态(有/无生命)不变.2. 四周有3个生命时, 该点有生命.3. 其他情况, 该点无生命.用c实现了. 用一个row * column的全局数组作为table(考虑到生命的无中生有, 暂时想不出来其他结构), 用系统timer更新, ncurses.h绘图. 1 / 阅读全文
posted @ 2012-11-16 20:40 leaforestd 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 拿到这本书, 第一题就挺有意思: 让CPU曲线走一个正弦曲线.注意到 1. 一个死循环会使得CPU占满 2. 不开其他东西时, CPU跑的是shell+后台一些东向, 占用是比较低的(10%-20%)那么, 程序需要的就是在这两种状态之间找到平衡. 我们可以让程序主体跑死循环, 在之前设定一个定时器(setitimer()), 定时把程序sleep掉, 就会达到需要的占用率.之后看书上的解法, 他没用定时器, 用的一个叫GetTickCount()的win下api. 道理是一样的.另外, 他是在之前就把正弦曲线的各个采样点数据存在一个数组里, 我之前是需要每次sleep时去计算. 这个他的更好 阅读全文
posted @ 2012-11-12 22:17 leaforestd 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 现在除了统计总时间外, 还能记录用vim写的总行数了~在这里code: 1 "========================================================================= 2 " 3 " FileName: vtimer.vim 4 " Describle: recording total time spent on vim, and lines you write via vim 5 " Commands: :Showtime 6 " show total time on vim 阅读全文
posted @ 2012-07-21 10:48 leaforestd 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 看完了csapp的第三章, 这几天在做书中提到的2进制炸弹的实验.这个bomb.tar在csapp的官网上要注册教师才能下载- -|, 只好在别处搜集了一个来玩. 有多个版本, 但各版本之间编号相同的bomb原理都差不多.目前在解第5个bomb, 共有6个bomb和1个隐藏的bomb, 6个都解完了发一篇上来. 解的时候工具是gdb和objdump.objdump: objdump -D bomb > bomb_dumpgdb: gdb ./bomb (gdb) b *0x08048d52 <-在0x08048d52设置断点(注意前面要有'*') (gdb) r & 阅读全文
posted @ 2012-06-30 14:09 leaforestd 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 解决了上一篇所说的问题, 上传到了vim.org: 这里code: 1 "========================================================================= 2 " 3 " FileName: vtimer.vim 4 " Describle: automatic timer to measure time spent with vim 5 " Commands: :Showtime 6 " show total time used 7 " :Rese... 阅读全文
posted @ 2012-05-12 08:04 leaforestd 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 之前看了 这篇文章 里面提到了 "勇敢地编程10000小时",也对 10000小时天才理论 挺感兴趣, 自己准备这么做.so, 如何实现呢? 第一点就是, 如何测量这个时间呢?这时候, 一个统一的编辑器的优势就体现出来了, 就记录在花在这上面的时间不就行了嘛.特别是, 这里 还有其脚本语言的介绍~5月1号开始了解vimscript语言, 走走停停弄了一周(好慢..), 这个语言的number, string和list纠结了好一会, 而且不给错误信息非常蛋疼. 今晚终于弄好了..命令: Showtime: 显示总共用在vim上的时间: 小时 分 秒 Resettime: 总时 阅读全文
posted @ 2012-05-10 22:11 leaforestd 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 修复了前一篇的bug, 可以算是完整版.没有设立game over的条件(容易, 但不想做这个), 实现了自己咬断自己的功能~上代码~ 1 #include <stdlib.h> 2 #include <curses.h> 3 #include <signal.h> 4 #include <sys/time.h> 5 6 #define WIDTH 70 7 #define LENGTH 30 8 #define MSEC 200 /* mseconds to refresh screen */ 9 10 typedef struct food 阅读全文
posted @ 2012-04-29 10:55 leaforestd 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 说过想做一个终端中的贪食蛇, 想法出来的时候看了一点, 写了100行左右, 上周基本没动. 这两天又拿来写, 能跑, 但有以下问题:1) 刷新food时经常会出现food在(0, 0)处的情况, 此时food不能被吃掉.2) 改变define的WIDTH或LENGTH可能会出现snack不能动.3) 蛇可以反方向行走.暂时解决不了, 解决了再发上来. ->解决bug后的完整版本在这里:http://www.cnblogs.com/leaforestd/archive/2012/04/29/2476011.html注: 结构参考了: http://blog.sina.com.cn/s/bl 阅读全文
posted @ 2012-04-23 20:00 leaforestd 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 最近在看<expert c programming>, 看到了一些能实时响应输入的函数. 想自己做一个终端下的贪食蛇出来.发现得用到<curses.h>库. 先熟悉一下: )1.我的fedora-16下gcc找不到curses.h:yum install kernel-develyum install ncurses-devel.i686 注意编译时用 gcc -lcurses test.c2.这里: http://pubs.opengroup.org/onlinepubs/007908799/xcurses/curses.h.html 能查到库里面的函数. 1 #in 阅读全文
posted @ 2012-04-12 16:00 leaforestd 阅读(593) 评论(0) 推荐(0) 编辑