📄 elevator.c
字号:
#include "egg.h"
#include "elevator.h"
void init()
{
int i;
EggStart(14, 14);
SetPen(BLUE, 0.05);
MovePen(2,3);
DrawLine(0, 9);
for(i=12;i>=3;i--)
{
MovePen(2,i);
DrawLine(3,0);
}
DrawLine(0,9);
MovePen(1,3.7);
DrawString("1层");
MovePen(1,4.7);
DrawString("2层");
MovePen(1,5.7);
DrawString("3层");
MovePen(1,6.7);
DrawString("4层");
MovePen(1,7.7);
DrawString("5层");
MovePen(1,8.7);
DrawString("6层");
MovePen(1,9.7);
DrawString("7层");
MovePen(1,10.7);
DrawString("8层");
MovePen(1,11.7);
DrawString("9层");
MovePen(6,11);
DrawString("当前电梯楼层:");
MovePen(6,10);
DrawString("当前服务目标:");
MovePen(6,9);
DrawString("当前运行方向:");
MovePen(6,8);
DrawString("电梯当前状态:");
MovePen(6,7);
DrawString("-呼叫按钮(向上)");
MovePen(6,6);
DrawString("-呼叫按钮(向下)");
MovePen(6,5);
DrawString("-呼叫按钮(电梯内)");
elevator = LayEgg();
MovePen(0, 14);
SetPen(RED, 0.05);
DrawLine(3,0);
DrawLine(0,-1);
DrawLine(-3,0);
DrawLine(0,1);
MoveEgg(2,4);
screen = LayEgg();
MovePen(6,12);
SetPenColor(BLUE);
DrawString("1");
MovePen(7,12);
DrawString("层");
}
//移动电梯 direction=1为向上移动电梯相对纵坐标0.05,direction=0为向下移动电梯相对纵坐标0.05
void move(double length)
{
SetActiveEgg(elevator);
OffsetEgg(0,length);
}
//电梯运行到某层或电梯停留在某层,执行此函数
void arriveAt(int layerNumber)
{
lastLayer = layerNumber;
SetActiveEgg(screen);
MovePen(6,12);
switch(layerNumber)
{
case 1:
DrawString("1");
break;
case 2:
DrawString("2");
break;
case 3:
DrawString("3");
break;
case 4:
DrawString("4");
break;
case 5:
DrawString("5");
break;
case 6:
DrawString("6");
break;
case 7:
DrawString("7");
break;
case 8:
DrawString("8");
break;
case 9:
DrawString("9");
break;
}
}
void drawCurrentLayer(int currentLayer)
{
SetActiveEgg(screen);
MovePen(10,11);
drawNum(currentLayer);
}
void drawDestLayer(int destLayer)
{
SetActiveEgg(screen);
MovePen(10,10);
drawNum(destLayer);
}
void drawDirection(int direction)
{
SetActiveEgg(screen);
MovePen(10,9);
if(direction<0)
DrawString("下");
else if(direction>0)
DrawString("上");
else if(direction==0)
DrawString("停");
}
void drawStatus(int status)
{
SetActiveEgg(screen);
MovePen(10,8);
if(status==0)
DrawString("停止");
else
DrawString("运行");
}
void drawUp(char * up)
{
SetActiveEgg(screen);
MovePen(10.5,7);
DrawString(up);
}
void drawDown(char * down)
{
SetActiveEgg(screen);
MovePen(10.5,6);
DrawString(down);
}
void drawIn(char * in)
{
SetActiveEgg(screen);
MovePen(10.5,5);
DrawString(in);
}
static void drawNum(int num)
{
switch(num)
{
case 0:
DrawString("0");
break;
case 1:
DrawString("1");
break;
case 2:
DrawString("2");
break;
case 3:
DrawString("3");
break;
case 4:
DrawString("4");
break;
case 5:
DrawString("5");
break;
case 6:
DrawString("6");
break;
case 7:
DrawString("7");
break;
case 8:
DrawString("8");
break;
case 9:
DrawString("9");
break;
default:
DrawString("-1");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -