| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1581 人关注过本帖
标题:[求助]想问下C语言怎么进阶
只看楼主 加入收藏
beric
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-1
收藏
 问题点数:0 回复次数:14 
[求助]想问下C语言怎么进阶
RT
我已学完了C语言了,数据结构也学了
有天别人问我会不会编小游戏和小软件之类的
我觉得根本都不会,自己就会写几个题目而已
我想问下学完C语言的基础后,还要看些什么书才能懂编软件和小游戏之类的
我觉得对那些都没有什么感觉,不知道从何下手
请大师们指点指点
和我讲讲C语言是怎么从入门到编软件之类的(就是说我看些什么书之类的)
谢谢各位了
搜索更多相关主题的帖子: 小游戏 软件 进阶 C语言 大师 
2007-08-01 23:59
czl
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-7-1
收藏
得分:0 

我也碰到这方面的问题了 我的方法是看别人源程序 必要的时候写注释 并进行修改
挑一些有代表的就好

2007-08-02 00:10
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
看看中断和图形库

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-02 09:25
Biglon
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-2
收藏
得分:0 
看别人的源程序,要有点难度的!!

或是学高级C编程之类
2007-08-02 11:32
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用Biglon在2007-8-2 11:32:42的发言:
看别人的源程序,要有点难度的!!

或是学高级C编程之类

高级C编程 是啥样的?

2007-08-02 16:32
anelwl
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-7-26
收藏
得分:0 
觉得最有效的方法是看别人编的游戏或程序代码

2007-08-02 16:34
m197002846
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-7-31
收藏
得分:0 
看看有关的视频

2007-08-02 16:52
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 

进阶是比初学皮毛困难的多的,因为资料缺乏,内容深奥
给你个代码:
#include<math.h>
#include<mem.h>
#include<dos.h>
#include<stdlib.h>

#define p_num 2000

struct _Particle
{
float vx,vy,ax,ay,x,y;
unsigned char c;
};

void SetColor(int c,int r,int g,int b)
{
outportb(0x3c6,255);
outportb(0x3c8,c);
outportb(0x3c9,r>>2);
outportb(0x3c9,g>>2);
outportb(0x3c9,b>>2);
}

char far *GetBuffer(long x,long y)
{
return (char far *)(0xa0000000L+x+y*320);
}

void blur()
{
unsigned char far *p, far *q;
for(p=GetBuffer(1,1),q=GetBuffer(318,198);p<q;p++) *p=*(p-1)+*(p+1)+*(p-320)+*(p+320)>>2;
}

void main()
{
struct _Particle pg[p_num];
float fcos,fsin,t=0.01,angle=0.0;
float RGB[256][3];
int i;
int dx,dy;

memset(pg,0,p_num*sizeof(struct _Particle));
for(i=0;i<p_num;i++)
{
pg[i].x=160;
pg[i].y=100;
pg[i].c=255;
pg[i].ax=rand()%10191/1000.0-5;
pg[i].ay=rand()%8191/1000.0-4;
}
for(i=0;i<256;i++) RGB[i][0]=sqrt(i)/16.0;
for(i=0;i<256;i++) RGB[i][1]=pow(i,0.7)/48.5;
for(i=0;i<256;i++) RGB[i][2]=(i*i)/65536.0;

_AX=0x13;
asm int 0x10;

for(i=0;i<256;i++) SetColor(i,RGB[i][0]*256,RGB[i][1]*256,RGB[i][2]*256);

while(inportb(0x60)!=1)
{
fcos=cos(angle);
fsin=sin(angle);
for(i=0;i<p_num;i++)
{
pg[i].vx+=pg[i].ax*t;
pg[i].vy+=pg[i].ay*t;
pg[i].x+=pg[i].vx*t;
pg[i].y+=pg[i].vy*t;
dx=(pg[i].x-160)*fcos-(100-pg[i].y)*fsin+160;
dy=(pg[i].x-160)*fsin+(100-pg[i].y)*fcos+100;
if(dx>0&&dx<319&&dy>0&&dy<199) *GetBuffer(dx,dy)=pg[i].c;
if(dx<0||dx>=320) pg[i].vx=-pg[i].vx;
if(dy<0||dy>=200) pg[i].vy=-pg[i].vy;
}
blur();
angle+=0.01;
}

_AX=0x03;
asm int 0x10;
}

在Win-TC 或TC下运行,如果某日你能完全读懂它,那你就相当于进阶了


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-03 07:52
beric
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-1
收藏
得分:0 
以下是引用卧龙孔明在2007-8-3 7:52:19的发言:

进阶是比初学皮毛困难的多的,因为资料缺乏,内容深奥
给你个代码:
#include<math.h>
#include<mem.h>
#include<dos.h>
#include<stdlib.h>

#define p_num 2000

struct _Particle
{
float vx,vy,ax,ay,x,y;
unsigned char c;
};

void SetColor(int c,int r,int g,int b)
{
outportb(0x3c6,255);
outportb(0x3c8,c);
outportb(0x3c9,r>>2);
outportb(0x3c9,g>>2);
outportb(0x3c9,b>>2);
}

char far *GetBuffer(long x,long y)
{
return (char far *)(0xa0000000L+x+y*320);
}

void blur()
{
unsigned char far *p, far *q;
for(p=GetBuffer(1,1),q=GetBuffer(318,198);p<q;p++) *p=*(p-1)+*(p+1)+*(p-320)+*(p+320)>>2;
}

void main()
{
struct _Particle pg[p_num];
float fcos,fsin,t=0.01,angle=0.0;
float RGB[256][3];
int i;
int dx,dy;

memset(pg,0,p_num*sizeof(struct _Particle));
for(i=0;i<p_num;i++)
{
pg[i].x=160;
pg[i].y=100;
pg[i].c=255;
pg[i].ax=rand()%10191/1000.0-5;
pg[i].ay=rand()%8191/1000.0-4;
}
for(i=0;i<256;i++) RGB[i][0]=sqrt(i)/16.0;
for(i=0;i<256;i++) RGB[i][1]=pow(i,0.7)/48.5;
for(i=0;i<256;i++) RGB[i][2]=(i*i)/65536.0;

_AX=0x13;
asm int 0x10;

for(i=0;i<256;i++) SetColor(i,RGB[i][0]*256,RGB[i][1]*256,RGB[i][2]*256);

while(inportb(0x60)!=1)
{
fcos=cos(angle);
fsin=sin(angle);
for(i=0;i<p_num;i++)
{
pg[i].vx+=pg[i].ax*t;
pg[i].vy+=pg[i].ay*t;
pg[i].x+=pg[i].vx*t;
pg[i].y+=pg[i].vy*t;
dx=(pg[i].x-160)*fcos-(100-pg[i].y)*fsin+160;
dy=(pg[i].x-160)*fsin+(100-pg[i].y)*fcos+100;
if(dx>0&&dx<319&&dy>0&&dy<199) *GetBuffer(dx,dy)=pg[i].c;
if(dx<0||dx>=320) pg[i].vx=-pg[i].vx;
if(dy<0||dy>=200) pg[i].vy=-pg[i].vy;
}
blur();
angle+=0.01;
}

_AX=0x03;
asm int 0x10;
}

在Win-TC 或TC下运行,如果某日你能完全读懂它,那你就相当于进阶了

多谢大家啊,不过要写=出一个大的程序和软件,要具体看什么书啊,不然现在这样还是有些不懂下手

2007-08-05 19:22
xieyuanchang
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-8-5
收藏
得分:0 
#include<mem.h>
这个头文件是啥?我的vc没有..

2007-08-05 19:40
快速回复:[求助]想问下C语言怎么进阶
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017870 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved