发信人: chen82607(chen82607)
整理人: yangcs(2004-10-14 14:22:35), 站内信件
|
#include "graphics.h"
#include "math.h"
#include "ctype.h"
#define UP 0
#define DOWN 1
typedef int penState;
typedef struct{
float v,h;}aPoint;
typedef struct{
float heading;
penState pen;
int color;
aPoint Pos;
}newTurtle;
newTurtle Turtle;
main()
{
int driver,mode,steps=1;
char ch;
driver=VGA;mode=VGAHI;
initgraph(&driver,&mode,"");
settextstyle(1,HORIZ_DIR,4);
outtextxy(10,20,"MADE BY Chen XiaoMing");
outtextxy(10,50,"Computer Studen 2001402050783");
outtextxy(10,80,"Program 0");
outtextxy(10,110,"Press the 's' to start");
outtextxy(10,140,"Peess the Esc to exit");
ch=getch();
while(ch!='s')
{ch=getch();
if(ch==27)exit();}
clearviewport();
settextstyle(1,HORIZ_DIR,2);
setcolor(4);
while(1)
{outtextxy(10,20,"s:Reset, u:PenUp, d:PenDown, m:Move, l:TurnLeft, r:TurnRight");
outtextxy(10,40,"+:AddSteps, -:MuSteps");
switch(ch)
{
case 's':StartTurtle();Prin(steps);steps=1;break;
case 'u':PenUp();break;
case 'd':PenDown();break;
case 'm':Move(steps);break;
case 'l':Prin1(steps);HeadingLeft();Prin(steps);break;
case 'r':Prin1(steps);HeadingRight();Prin(steps);break;
case 'c':SetColor();setcolor(Turtle.color);
outtextxy(10,20,"s:Reset, u:PenUp, d:PenDown, m:Move, l:TurnLeft, r:TurnRight");
outtextxy(10,35,"+:AddSteps, -:MuSteps");break;
case 'o':circle(Turtle.Pos.v,Turtle.Pos.h,5*steps);break;
case '+':steps+=1;break;
case '-':steps-=1;break;
case 27:exit();
}
ch=getch();
}
}
StartTurtle()
{ Turtle.heading=0;
Turtle.pen=DOWN;
Turtle.color=4;
Turtle.Pos.v=320;
Turtle.Pos.h=160;
}
PenUp()
{Turtle.pen=UP;}
PenDown()
{Turtle.pen=DOWN;}
Move(int steps)
{int x,y;
x=Turtle.Pos.v+ceil(steps*5*cos(Turtle.heading));
y=Turtle.Pos.h+ceil(steps*5*sin(Turtle.heading));
if(Turtle.pen==DOWN)
line(Turtle.Pos.v,Turtle.Pos.h,x,y);
Turtle.Pos.v=x;
Turtle.Pos.h=y;
}
HeadingLeft()
{Turtle.heading-=0.5;}
HeadingRight()
{Turtle.heading+=0.5;}
SetColor()
{Turtle.color++;
if(Turtle.color>15)Turtle.color=1;}
Prin1(int steps)
{ int x,y;
setcolor(0);
x=Turtle.Pos.v+ceil(steps*5*cos(Turtle.heading));
y=Turtle.Pos.h+ceil(steps*5*sin(Turtle.heading));
if(Turtle.pen==DOWN)
line(Turtle.Pos.v,Turtle.Pos.h,x,y);}
Prin(int steps)
{int x,y;
setcolor(Turtle.color);
x=Turtle.Pos.v+ceil(steps*5*cos(Turtle.heading));
y=Turtle.Pos.h+ceil(steps*5*sin(Turtle.heading));
if(Turtle.pen==DOWN)
line(Turtle.Pos.v,Turtle.Pos.h,x,y);}
----
\\\|///
\\ - - //
( @ @ )
┏━━━━━━━━━oOOo-(_)-oOOo━┓
┃网海茫茫,认识你是我的福份; ┃
┃网语缠绵,那是我们注定的缘份。 ┃
┃ Oooo ┃
┗━━━━━━━━━ oooO━-( )━┛
( ) ) /
\ ( (_/
\_) |
|