C语言能做什么

Python037

C语言能做什么,第1张

c语言学会了能干的事情有:

1、做嵌入式开发;

2、写漂亮的界面;

3、做服务器开发;

4、可以写游戏

5、可以写驱动程序;

6、可以写外挂;

7、可以做视频图片流媒体处理;

8、可做网页和爬虫相关的编程;

9、可以进行黑客编程等等。

C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

我不是个做游戏的,但我是个玩游戏的。

C语言能用来做游戏吗 ->能

我在网上看到了C语言的游戏源代码复制到VC++里执行都会报错不知道是怎么回事 ->要具体问题具体分析,你可以看看都报什么错,针对性修改即可。

目前编程语言繁多,精通的话,绝大多数都能用来做游戏。推荐你先学好C,再根据之后的兴趣、发展、机会等等确定一门专攻语言。学会C,触类旁通,学其他语言就不是很费力了。

个人认为,编程语言只是一个次要方面(可能30%都不到),整个游戏的设计理念才是重点。你可能要用到文学、物理学、数学很多方面的知识,绝对不要死抠语言。比如一个游戏的人工智能,就是个很大的挑战。你可以自己看书,不必跟着老师走(只是跟着老师走会很惨),觉得要用什么就学什么,多用baidu、google。

C语言可以编手机游戏. 你叫他去死 不过我这有 贪吃蛇的代码,你倒可以看看 (用TC 编译一定过)

#include <stdlib.h>

#include <graphics.h>

#include <bios.h>

#include <dos.h>

#include <conio.h>

#define Enter 7181

#define ESC 283

#define UP 18432

#define DOWN 20480

#define LEFT 19200

#define RIGHT 19712

#ifdef __cplusplus

#define __CPPARGS ...

#else

#define __CPPARGS

#endif

void interrupt (*oldhandler)(__CPPARGS)

void interrupt newhandler(__CPPARGS)

void SetTimer(void interrupt (*IntProc)(__CPPARGS))

void KillTimer(void)

void Initgra(void)

void TheFirstBlock(void)

void DrawMap(void)

void Initsnake(void)

void Initfood(void)

void Snake_Headmv(void)

void Flag(int,int,int,int)

void GameOver(void)

void Snake_Bodymv(void)

void Snake_Bodyadd(void)

void PrntScore(void)

void Timer(void)

void Win(void)

void TheSecondBlock(void)

void Food(void)

void Dsnkorfd(int,int,int)

void Delay(int)

struct Snake

{int xint yint color}Snk[12]

struct Food

{int xint yint color}Fd

int flag1=1,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0,

checkx,checky,num,key=0,Times,Score,Hscore,Snkspeed,TimerCounter,TureorFalse

char Sco[2],Time[6]

void main()

{ Initgra()

SetTimer(newhandler)

TheFirstBlock()

while(1)

{DrawMap()

Snake_Headmv()

GameOver()

Snake_Bodymv()

Snake_Bodyadd()

PrntScore()

Timer()

Win()

if(key==ESC)

break

if(key==Enter)

{cleardevice()

TheFirstBlock()

}

TheSecondBlock()

Food()

Delay(Snkspeed)

}

closegraph()

KillTimer()

}

void interrupt newhandler(__CPPARGS)

{

TimerCounter++

oldhandler()

}

void SetTimer(void interrupt (*IntProc)(__CPPARGS))

{

oldhandler=getvect(0x1c)

disable()

setvect(0x1c,IntProc)

enable()

}

void KillTimer()

{

disable()

setvect(0x1c,oldhandler)

enable()

}

void Initgra()

{int gd=DETECT,gm

initgraph(&gd,&gm,"d:\\tc")

}

void TheFirstBlock()

{setcolor(11)

settextstyle(0,0,4)

outtextxy(100,220,"The First Block")

loop:key=bioskey(0)

if(key==Enter)

{cleardevice()

Initsnake()

Initfood()

Score=0

Hscore=1

Snkspeed=10

num=2

Times=0

key=0

TureorFalse=1

TimerCounter=0

Time[0]='0'Time[1]='0'Time[2]=':'Time[3]='1'Time[4]='0'Time[5]='\0'

}

else if(key==ESC) cleardevice()

else goto loop

}

void DrawMap()

{line(10,10,470,10)

line(470,10,470,470)

line(470,470,10,470)

line(10,470,10,10)

line(480,20,620,20)

line(620,20,620,460)

line(620,460,480,460)

line(480,460,480,20)

}

void Initsnake()

{randomize()

num=2

Snk[0].x=random(440)

Snk[0].x=Snk[0].x-Snk[0].x%20+50

Snk[0].y=random(440)

Snk[0].y=Snk[0].y-Snk[0].y%20+50

Snk[0].color=4

Snk[1].x=Snk[0].x

Snk[1].y=Snk[0].y+20

Snk[1].color=4

}

void Initfood()

{randomize()

Fd.x=random(440)

Fd.x=Fd.x-Fd.x%20+30

Fd.y=random(440)

Fd.y=Fd.y-Fd.y%20+30

Fd.color=random(14)+1

}

void Snake_Headmv()

{if(bioskey(1))

{key=bioskey(0)

switch(key)

{case UP:Flag(1,0,0,0)break

case DOWN:Flag(0,1,0,0)break

case LEFT:Flag(0,0,1,0)break

case RIGHT:Flag(0,0,0,1)break

default:break

}

}

if(flag1)

{checkx=Snk[0].x

checky=Snk[0].y

Dsnkorfd(Snk[0].x,Snk[0].y,0)

Snk[0].y-=20

Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color)

}

if(flag2)

{checkx=Snk[0].x

checky=Snk[0].y

Dsnkorfd(Snk[0].x,Snk[0].y,0)

Snk[0].y+=20

Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color)

}

if(flag3)

{checkx=Snk[0].x

checky=Snk[0].y

Dsnkorfd(Snk[0].x,Snk[0].y,0)

Snk[0].x-=20

Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color)

}

if(flag4)

{checkx=Snk[0].x

checky=Snk[0].y

Dsnkorfd(Snk[0].x,Snk[0].y,0)

Snk[0].x+=20

Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color)

}

}

void Flag(int a,int b,int c,int d)

{flag1=aflag2=bflag3=cflag4=d}

void GameOver()

{int i

if(Snk[0].x<20||Snk[0].x>460||Snk[0].y<20||Snk[0].y>460)

{cleardevice()

setcolor(11)

settextstyle(0,0,4)

outtextxy(160,220,"Game Over")

loop1:key=bioskey(0)

if(key==Enter)

{cleardevice()

TheFirstBlock()

}

else

if(key==ESC)

cleardevice()

else

goto loop1

}

for(i=3i<numi++)

{if(Snk[0].x==Snk[i].x&&Snk[0].y==Snk[i].y)

{cleardevice()

setcolor(11)

settextstyle(0,0,4)

outtextxy(160,220,"Game Over")

loop2:key=bioskey(0)

if(key==Enter)

{cleardevice()

TheFirstBlock()

}

else

if(key==ESC)

cleardevice()

else goto loop2

}

}

}

void Snake_Bodymv()

{int i,s,t

for(i=1i<numi++)

{Dsnkorfd(checkx,checky,Snk[i].color)

Dsnkorfd(Snk[i].x,Snk[i].y,0)

s=Snk[i].x

t=Snk[i].y

Snk[i].x=checkx

Snk[i].y=checky

checkx=s

checky=t

}

}

void Food()

{if(flag5)

{randomize()

Fd.x=random(440)

Fd.x=Fd.x-Fd.x%20+30

Fd.y=random(440)

Fd.y=Fd.y-Fd.y%20+30

Fd.color=random(14)+1

flag5=0

}

Dsnkorfd(Fd.x,Fd.y,Fd.color)

}

void Snake_Bodyadd()

{if(Snk[0].x==Fd.x&&Snk[0].y==Fd.y)

{if(Snk[num-1].x>Snk[num-2].x)

{num++

Snk[num-1].x=Snk[num-2].x+20

Snk[num-1].y=Snk[num-2].y

Snk[num-1].color=Fd.color

}

else

if(Snk[num-1].x<Snk[num-2].x)

{num++

Snk[num-1].x=Snk[num-2].x-20

Snk[num-1].y=Snk[num-2].y

Snk[num-1].color=Fd.color

}

else

if(Snk[num-1].y>Snk[num-2].y)

{num++

Snk[num-1].x=Snk[num-2].x

Snk[num-1].y=Snk[num-2].y+20

Snk[num-1].color=Fd.color

}

else

if(Snk[num-1].y<Snk[num-2].y)

{num++

Snk[num-1].x=Snk[num-2].x

Snk[num-1].y=Snk[num-2].y-20

Snk[num-1].color=Fd.color

}

flag5=1

Score++

}

}

void PrntScore()

{if(Hscore!=Score)

{setcolor(11)

settextstyle(0,0,3)

outtextxy(490,100,"SCORE")

setcolor(2)

setfillstyle(1,0)

rectangle(520,140,580,180)

floodfill(530,145,2)

Sco[0]=(char)(Score+48)

Sco[1]='\0'

Hscore=Score

setcolor(4)

settextstyle(0,0,3)

outtextxy(540,150,Sco)

}

}

void Timer()

{if(TimerCounter>18)

{Time[4]=(char)(Time[4]-1)

if(Time[4]<'0')

{Time[4]='9'

Time[3]=(char)(Time[3]-1)

}

if(Time[3]<'0')

{Time[3]='5'

Time[1]=(char)(Time[1]-1)

}

if(TureorFalse)

{setcolor(11)

settextstyle(0,0,3)

outtextxy(490,240,"TIMER")

setcolor(2)

setfillstyle(1,0)

rectangle(490,280,610,320)

floodfill(530,300,2)

setcolor(11)

settextstyle(0,0,3)

outtextxy(495,290,Time)

TureorFalse=0

}

if(Time[1]=='0'&&Time[3]=='0'&&Time[4]=='0')

{setcolor(11)

settextstyle(0,0,4)

outtextxy(160,220,"Game Over")

loop:key=bioskey(0)

if(key==Enter)

{cleardevice()

TheFirstBlock()

}

else if(key==ESC) cleardevice()

else goto loop

}

TimerCounter=0

TureorFalse=1

}

}

void Win()

{if(Score==3)

Times++

if(Times==2)

{cleardevice()

setcolor(11)

settextstyle(0,0,4)

outtextxy(160,220,"You Win")

loop:key=bioskey(0)

if(key==Enter)

{cleardevice()

TheFirstBlock()

key=0

}

else if(key==ESC) cleardevice()

else goto loop

}

}

void TheSecondBlock()

{if(Score==3)

{cleardevice()

setcolor(11)

settextstyle(0,0,4)

outtextxy(100,220,"The Second Block")

loop:key=bioskey(0)

if(key==Enter)

{cleardevice()

Initsnake()

Initfood()

Score=0

Hscore=1

Snkspeed=8

num=2

key=0

}

else if(key==ESC) cleardevice()

else goto loop

}

}

void Dsnkorfd(int x,int y,int color)

{setcolor(color)

setfillstyle(1,color)

circle(x,y,10)

floodfill(x,y,color)

}

void Delay(int times)

{int i

for(i=1i<=timesi++)

delay(15000)

}