Código fuente del algoritmo de giro a la izquierda
La entrada para dibujar una estrella de cinco puntas es:
5, 4
4, 90
5, 19 p>
4, 180
2
5, 38
3, 144
5, 38
3, 144
5, 38
3, 144
5, 38
3, 144
5 , 38
1
Seis
Nueve
La entrada para dibujar mi nombre es:
1
p>5, 10
4, 90
5, 19
2
4, 180
5, 18
4, 180
5, 9
4, 90
5, 10
3, 90
5, 8
3, 180
5, 16
3, 180
5, 8
4, 90
5, 10
3, 90
5, 9
3, 180
5, 18
1
5, 2
4, 90
5, 20
2
3, 135
5, 4
1
3, 45
5, 4
2
3, 135
5, 4
1
4, 135
5, 16
2
4, 165
5, 10
3, 180
5, 10
1
3, 165
5, 20
3, 90
5, 10
3, 135
5, 1
2
5, 6
3.180
5,3
3,45
5,9
3,180
5, 5
3, 90
5, 3
3, 180
5, 8
3,90
5,6
3.180
5,12
3.180
5, 10
1
4, 90
5, 3
2
4, 90
5, 8
3, 90
5, 9
3, 90
5, 8
3, 90
5, 9
Seis
Nueve
Fuente La El código es el siguiente:
# include ltstdio.h gt
# include ltstdlib.h gt
# include ltassert.h gt
# incluir ltmath.h gt
const int left _bound =-19
const int right _bound = 20
const int up_bound = -19 ;
const int down _bound = 20
bool sea[abajo_bound-up_bound 1][derecha
t_bound-left_bound 1];
pen_descent booleano;
fila flotante, columna;
flotante drow = -1, dcol = 0;
void print_sea()
{
for(int I = arriba _ límite; i lt = abajo _ límite)
{
for(int j = izquierda _ enlazada; j lt= derecha _ enlazadaj )
{
printf(" c " , ((mar[I -arriba _ enlazada][ j-izquierda _ enlazada])? '*': ' '));
}
printf(" \ n "); p>
}
void up_pen()
{
pen_down = 0;
}
void down_pen()
{
pluma _ abajo = 1;
if(pluma abajo amp amp límite superior -0.4 lt;= fila amp amprow lt=límite inferior 0.4 amp; ampleft _bound-0.4 lt;= col amp ampcol lt=límite derecho 0.4)
{
mar[(int )(row-up _ enlazado 0.5)][(int)(col-left _ enlazado 0.5)]= true;
}
}
Girar a la izquierda no válido (grados enteros)
{
Número de coma flotante pi = 3.1415926;
float alpha = deg * pi/180;
float drow _ new = -sin(alfa)* dcol cos(alfa)* drow;
float dcol _ nuevo = sin(alfa)* drow cos(alfa)* dcol;
Drow=Drow_new;
dcol = dcol _ new
}
Giro a la derecha no válido (grado entero)
{
Giro izquierda (-grados);
}
void forward_n(int n)
{
for(int I = 0; i ltn; i )
{
fila = dcol;
col = dcol
if(lápiz hacia abajo y límite superior- 0,4 lt; = fila amp amprow lt=límite inferior 0,4 ampleft _bound-0,4 lt; = col amp ampcol lt=límite derecho 0,4)
{
mar[(int) )(fila arriba _ enlazado 0.5)][(int)(col-izquierda _ enlazado 0.5)]= verdadero;
}
}
}
int main()
{
for(;;)
{
int cmd = 9 ;
scanf(" d ",
ampcmd);
Cambiar (cmd)
{
Caso 1:
up _ pen();
Pausa;
Caso 2:
down _ pen();
Pausa;
Caso 3:
cmd = 90
scanf(", d ", ampcmd);
Girar a la derecha (cmd);
Break; p>Caso 4:
cmd = 90
scanf(", d ", ampcmd
Girar a la izquierda
<); p>Break;Caso 5:
cmd = 0;
scanf(",d ", ampcmd);
adelante _ n(cmd);
Romper;
Caso 6:
print _ sea();
Romper;
Caso 9:
Devuelve 0;
Valor predeterminado:
Devuelve 1;
}
}
Devuelve 0;
}