博文

大学,我得到了什么?(2007-12-14 16:49:00)

摘要:昨天考完了《微波》,大学里最后一次必修课考试。辅导员也意思就是,选完毕设题和照完毕业照的没其它事的可以回家了,而我就是属于那种“有其它事的”,考研。

大学实质上已经上完了,过去的三年多里我都得到了些啥呢?有快乐的,有无措的,更多的是迷茫与激情的交织。

大 一刚来的时候,什么都不懂,就是土包子,发现很多新奇的东西。电子方面最让我着迷,倒不是爱玩游戏。我就成天在那琢磨,电脑这个冷冰冰的东西是怎么运转起 来的呢?那硬盘的磁头是怎么读写信息的呢?显示器上的点都是怎么描绘出来的呢?刚来没电脑,成天泡图书馆,吃完饭有时候回宿舍都省了,直接奔图书馆。把能 看懂的看不懂的计算机硬件方面的书几乎全部给看了个遍。想来,求知若渴的感觉大概就是那样吧。计算机体系结构,硬件方面的知识大概就那时建立起来的。那时 的我大概是我大学中进步最快的一段时间吧。

而接下的路我确实走错了,大一下买了个电脑,说要DIY自己装机,到电脑城里东买个CPU,西买个显 卡,回来兴奋得不行,当然了,机器是很容易装的,很快就装好了,立马装了个XP,点来点去地也不知道要干嘛,最热心的东西就是咋样咋样优化它了,使它启动 时间更短,跑得更快。这时期我也看书,不过不泡图书馆了,都是借了书出来读。而我竟然读得是应用软件方面的书,学过3DMAX,ACDSEE,MAYA, FRONTPAGE…这学期开了C语言,我很上心,学得还过得去,这学期我的收获大概就是学了C…还学了点WINDOWS编程,做了几个画图程序。虽然当 时有点小成就感,马上就开始感到,真TDM无聊,全是函数调用来调用去地,谁能告诉我它的来龙去脉,其实我那时连自己想知道什么都不知道…

大二我认识了UNIX,我意外的发现这世界上原来除了WINDOWS还有其它的操作系统,我喜欢新鲜的东西,而我恰恰又犯了一个现今大学生的通病,浮躁…

我 几乎把大部分的LINUX发行版全体验了个遍,还把BSD的三分支给装了通,Solairs因为下不回来没装过。那时最热心的东西就是咋样把这系统的字体 显示得好看点呢?咋样让它编译得更适合我的机器,让它跑得更快呢?这段时期就学到了UNIX的体系结构和基本概念和一些常用的命令,基本是浮躁当头,有时 候一个版本还没装热立马换掉,浪费了N多N多(N>半年左右)......

阅读全文(3239) | 评论:14

SDL在WINDOWS环境下的设置(DevCpp)(2007-10-23 10:35:00)

摘要:好多人问关于SDL在WINDOWS环境下的编译环境设置, 最近我有点“功课”,也必须在WINODWS下编译SDL程序, 有点心得,致那些热心于SDL 的朋友们。 以下是在DevCpp环境下的SDL设置(至于VC环境,没有实践,就不敢写了): 1.下载http://www.libsdl.org/release/SDL-1.2.12-win32.zip运行库, 运行SDL程序时压缩包里的sdl.dll要和程序在同一目录下。 2.下载http://www.libsdl.org/release/SDL-devel-1.2.12-mingw32.tar.gz开发库, 将解压后的SDL-1.2.xx目录下的include\SDL文件夹,及lib\*.*(下的所有文件) 分别拷到C:\devcpp(假设DevCPP装在C盘)文件夹下的include,lib文件夹下。 3.设置下DevCpp的连接器,写入 -lmingw32 -lSDLmain -lSDL -mwindows 就可以编译运行SDL程序了,头文件包含应该是<SDL/SDL.h>。......

阅读全文(6977) | 评论:4

单词表逆序程序(2007-06-13 20:15:00)

摘要:以前地ACM同胞现全有自己地事去了,继续搞ACM的现当然几乎成领军人物了,只有我这烂人还在这准备考研地说,正经程序就再没写几个,方便背单词的小程序倒自己写了N(N>10)个……哈哈,都笑我没品位呀……,其实都是些自己实用的程序,这个逆序程序好像还比较有用的……,背单词换个口味呢…… #include <iostream>
#include <string.h> using namespace std;
const int N=8000;    //偶最多也只背这么多个 int cmp(char *a,char *b)
{
 char ta,tb;
 int la=0,lb=0;
 while(a[la]!='\0' && a[la]!=9 && a[la]!=' ' && a[la]!=','
    && a[la]!='(' && a[la]!= '[' && a[la]!='/' && a[la]!='.')
  la++;
 while(b[lb]!='\0' && b[lb]!=9 && b[lb]!= ' ' && b[lb]!=','
  && b[lb]!='(' && b[lb]!= '[' && b[lb]!='/' && b[lb]!='.')
  lb++;
 la--;
 lb--;
 while(la!=-1 || lb !=-1)
 {
  if(a[la]>='A' && a[la]<='Z')
   ta=a[la]+32;
  else ta=a[la];
 &......

阅读全文(4127) | 评论:2

GBK点阵字体的显示(2007-01-18 20:17:00)

摘要:下文转自SOHU论坛   ,   软件开发   ->   C/C++版原著者为该版副版主     爱在远方   一、汉字在计算机中的编码形式  
          我们都知道,在计算机中英文字符是用一个字节的ASCII码表示,该字节最高位一般用做奇偶校验,故实际是用7位码来代表128个字符的,但是对于众多的汉字,只有用两个字节才能表示,这样用两个字节来表示一个汉字的体制,国家制定了统一的标准,称为国标码。国标码规定,组成两个汉字代码的各字节最高位为0,这和英文字符表示方法相同,这就有可能把汉字的国标码看作两个ASCII码,为此又规定在计算机里表示汉字时,把最高位置1,表示该码是汉字,这种最高位为1的代码称为机器内的汉字代码,简称内码。计算机里汉字就是用内码表示的。  
          例如:“大”这个汉字,  
                  国标码   3473             00110100   01110011  
                  内码       B4F3             10110100   11110011  
          知道汉字在计算机里是用内码表示的以后,还需要知道具体汉字的结构。我国在1981年公布了《通讯用汉字字符集及其交换码标准》GB2312-80方案,里面规定了高频字、常用字、次常用字集合成汉字基本字符集(共6763个),再加上一些西文字母,希腊字母、日文字符、图形符号等一共700个。国家标准的汉字字符集在汉字......

阅读全文(5825) | 评论:2

SDL版本的扫雷程序(2007-01-01 23:53:00)

摘要:元旦才刚放假,说实话,我很闲……
所以又写了个扫雷,这个扫雷程序其实真要算是“初学者”级的了……
里面就用到了一个比较像样的算法,…
就是点一个空的时候把邻近的所有连通的空格全部显出……
其实聪明人一下子就知道是搜索了,深搜广搜都可以了……我用的是深搜……
呵呵,程序很简单,但我还是写了这么长,不知怎么搞地……
可能很多地方还可以精简吧……我没刻意去怎么精简它……
因为反正是好玩呀……呵呵,关键的深搜算法写得好一点就差不多了……
正好温习一下落了些时日的算法了…… 程序运行状态:
源程序:bomb.cc /***************************************************************************
 *            bomb.cc
 *       扫雷
 *  Mon Jan  1 15:29:38 2007
 *  Copyright  2007  HuYinLin
 *  Email huyinlin@126.com
 ****************************************************************************/ #include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <iostream> using namespace std; #define FrameW 3  //边框厚
#define BASE_W 20  //小方块大小
#define LINE 16  //行数
#define COL  30 ......

阅读全文(5969) | 评论:3

SDL版本的俄罗斯方块程序(2007-01-01 00:49:00)

摘要:放元旦了……三天假,很闲……
其实要做的事实很多,都快期末考试了,可看着教材就不想看……
就花了点时间写了个俄罗斯方块程序了……
听有人说俄罗斯方块是初学程序设计语言去写的样本例子……
我真惭愧呀……我还花了两个下午来研究这个“初学者”级的程序……==||
不知道是那们人太牛了,还是我太逊了…… 程序运行状态:
程序:tetris.cc 程序写得乱,我也懒得写注解了……因为总感觉人太逊了……
写得注解更要误导别人了……
可能受了那“牛人“打击了…… /***************************************************************************
 *            tetris.cc
 *
 *  Sat Dec 30 19:31:35 2006
 *  Copyright  2006  HuYinLin
 *  Email huyinlin@126.com
 ****************************************************************************/
//俄罗斯方块程序
#include <SDL/SDL.h>
#include <iostream>
#include <SDL/SDL_image.h>
#include <SDL/SDL_mixer.h> using namespace std; #define HW 512
#define HH 704 #define BLOCK_W 32  //象素值
#define BLOCK_H 32 #define GAME_W 10  //BLOCK值
#define GAME_H 22
#define MAXUPDATES......

阅读全文(6640) | 评论:9

光栅图形显示模拟(2006-12-29 18:11:00)

摘要:为了学图形学方便,用SDL写了个光栅显示的模拟,
还花了几个下午来研究了下,主要就是坐标之间的
转换着实让人烦,开始写的一个因为烦透了,删了又重写过……
这个写得还算满意了,坐标之间的转换关系蛮方便地,
也可以从象素级别上刷写一张图象,作一堆杂七杂八的变换,
达到什么效果就看自己写的程序了……
这只是个学习的工具,自己写的图形程序可以直接用来试验,
没什么其它功能,就一个操作伪象素有点用……
呵呵,模拟的就是伪象素嘛…… 两张图片:
//raster.h头文件 #include <SDL/SDL.h>
#include <stdlib.h>
#include <iostream> #define SetR 100
#define SetG 255
#define SetB 255 #define FrameR 255
#define FrameG 0
#define FrameB 0 void init ();
void loop ();
void drawjay ();
void setpixel (int x, int y, Uint8 R = SetR, Uint8 G = SetG, Uint8 B = SetB);
void setpixel (int x, int y, Uint32 pixel);
void drawframe (int x, int y, Uint8 R = FrameR, Uint8 G = FrameG, Uint8 B =
  FrameB);
void drawframe (int x, int y, Uint32 pixel);
int maxx ();
int minx ();
int maxy ();
int miny (); //raster.cc程序文件 #include "raster.h" #define HW 800   //hardware width
#define HH 600   //hardware high......

阅读全文(4329) | 评论:2

SDL 入门试验(2006-12-27 13:08:00)

摘要:一直想写图形方面的程序,又不想写窗口方面的,那种全是拖拉式控件,没什么
特别好玩地……,偶然间发现了SDL(Simple Directmedia Library)发现真是是我
想要地,呵呵,不像DirectX那样基于COM技术,我可不想为了写几个小程序就去
搞清烦透了的COM,最重要的是,我是LINUX系统,学COM没用场,呵呵……
最让人激动的是SDL竟然是跨平台的,WIN32下也可以用,这样,我在我的Gentoo
下写的程序完全就可以让别人在WIN32下编译运行了,真是PERFECT……
SDL是完全是C库,感觉蛮小地,很快就学会了……
只要会C,几乎一下午就可以写你自己的小游戏了(虽然这样,SDL算起来还是一个比较底层的库,你要自己控制所有的东西,一帧一帧的东西,你要全部自己来实现)……
虽然它是一个C库,但其它语言完全可以调用它…… 下面是我在SDL网站上下的ALIENS游戏的自己重写,说我抄也无所谓了,
因为只要自己明白了其中的道理,都一样了(至少还花了一下午的写程序时间呀)……
算是SDL入门作品了(程序在Gentoo Linux 2006.1下SDL1.2.9编译运行通过,WIN32下没试,
没功夫去配置WIN下的SDL环境,网上很多这样的东西) /***************************************************************************
 *   Copyright (C) 2006 by xhh   *
 *   huyinlin@XHH   *
 *                                     &nbs......

阅读全文(6110) | 评论:3

FreeBSD与Linux的区别(2006-08-12 09:11:00)

摘要:  这个问题的N种回答: 高深的: FreeBSD,从unix移植到x86版的一群expert hacker Linux,从x86从零开始编写一个unix的一大群hacker 架构的: FreeBSD是一个完整的系统架构 Linux拥有内核和各种五花八门的发行版 历史的: FreeBSD曾经碰到过一些法律问题,阻碍了FreeBSD的顺利发展,正如Linux目前正在经历的一样 防御的: FreeBSD在承受网络攻击方面,似乎比Linux更强壮 洁癖的: FreeBSD的体系单一,比Linux的发行版机制更简单 学习的: FreeBSD的体系更适合研究技术,而Linux则向所有的领域进发,甚至跑到mac/pda/汽车控制/宇航/电影等等。 许可的: FreeBSD的BSD许可,你可以做任何事情,只需要事先大喊一声:“偶用了BSD技术”。而Linux的GPL需要你告诉别人你怎么做的。 软件的: Linux在支持更多的软件特性上面具有优势(例如线程什么的),FreeBSD缓慢一些 硬件平台的: NetBSD做的不错,Linux更加疯狂,甚至跑在ps2上 外设的: Linux支持的外部设备更多 安全的: OpenBSD是霸主,Linux追赶,不过大家似乎公认安全在人 水平的: FreeBSD开发组成员平均教育水平更高,这与Linux质量好坏有关吗? 传统的: FreeBSD在系统稳定性上比Linux更好,也许早就过时了。 功绩的: FreeBSD最早实现了TCP/IP协议,在IPv4网络上优势无以伦比。 未来的: FreeBSD:把Solaris/AIX/HP UNIX等优势都弄到x86上 Linux: 进入上述平台的领域 实用的: FreeBSD在终端上具有传统的优势 Linux则在X体系以上获得了不少分数,足够冲击windows FANS的: 偶就是喜欢FreeBSD 偶就是喜欢Linux......

阅读全文(7208) | 评论:1

读入字符串的一个小技巧(2006-08-02 16:04:00)

摘要:以前读入行的时候总用gets或是cin.getline,其实scanf也可达到相同的效果。 scanf("%[^\n]",s); 表示读到\n为止和gets同效 也可以scanf("%[^c]",s);表读到c结束,呵呵,一个小Tip ^_^......

阅读全文(3898) | 评论:6