rendered paste body#include <stdio.h>#include <stdlib.h>#include <math.h>#define Pi 3.141592654#define MAXARRAY 20int main (int argc, char ** argv) { int lineLength=0; double direction[MAXARRAY]; double ddirection=0; char grammar; double aangle; int k=0; int h=0; int z=0; int xStart[MAXARRAY]; int yStart[MAXARRAY]; int xEnd[MAXARRAY]; int yEnd[MAXARRAY]; float red=1; //red float green=0; //green float blue=0; //blue /* int noOfIterations; if (argc < 2) { printf ("you need to provide the number of iterations as arguments\n"); exit (EXIT_FAILURE); } noOfIterations = (int)(*argv[1]) - '0';*/ scanf("%d", &lineLength); scanf("%lf", &ddirection); scanf("%lf", &aangle); direction[k]=ddirection; xStart[k]= 0; yStart[k]= 0; while ((grammar = getchar()) !=EOF){ if (grammar!='\n'){ if (grammar=='G'){ green=green+0.1; } if (grammar=='B'){ blue=blue+0.1; } if (grammar=='R'){ red=red+0.1; } if (grammar=='g'){ green=green-0.1; } if (grammar=='b'){ blue=blue-0.1; } if (grammar=='r'){ red=red-0.1; } if (green<0 || green>1){ printf("Error, your green is out of range"); } if (blue<0 || blue>1){ printf("Error, your blue is out of range"); } if (red<0 || red>1){ printf("Error, your red is out of range"); } if (grammar=='+'){ ddirection=ddirection+aangle; direction[k]=ddirection; if (direction[k]<0){ direction[k]=direction[k]+2*Pi; } if (direction[k]<=Pi/2){ xEnd[k] = lineLength*sin(direction[k]); yEnd[k] = lineLength*cos(direction[k]); } if (direction[k] > Pi/2 && direction[k]<=Pi){ xEnd[k] = lineLength*sin(direction[k]); yEnd[k] = lineLength*cos(direction[k]); } if (direction[k]>Pi && direction[k]<=3*Pi/2){ xEnd[k] = lineLength*sin(direction[k]); yEnd[k] = lineLength*cos(direction[k]); } if (direction[k]>3*Pi/2){ xEnd[k] = lineLength*sin(direction[k]); yEnd[k] = lineLength*cos(direction[k]); } } if (grammar=='-'){ ddirection=ddirection-aangle; direction[k]=ddirection; if (direction[k]<0){ direction[k]=direction[k]+2*Pi; } if (direction[k]<=Pi/2){ xEnd[k] = lineLength*sin(direction[k]); yEnd[k] = lineLength*cos(direction[k]); } if (direction[k] > Pi/2 && direction[k]<=Pi){ xEnd[k] = lineLength*sin(direction[k]); yEnd[k] = lineLength*cos(direction[k]); } if (direction[k]>Pi && direction[k]<=3*Pi/2){ xEnd[k] = lineLength*sin(direction[k]); yEnd[k] = lineLength*cos(direction[k]); } if (direction[k]>3*Pi/2){ xEnd[k] = lineLength*sin(direction[k]); yEnd[k] = lineLength*cos(direction[k]); } } if (grammar=='F'){ h++; printf("Current direction: %lf\n",direction[k]); printf("Move forward in current direction.\n"); direction[k]=ddirection; if (direction[k]<0){ direction[k]=direction[k]+2*Pi; } if (direction[k]<=Pi/2){ xEnd[k] = lineLength*sin(direction[k]) + xStart[k]; yEnd[k] = lineLength*cos(direction[k]) + yStart[k]; } if (direction[k] > Pi/2 && direction[k]<=Pi){ xEnd[k] = lineLength*sin(direction[k])+ xStart[k]; yEnd[k] = lineLength*cos(direction[k])+ yStart[k]; } if (direction[k]>Pi && direction[k]<=3*Pi/2){ xEnd[k] = lineLength*sin(direction[k])+ xStart[k]; yEnd[k] = lineLength*cos(direction[k])+ yStart[k]; } if (direction[k]>3*Pi/2){ xEnd[k] = lineLength*sin(direction[k])+ xStart[k]; yEnd[k] = lineLength*cos(direction[k])+ yStart[k]; } k++; } if(grammar=='f'){ printf("Put in coordinates, just don't print them out.\n"); h++; direction[k]=ddirection; if (direction[k]<0){ direction[k]=direction[k]+2*Pi; } if (direction[k]<=Pi/2){ xEnd[k] = lineLength*sin(direction[k]) + xStart[k]; yEnd[k] = lineLength*cos(direction[k]) + yStart[k]; } if (direction[k] > Pi/2 && direction[k]<=Pi){ xEnd[k] = lineLength*sin(direction[k])+ xStart[k]; yEnd[k] = lineLength*cos(direction[k])+ yStart[k]; } if (direction[k]>Pi && direction[k]<=3*Pi/2){ xEnd[k] = lineLength*sin(direction[k])+ xStart[k]; yEnd[k] = lineLength*cos(direction[k])+ yStart[k]; } if (direction[k]>3*Pi/2){ xEnd[k] = lineLength*sin(direction[k])+ xStart[k]; yEnd[k] = lineLength*cos(direction[k])+ yStart[k]; } k++; } yStart[k] = yEnd[k-1]; xStart[k] = xEnd[k-1]; //k++; } } while (z<h){ printf("%d ",xStart[z]); printf("%d ",yStart[z]); printf("%d ",xEnd[z]); printf("%d ",yEnd[z]); printf("%f ",red); printf("%f ",green); printf("%f \n",blue); z++; } return (0);}