From 5f2820b6e2228db3efcd71a1ee73cb36723fbed0 Mon Sep 17 00:00:00 2001 From: Racoonicorn Date: Sun, 18 Dec 2016 22:36:00 +0100 Subject: [PATCH] Create roofus.c --- roofus.c | 192 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 roofus.c diff --git a/roofus.c b/roofus.c new file mode 100644 index 0000000..7dfa4a1 --- /dev/null +++ b/roofus.c @@ -0,0 +1,192 @@ +#define VERSION "0.01" + +#define N 5 +#include +#include +#include + +void start(); +void printm(); +void move(char * dir); +void nolow(); +int win(); +int error(); + +int matrix[N][N]; +int my_x=N/2; +int my_y=N/2; +int moves = 0; + +int main () { + char dir[20]; + char exit; + int end=0; + srand (time(NULL)); + + start(); + printm(); + while(end==0){ + printf("\nDirection? "); + scanf("%s", dir); + getchar(); + if(dir[0]=='0'){ + printf("\nExit? [y/n] "); + scanf("%c", &exit); + if(exit=='y'){ + printf("\n\n\n\nv%s", VERSION); + return moves; + }else{ + dir[0]='1'; + getchar(); + } + } + move(dir); + printm(); + end = win(); + } + return 0; +} + +void start(){ + int i, j; + for (i=0; i0){ + my_y--; + }else{ + stop=error(); + } + break; + case 's': + if(my_y < N-1){ + my_y++; + }else{ + stop=error(); + } + break; + case 'o': + stop=1; + break; + default: + stop=error(); + break; + } + if(stop==0){ + + if(*dir == 'd'){ + for (j=1+xinit;j<=4; j++){ + if(matrix[yinit][j]!=0){ + matrix[yinit][j]= matrix[yinit][j] - matrix[yinit][xinit]; + if(matrix[yinit][j]<0 && matrix[yinit][xinit]!=0) + matrix[yinit][j] = -matrix[yinit][j]; + } + } + } + if(*dir == 'a'){ + for (j=0;j=0; i--){ + if(matrix[i][my_x]!=0){ + matrix[i][my_x]= matrix[i][my_x] - matrix[yinit][xinit]; + if(matrix[i][my_x]<0 && matrix[yinit][xinit]!=0) + matrix[i][my_x] = -matrix[i][my_x]; + } + } + } + if(*dir == 's'){ + for (i=my_y;i0) + matrix[i][j] = (rand()%10)-10; + } + } +} + +void printm(){ + int i, j; + printf("\n\n"); + for (i=0; i "); + if(matrix[i][j]!=0) + printf("%d\t", matrix[i][j]); + else + printf(" \t"); + } + printf("\n\n"); + } +} + +int win(){ + int i, j, count=0; + for (i=0; i= N*(N-1)){ + printf("\nYou win! Moves: %d", moves); + return 1; + }else{ + return 0; + } +} + +int error(){ + printf("ERROR!!!"); + return 1; +}