All pastes #508783 Raw Edit

Untitled

public c v1 · immutable
·published 2007-05-25 04:25 UTC
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 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++;            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];            }            printf("%d ",xStart[k]);            printf("%d ",yStart[k]);               printf("%d ",xEnd[k]);               printf("%d ",yEnd[k]);                  printf("%f ",red);            printf("%f ",green);            printf("%f \n",blue);            k++;           }            if(grammar=='f'){            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];      }   }   return (0);}