# include <iostream.h> # include <fstream.h> # include <stdlib.h> # include <string.h> # include <conio.h> # define LEFT 0 # define UP 1 # define RIGHT 2 # define DOWN 3 constchar get_digit(constchar); int main( ) { clrscr( ); fstream File("CP-06.txt",ios::in|ios::nocreate); if(!File) { cout<<"\n Unable to open the input file."<<endl; cout<<"\n Press any key to exit."; getch( ); exit(EXIT_FAILURE); } char Last_digit='0'; char Input[85]={NULL}; char Screen[25][80]={NULL}; int direction=0; int length_of_spiral=0; File.getline(Input,80); direction=atoi(Input); strset(Input,NULL); File.getline(Input,80); length_of_spiral=atoi(Input); int i=0; int j=0; int k=1; int x=12; int y=39; int number_of_digits_in_a_direction=1; for(i=0;i<25;i++) { for(j=0;j<80;j++) Screen[i][j]='.'; } Screen[x][y]=Last_digit; switch(direction) { case LEFT : y-=2; break; case UP : x-=2; break; case RIGHT : y+=2; break; case DOWN : x+=2; break; } do { for(i=0;i<4;i++) { for(j=0;j<number_of_digits_in_a_direction;j++) { Screen[x][y]=get_digit(Last_digit); Last_digit=Screen[x][y]; k++; if(j==(number_of_digits_in_a_direction-1)) { direction++; if(direction==4) direction=0; } if(k==length_of_spiral) break; switch(direction) { case LEFT : y-=2; break; case UP : x-=2; break; case RIGHT : y+=2; break; case DOWN : x+=2; break; } } if(k==length_of_spiral) break; if(i==1) number_of_digits_in_a_direction++; } if(k==length_of_spiral) break; number_of_digits_in_a_direction++; } while(1); window(40,13,41,14); textbackground(BLUE); textcolor(WHITE); cprintf("0"); window(1,1,1,1); for(i=0;i<25;i++) { for(j=0;j<80;j++) cout<<Screen[i][j]; } getch( ); return 0; } /*************************************************************************///------------------------ get_digit(const char) ----------------------///*************************************************************************/constchar get_digit(constchar Last_digit) { char Next_digit=NULL; switch(Last_digit) { case'0' : Next_digit='1'; break; case'1' : Next_digit='2'; break; case'2' : Next_digit='3'; break; case'3' : Next_digit='4'; break; case'4' : Next_digit='5'; break; case'5' : Next_digit='6'; break; case'6' : Next_digit='7'; break; case'7' : Next_digit='8'; break; case'8' : Next_digit='9'; break; case'9' : Next_digit='0'; break; } return Next_digit; }
No comments:
Post a Comment