⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jielong.c

📁 BBS上淘来的一大堆C源代码
💻 C
字号:
#include <graphics.h>

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <dos.h>

#define NULL 0 

#define len sizeof(struct liner) 

struct liner {int x; int y; struct liner *next; }; 

int n; struct liner *creat(int m) 

{ int i; struct liner *head,*p1,*p2; 

n=0; 

p1=(struct liner *)malloc(len);

p1->x=30;p1->y=20; 

head=NULL;

p2=p1; 

for(i=0;i<=m-1;i++) 

{ n++;

 if (n==1) head=p1; 

 else p2->next=p1; 

 p2=p1; p1=(struct liner *)malloc(len);

  p1->x=30;p1->y=20+2-i; 

}

p2->next=head; return(head); } 

struct liner *locate(struct liner *head) { return(head->next); } 

void *picture(int a) { void *p; int size; if(a) {setfillstyle(1,4);

bar(0,0,10,10);

rectangle(1,1,9,9);

rectangle(4,4,6,6);} 

size=imagesize(0,0,10,10);

p=malloc(size); 

getimage(0,0,10,10,p); 

cleardevice(); 

return(p); } 

void draw(int x,int y,void *p) 

{putimage(x*10,y*10,p,COPY_PUT);} 

struct liner *insert(struct liner *head,int x,int y) 

{ struct liner *p; p=(struct liner *)malloc(len);

p->x=x;p->y=y; 

p->next=head->next; 

head->next=p; 

head=p; 

n++;

return(head); } 

int search(int x,int y,struct liner *head) 

{ int k; struct liner *p; p=head;

for(k=0;k<=n-1;k++) {if ((p->x==x) && (p->y==y)) return(1); 

else p=locate(p); } return(0); } 

main() 

{

int gm=2,gd=VGA; 

int h; int time=300,mark=0; 

int key,hi,lo; 

void *p1,*p2; int i,j; 

int x,y; 

int flag=1,bl=0,musicflag=0; 

struct liner *head,*p; 

clrscr(); 

gotoxy(34,10); printf("JieLong"); 

gotoxy(27,11); printf("CopyRight 1995 by ljh"); 

gotoxy(29,17); printf("MUISC=ON|OFF[y/n]n"); 

gotoxy(46,17); 

if(tolower(getchar())=='y') musicflag=1; 

else musicflag=0; 

initgraph(&gd,&gm,"c:\\tc"); p2=picture(0); 

p1=picture(1); head=creat(3); 

p=head; setfillstyle(1,1); bar(0,0,630,349); 

rectangle(0,0,639,349); 

for(i=0;i<=2;i++) 

{ draw(p->x,p->y,p1); p=locate(p); } x=rand()%60+1; y=rand()%15+1; draw(x,y,p1);

lo=0; p=head; hi=72; h=72;

while(flag) { if(musicflag) 

{ sound(400); delay(10); nosound(); } 

if(kbhit()) {key=bioskey(0); 

if(kbhit()) getch(); lo=key & 0x00ff;

if(lo==0) hi=(key & 0xff00)>>8; } i=p->x; j=p->y; 

p=locate(p); draw(p->x,p->y,p2);

{switch(hi) { case 72:if(h!=80) {h=72;j--;} 

else {hi=80;j++;} break; case 80:if(h!=72) {h=80;j++;} 

else {hi=72;j--;} break; case 75:if(h!=77) {h=75;i--;} 

else {hi=77;i++;} break; case 77:if(h!=75) {h=77;i++;} 

else {hi=75;i--;} break; } 

if((x==i)&&(y==j)) { if(musicflag) { sound(1000); delay(100); nosound(); } 

p=insert(p,x,y); 

x=((unsigned int)rand())%50+1;

y=((unsigned int)rand())%25+1; 

draw(x,y,p1); gotoxy(40,25); 

printf("%d",++mark*100); } 

else {if ((i<1)||(i>63)||(j<1)||(j>34)||search(i,j,p)) 

{if(bl==0) flag=0;} 

else { p->x=i;p->y=j; draw(i,j,p1);} } 

delay(time--); 

if (time<=40) time=100; bl=0; } } 

if(musicflag) { sound(1000); delay(100); sound(700); delay(50); sound(1090); delay(100); nosound(); } closegraph(); gotoxy(30,10); printf("GAME OVER"); getch(); } 

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -