2022-05-18 18:44:21 +08:00
|
|
|
|
#include "bus.h"
|
2022-05-24 11:39:44 +08:00
|
|
|
|
#include "math.h"
|
|
|
|
|
bus_t *the_bus = NULL;
|
|
|
|
|
void RunBus(int direction)
|
|
|
|
|
{
|
2022-05-24 11:43:19 +08:00
|
|
|
|
if(direction == BUS_CLOCK_WISE)//顺时针
|
2022-05-24 11:39:44 +08:00
|
|
|
|
{
|
|
|
|
|
the_bus->distance++;
|
|
|
|
|
}
|
2022-05-24 11:43:19 +08:00
|
|
|
|
else if(direction == BUS_COUNTER_CLOCK_WISE)
|
2022-05-24 11:39:44 +08:00
|
|
|
|
{
|
|
|
|
|
the_bus->distance--;
|
|
|
|
|
}
|
2022-05-18 18:44:21 +08:00
|
|
|
|
|
2022-05-24 11:39:44 +08:00
|
|
|
|
}
|
|
|
|
|
int GetBusPosition()
|
|
|
|
|
{
|
|
|
|
|
int a,b;
|
|
|
|
|
a=the_bus->rail_node_pos->id;//指向站点的指针以及这个指针对应的站台id;
|
|
|
|
|
b=a*(rails->last_node_distance)+abs(the_bus->distance);
|
|
|
|
|
return b;
|
|
|
|
|
}
|
|
|
|
|
int JudgeOnStation()
|
|
|
|
|
{
|
2022-05-24 18:24:39 +08:00
|
|
|
|
if(abs(the_bus->distance) == rails->last_node_distance)//表示逆时针
|
2022-05-24 11:39:44 +08:00
|
|
|
|
{
|
2022-05-24 18:24:39 +08:00
|
|
|
|
the_bus->distance=0;
|
|
|
|
|
the_bus->rail_node_pos=rails->last_node;//逆时针往上一个
|
2022-05-24 11:43:19 +08:00
|
|
|
|
return BUS_TRUE;
|
2022-05-24 11:39:44 +08:00
|
|
|
|
}
|
2022-05-24 18:24:39 +08:00
|
|
|
|
else if(abs(the_bus->distance) == rails->next_node_distance)//表示顺时针
|
|
|
|
|
{
|
|
|
|
|
the_bus->distance=0;
|
|
|
|
|
the_bus->rail_node_pos=rails->next_node;//顺时针往下一个
|
|
|
|
|
return BUS_TRUE;
|
|
|
|
|
}
|
|
|
|
|
else
|
2022-05-24 11:39:44 +08:00
|
|
|
|
{
|
2022-05-24 11:43:19 +08:00
|
|
|
|
return BUS_FAlSE;
|
2022-05-24 11:39:44 +08:00
|
|
|
|
}
|
|
|
|
|
}
|