📄 15km.cpp
字号:
return 2;
else if(x<=seed && seed<x+y)
return 3;
else
return 1;//直接右拐 ??
}
// 返回1 是没车 1:没车可以通行 0:有车:不可以通行
int look1zhixing(float* a,int num) //num尚未加1
{
//totalzhixing1 区域内的车辆
int totalzhixing1=0;
for(int i1=1;i1<=num;i1++)
{
//90度
// if((300<=(*(a+i1)) && (*(a+i1))<=360) || (0<=(*(a+i1)) && (*(a+i1))<=33)) //留3°给插进的车
if((18<=(*(a+i1)) && (*(a+i1))<=33))
totalzhixing1++;
}
if(totalzhixing1)
return 0;
else
return 1;
}
int insert1zhixing(float *a,int num)
{
int tick=0;
int pos=0;
float in=30;//插入30°
if(num)
{
for(int i2=num;i2>=1;i2--)
{
if( in>=a[i2-1] && in<a[i2])
{
tick=1;
pos=i2;
for(int k=num;k>=pos;k--)
{
a[k+1]=a[k];
}
a[pos]=in;
}
if(!tick)
{
a[++num]=in;
}
}
}
else
{
a[1]=in;
pos=1;
}
return pos;
}
void insert(int* a,int p,int number,int num) //未检验
{
for(int k=num;k>=p;k--)
{
a[k+1]=a[k];
}
a[p]=number;
}
int look1left(float* a,int num)
{
//totalzhixing1 区域内的车辆
int totalzhixing1=0;
for(int i1=1;i1<=num;i1++)
{
//90度
// if((300<=(*(a+i1)) && (*(a+i1))<=360) || (0<=(*(a+i1)) && (*(a+i1))<=33)) //留3°给插进的车
if((18<=(*(a+i1)) && (*(a+i1))<=33))
totalzhixing1++;
}
if(totalzhixing1)
return 0;
else
return 1;
}
int insert1left(float* a,int num)
{
int tick=0;
int pos=0;
float in=30;//插入30°
if(num)
{
for(int i2=num;i2>=1;i2--)
{
if( in>=a[i2-1] && in<a[i2])
{
tick=1;
pos=i2;
for(int k=num;k>=pos;k--)
{
a[k+1]=a[k];
}
a[pos]=in;
}
if(!tick)
{
a[++num]=in;
}
}
}
else
{
a[1]=in;
pos=1;
}
return pos;
}
void minus(int* a,int num) //具有特殊性
{
for(int i1=1;i1<=num-1;i1++)
{
a[i1]=a[i1+1];
}
}
int look2zhixing(float* a,int num)
{
int total=0;
for(int i1=1;i1<=num;i1++)
{
//90度
// if((30<=(*(a+i1)) && (*(a+i1))<=123)) //留3°给插进的车
if((108<=(*(a+i1)) && (*(a+i1))<=123))
total++;
}
if(total)
return 0;
else
return 1;
}
int look2left(float* a,int num)
{
int total=0;
for(int i1=1;i1<=num;i1++)
{
//90度
// if((30<=(*(a+i1)) && (*(a+i1))<=123)) //留3°给插进的车
if((108<=(*(a+i1)) && (*(a+i1))<=123))
total++;
}
if(total)
return 0;
else
return 1;
}
int insert2zhixing(float* a,int num)
{
int tick=0;
int pos=0;
float in=120;//插入120°
if(num)
{
for(int i2=num;i2>=1;i2--)
{
if( in>=a[i2-1] && in<a[i2])
{
tick=1;
pos=i2;
for(int k=num;k>=pos;k--)
{
a[k+1]=a[k];
}
a[pos]=in;
}
if(!tick)
{
a[++num]=in;
}
}
}
else
{
a[1]=in;
pos=1;
}
return pos;
}
int insert2left(float* a,int num)
{
int tick=0;
int pos=0;
float in=120;//插入120°
if(num)
{
for(int i2=num;i2>=1;i2--)
{
if( in>=a[i2-1] && in<a[i2])
{
tick=1;
pos=i2;
for(int k=num;k>=pos;k--)
{
a[k+1]=a[k];
}
a[pos]=in;
}
if(!tick)
{
a[++num]=in;
}
}
}
else
{
a[1]=in;
pos=1;
}
return pos;
}
int look3zhixing(float* a,int num)
{
int total=0;
for(int i1=1;i1<=num;i1++)
{
//90度
// if((120<=(*(a+i1)) && (*(a+i1))<=213)) //留3°给插进的车
if((198<=(*(a+i1)) && (*(a+i1))<=213)) //留3°给插进的车
total++;
}
if(total)
return 0;
else
return 1;
}
int look3left(float* a,int num)
{
int total=0;
for(int i1=1;i1<=num;i1++)
{
//90度
// if((120<=(*(a+i1)) && (*(a+i1))<=213)) //留3°给插进的车
if((198<=(*(a+i1)) && (*(a+i1))<=213)) //留3°给插进的车
total++;
}
if(total)
return 0;
else
return 1;
}
int insert3zhixing(float* a,int num)
{
int tick=0;
int pos=0;
float in=210;//插入210°
if(num)
{
for(int i2=num;i2>=1;i2--)
{
if( in>=a[i2-1] && in<a[i2])
{
tick=1;
pos=i2;
for(int k=num;k>=pos;k--)
{
a[k+1]=a[k];
}
a[pos]=in;
}
if(!tick)
{
a[++num]=in;
}
}
}
else
{
a[1]=in;
pos=1;
}
return pos;
}
int insert3left(float* a,int num)
{
int tick=0;
int pos=0;
float in=210;//插入210°
if(num)
{
for(int i2=num;i2>=1;i2--)
{
if( in>=a[i2-1] && in<a[i2])
{
tick=1;
pos=i2;
for(int k=num;k>=pos;k--)
{
a[k+1]=a[k];
}
a[pos]=in;
}
if(!tick)
{
a[++num]=in;
}
}
}
else
{
a[1]=in;
pos=1;
}
return pos;
}
int look4zhixing(float* a,int num)
{
int total=0;
for(int i1=1;i1<=num;i1++)
{
//90度
// if((210<=(*(a+i1)) && (*(a+i1))<=303)) //留3°给插进的车
if((288<=(*(a+i1)) && (*(a+i1))<=303)) //留3°给插进的车
total++;
}
if(total)
return 0;
else
return 1;
}
int look4left(float* a,int num)
{
int total=0;
for(int i1=1;i1<=num;i1++)
{
//90度
// if((210<=(*(a+i1)) && (*(a+i1))<=303)) //留3°给插进的车
if((288<=(*(a+i1)) && (*(a+i1))<=303))
total++;
}
if(total)
return 0;
else
return 1;
}
int insert4zhixing(float* a,int num)
{
int tick=0;
int pos=0;
float in=300;//插入300°
if(num)
{
for(int i2=num;i2>=1;i2--)
{
if( in>=a[i2-1] && in<a[i2])
{
tick=1;
pos=i2;
for(int k=num;k>=pos;k--)
{
a[k+1]=a[k];
}
a[pos]=in;
}
if(!tick)
{
a[++num]=in;
}
}
}
else
{
a[1]=in;
pos=1;
}
return pos;
}
int insert4left(float* a,int num)
{
int tick=0;
int pos=0;
float in=300;//插入300°
if(num)
{
for(int i2=num;i2>=1;i2--)
{
if( in>=a[i2-1] && in<a[i2])
{
tick=1;
pos=i2;
for(int k=num;k>=pos;k--)
{
a[k+1]=a[k];
}
a[pos]=in;
}
if(!tick)
{
a[++num]=in;
}
}
}
else
{
a[1]=in;
pos=1;
}
return pos;
}
void rebuild(float* a,int num,int* com,int* out)
{
int tic=0;
int po=0;
float f[chang]={0};
int fcom[chang]={0};
int fout[chang]={0};
int i1=0;
for (i1=1;i1<=num;i1++)
{
if(a[i1]>=360)
tic++;
}
if(!tic)
return ;
else
{
for(i1=num;i1>=1;i1--)
{
if(a[i1]>359.99 && a[i1-1]<=359.99)
{
po=i1;
for(int kk=po;kk<=num;kk++)
{
f[kk-po+1]=a[kk];
fcom[kk-po+1]=com[kk];
fout[kk-po+1]=out[kk];
}
}
}
for(i1=po-1;i1>=1;i1--)
{
a[i1+num-po+1]=a[i1];
com[i1+num-po+1]=com[i1];
out[i1+num-po+1]=out[i1];
}
for(i1=1;i1<=num-po+1;i1++)
{
a[i1]=f[i1];
com[i1]=fcom[i1];
out[i1]=fout[i1];
}
for(int i7=1;i7<=num;i7++)
{
int t=(int)(a[i7]*1000);
t=t%360000;
a[i7]=(float)(t/1000);
}
}
}
void leave(float* a,int* zleave,int num,int leavenum,int* com,int *out)
{
int c=1;
float f[chang]={0};
int fcom[chang]={0};
int fout[chang]={0};
for(int i1=1;i1<=num;i1++)
{
if(!zleave[i1])
{
f[c]=a[i1];
fcom[c]=com[i1];
fout[c]=out[i1];
c++;
}
}
c--;
for(int i2=1;i2<=c;i2++)
{
a[i2]=f[i2];
com[i2]=fcom[i2];
out[i2]=fout[i2];
}
c++;
for(int i=c;i<chang;i++)
{
a[i]=0;
com[i]=0;
out[i]=0;
}
}
void reset(int* a)
{
for(int qq=0;qq<chang;qq++)
a[qq]=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -