博文
[置顶] Windows 版贪吃蛇(2007-12-07 16:57:00)
摘要:
Windows 版贪吃蛇
--我的第一个windows 程序
一:游戏共六个界面,默认界面如下:
二:游戏简介
1)该游戏界面共提供了六个,您可以自己修改界面。
2)游戏在老版贪吃蛇有了更新,提供了各种不同的果实,不同果实有
不同的作用,详情请看“帮助”菜单里的“游戏规则”,或者在游戏
区点击右键,选择“游戏规则”。
3)为了提高趣味兴,游戏设置了七个级别,每升一级,改变蛇的颜色
并自动切换下一个界面。
三:游戏的实现方法
该游戏虽然是用 C++写的,但并没有用MFC,只是调用了一些API函数
其中蛇的移动,以及果实的随机产生,均使用定时器,另外蛇的喷火
功能也是用定时器实现的,本来是用多线程,但是多线程就是在优先
级最低的情况下运行也超快,如果要用空循环来延时倒不如定时器来
的简洁。
游戏主要参考了skyblue 的 <<Visual C++经典游戏程序设计>>
但是却又有本质上的不同,主要不同如下:
1)类的封装方法,skyblue 的程序设计了两个类,我的设计了三个
(snake,fruit,interface),skyblue 的全局变量太多,而我只设计
了一个 interface 类的全局对象
2)从 bitmap 文件里提取资源,在 skyblue 里的实现非常机械,而我
用一个枚举简洁的实现,并且在位图内容布局改变的情况下,只需
&n......
[置顶] 鼠标键盘监控{汇编代码,初学者}(2007-10-05 13:37:00)
摘要:;----------------------------------------------------------------------------------
; 鼠标, 键盘和显示设备的汇编语言操作
;
; 在DOS系统或者命令行中运行 (在 win 下双击即可运行)
; 运行时跟踪鼠标的移动位置,捕获鼠标和键盘的击键情况
; (*)当按下 [ESC] 键时程序退出,其它键,蜂鸣
; (*)按下鼠标右键恢复初始显示方式,并发声
; (*)按下鼠标左键仅产生噪音
; (*)按下键盘上的 F1-F10 切换到不同的显示方式 .
;
; 编译器: [MASM] [ 欢迎到群里下载:28011342 ]
; (c) by 江南孤峰 Time: 2007--10--3 version: 1.0
; **************************************************************************
; **** 没有复杂的汇编语法,适合初学者完赏, 目前尚不完善,更新中……
; **************************************************************************
;----------------------------------------------------------------------------------
.model small
;----------------------------------------------------------------------------------
.data
msgWin db 'Mouse or Keyboard message show as follow: $'
msgHlpStar db ' ================= I......
[置顶] 俄罗斯方块[C/字符模式](2007-05-17 10:16:00)
摘要:/********************************************************************************\
很久之前就想写“俄罗斯方块”了,现在终于写成了,呵呵 …… !本来在学 MFC
准备搞 Windows 编程离开DOS黑黑的界面,觉得还欠点什么没写,原来以前就打算要写
“俄罗斯方块”一直没写,于是学了点 MFC 就又钻进了DOS黑界面 …… 现在正值软考
前夕,哎,软考是没希望了,英语又差得要死,这些烦恼只有在沉醉于Make Code 时才
能彻底忘掉 ……
算法不是很好,处理按键不是很敏捷,于是编写对战程序的雄心在没有好算法之前
只好先打消了。放在这里希望初学者能有所收获 !
操作说明:回车键: 开始/暂停
向上的方向键: 方块变形
向下的的方向键: 快速下落
向左/向右的方向键:向左/右移动方块
编译环境: TC3
要求显示器能提供:&......
[置顶] 下拉式菜单程序(C)(2007-03-22 11:21:00)
摘要:/*
* 很久没在TC下写过程序了,本以为一个下拉菜单不出三小时就可以OK谁知道从昨天上午
* 开始到今天上午才完成。当然这里学到了些东西,以前没用过函数指针,现在这个下拉
* 菜单的菜单处理函数都用到了函数指针,调用时是直接通过函数指针,这简化了程序的
* 编写但实际上是不能那样的不同的菜单项应该有不同的处理函数,不过作为学习还是可
* 以的;以前没搞过远堆的内存,这次本来想用远堆来保存屏幕状态,但老是出错,最后
* 还是搞了个全局变量。
* 程序从 main()开始首先初始化界面,然后由用户选择菜单以调用不同的函数,最后通
* 过 ESC 键或者选择 EXIT 菜单退出。整个操作只有 ESC,回车键 和 方向键 有效。本来
* 还想设置菜单的快捷键,以及设计一些 3D 效果,考虑到初学者的接收能力和程序的复杂
* 度,最后还是从简了。
* 记得开始学 C 的时候自己就很想编个下拉菜单,那时候无从下手,对下拉菜单感到很神秘
* 嘿嘿,其实没什么,就是下面这样的。写了详细的注释供初学者参考,学了差不多两年了
* 还是改不掉写代码的坏习惯,变量名没有见名知义,神秘数字从天而降 ……
* 不知道大家是怎么写代码的,我一写就停不下来,一搞就是好几个小时,肚子饿得咕
* 咕叫,下楼都没劲,整个人就像散了架。埃,难怪说程序员做不了几年,希望自己不在那样
* 希望天下程序员身体健康 .
* ----- 江南孤峰 ------
* &nbs......
[置顶] 嵌入式 SQL C语言编程(2007-03-20 21:58:00)
摘要:上学期我们学了数据库,课程设计我是用ESQL/C写的,因为当时只学了C语言
其它的语言都没入门,所以只好用C写了,我写的是模拟QQ管理好友的程序由
于那时候刚好要期末考试,没时间有很多功能就没写了,现在要学C++/STL/MFC
又要软考,四级还得过,没时间做了,放到网上大家如果谁想了解这方面的有关
知识可以下载,那时我也是摸黑搞的,网上这方面的资料很少,我就靠SQL2000的手册。屋漏偏逢连夜雨,手册上全是英文,傻了我半天,幸好有金山词霸。有时候一个小错误我得发几个小时去摸索,现在可能也不大记得了,功夫不负有心了,最后终于出了个半成品,呵呵 …… 因为文件大了我只好分开了几个压缩文件。
我开了个Q群(28011342)大家可以去下载完整的资料 (数据库课程设计.rar)
环境架设下载 源代码下载 设计文档下载
部分代码:
///////////////////////////////////////////////////////////////////////////////
//
// 文 件: esql.sqc
// 嵌入式 SQL/C 程序 ,QQ 模拟器,数据库操作源码文件
//
// 函 数: main(),CheckMessage(),DatabaseError()
//
// The SQLERRD3 array indicates the number of rows affected
// 作 者: Deng Lanzhong
// 联 系:Email: lingdlz@163.com QQ: 403324669
// 时 间: 2006--12--30
//
////////////////////////////////////////////////////////////////////////////......
[置顶] 个人资料(2007-03-20 20:03:00)
摘要:
网名:江南孤峰
性别:男
生日:1984-9-18
出生地:湖南,永州
血型:O
身高:170cm
体重:50Kg--54Kg
QQ:403324669
Email: lingdlz@163.com
爱好:编程,看电影,看小说,听音乐,下棋
弱点:1)做事情常常半途而费,没有恒心
2)明知道错误的事,却傻子一样心甘情愿的陷进去
3)自制力不够强
4)致命:性格偏柔弱
优点:1)常常思考
2)有上进心
。。。。。 人生箴言 。。。。。
你不必把你的青春花在向别人解释你所做的事情或为自己的行为
辩护上,如果你喜欢做某件事,而这事不会伤害他人,那就完全
没问题了--尽管去做 !
人生不能重来,把握住现在,在现在的时刻做有意义的事,把现
在生活的充实,那么人生即使没有美好的结局,也不会留下遗憾
……
牙根咬住,嘴唇紧闭
沉着着,沉敛一股憎恶的力量
锤炼,锤炼 ……
在那一连串苦斗的日子里
读能明达耕能富
成自谦虚败自骄
平心尝世味 心悬明镜里
含笑看人生 眼放碧天中
......
[置顶] 字符模式下的贪吃蛇(2007-03-20 11:52:00)
摘要: 贪吃蛇
编译环境: TC3
要求显示器能提供: 彩色 43/50 线文本模式 否则程序将退出。
功 能:有计时,升级功能,可以完家控制蛇,也可以让电脑控制蛇
完家边欣赏边喝咖啡,可以暂停,可以立即退出 。
请用记事本编辑源程序
说 明 :这个程序是上学期写的,现在看来很多缺陷
但是不想改了,这是个文本模式下的小游戏
本来想在图形模式下搞,但是在TC3下就是进
不了图形模式,偶尔进了一次,但硬盘搞挂后
又不知道怎么进了,幸亏把编译好的结果存到
了磁盘上。点击:下载完整代码snake.rar
部分代码:
/**************************************************\
编译环境: TC3 (我还没找到其它可以的)
要求显示器能提供: 彩色 43......
软件界的传奇—Anders Hejlsberg(2008-07-09 11:00:00)
摘要:软件界的传奇—Anders Hejlsberg
Anders虽然没有显赫的学历,无法获得Turning Awards。但Anders的实力和贡献绝不输于任何一位Turning Awards获得者。
对于成千上万的使用Borland Turbo Pascal和Delphi进行编程的软件开发者来说,Anders Hejlsberg,这位丹麦的软件大师让他
们肃然起敬,是他创制了上述两个备受欢迎的软件开发工具。
作为Turbo Pascal、VisualJ++、Delphi、C#的缔造者,.NET的领军人物,Borland的创始人之一,Microsoft的灵魂人物,Anders
在一定程度上影响着全球软件业的发展。
英雄落难
Anders首次跃上软件业界舞台是源于他在80年代早期为MS-DOS和CP/M写的一个Pascal编译器。不久一个叫做Borland的年轻公司雇
佣了他并且买下了他的编译器,从那以后这个编译器就作为Turbo Pascal在市场上推广。
在Borland,Anders继续开发Turbo Pacal并且在后来领导一个团队设计了Turbo Pascal的替代品、开发工具史上的奇迹:Delphi语
言。
Philippe Kahn和Anders都为Borland做出了重大的贡献,同时两人之间还有着深厚的感情。在Borland工作时,对于Anders任何想
法和计划,Philippe Kahn都是不遗余力地支持。也正是这个重要的支持力量,才有随后极为成功的Borland Pascal以及Delphi的问
世。
但是在Philippe Kahn离开Borland之后,Anders再也没有了这股来自最亲密战友的强力支援。
1997年,Borland新的CEO Delbert Yocam在掌握大权后,整个公司开始走向第二个重要的转变,Delbert对于Borland产品的开发和趋
......
lz77压缩算法(2008-07-08 10:36:00)
摘要:第五章 聪明的以色列人(上):LZ77
第四章 第六章
全新的思路
我们在第三和第四章中讨论的压缩模型都是基于对信息中单个字符出现频率的统计
而设计的,直到 70 年代末期,这种思路在数据压缩领域一直占据着统治地位。在
我们今天看来,这种情形在某种程度上显得有些可笑,但事情就是这样,一旦某项
技术在某一领域形成了惯例,人们就很难创造出在思路上与其大相径庭的哪怕是更
简单更实用的技术来。
我们敬佩那两个在数据压缩领域做出了杰出贡献的以色列人,因为正是他们打破了
Huffman 编码一统天下的格局,带给了我们既高效又简便的“字典模型”。至今
,几乎我们日常使用的所有通用压缩工具,象 ARJ,PKZip,WinZip,LHArc,RAR
,GZip,ACE,ZOO,TurboZip,Compress,JAR……甚至许多硬件如网络设备中内
置的压缩算法,无一例外,都可以最终归结为这两个以色列人的杰出贡献。
说起来,字典模型的思路相当简单,我们日常生活中就经常在使用这种压缩思想。
我们常常跟人说“奥运会”、“IBM”、“TCP”之类的词汇,说者和听者都明白它
们指的是“奥林匹克运动会”、“国际商业机器公司”和“传输控制协议”,这实
际就是信息的压缩。我们之所以可以顺利使用这种压缩方式而不产生语义上的误解
,是因为在说者和听者的心中都有一个事先定义好的缩略语字典,我们在对信息进
行压缩(说)和解压缩(听)的过程中都对字典进行了查询操作。字典压缩模型正
是基于这一思路设计实现的。
最简单的情况是,我们拥有一本预先定义好的字典。例如,我们要对一篇中文文章
进行压缩,我们手中已经有一本《现代汉语词典》。那么,我们扫描要压缩的文章
,并......
GDB 调试(2008-07-03 15:10:00)
摘要:如何用GDB调试
2007年06月01日 星期五 下午 06:38
GDB概述
GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许
,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如
果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、
BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就
是这个道理。
一般来说,GDB主要帮忙你完成下面四个方面的功能:
1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
3、当程序被停住时,可以检查此时你的程序中所发生的事。
4、动态的改变你程序的执行环境。
从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成
这些功能,不过在细节上,你会发现GDB这个调试工具的强大,大家
可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却
有着图形化工具所不能完成的功能。梦颐且灰豢蠢础?/p>
一个调试示例
源程序:tst.c
1 #include <stdio.h>
2
3 int func(int n)
4 {
5 int sum=0,i;
6 for(i=0; i<n; i++)
7 {
8 sum+=i;
9 }
10 return sum;
11 }
12
13
14 main()
15 {
16 int i;
17 long result = 0;
18 for(i=1; i<=100; i++)
19 {
20 result += i;
21 }
22
23 printf("result[1-100] = %d \n", result );
24 printf("result[1-250] = %d \n", func(250) );
25 }
编译生成执行文件:(Linux下)
hchen/test> cc -g tst.c -o tst
使用GDB调试:
hc......