commit 38dd1444393cf1e6ac0ab12a7ad11df112117d4d Author: Sanders Date: Thu May 5 08:43:42 2022 -0600 initial commit diff --git a/everything else/Untitled.png b/everything else/Untitled.png new file mode 100644 index 0000000..d6c5047 Binary files /dev/null and b/everything else/Untitled.png differ diff --git a/everything else/ansi escape squence example.c b/everything else/ansi escape squence example.c new file mode 100644 index 0000000..7b93672 --- /dev/null +++ b/everything else/ansi escape squence example.c @@ -0,0 +1,16 @@ +#include + +int main(void) +{ + int i, j, n; + + for (i = 0; i < 11; i++) { + for (j = 0; j < 10; j++) { + n = 10 * i + j; + if (n > 107) break; + printf("\033[%dm %3d\033[m", n, n); + } + printf("\n"); + } + return 0; +} diff --git a/everything else/ansi escape squence example.exe b/everything else/ansi escape squence example.exe new file mode 100644 index 0000000..9018762 Binary files /dev/null and b/everything else/ansi escape squence example.exe differ diff --git a/everything else/ansi escape squence example.o b/everything else/ansi escape squence example.o new file mode 100644 index 0000000..29caf82 Binary files /dev/null and b/everything else/ansi escape squence example.o differ diff --git a/everything else/arrays-2-final.png b/everything else/arrays-2-final.png new file mode 100644 index 0000000..4e7ce7a Binary files /dev/null and b/everything else/arrays-2-final.png differ diff --git a/everything else/arrays-final.png b/everything else/arrays-final.png new file mode 100644 index 0000000..bb94c8d Binary files /dev/null and b/everything else/arrays-final.png differ diff --git a/everything else/ascii-art (1).ans b/everything else/ascii-art (1).ans new file mode 100644 index 0000000..2975e22 --- /dev/null +++ b/everything else/ascii-art (1).ans @@ -0,0 +1 @@ +\033[107;40m\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[8;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;233m \033[38;5;137m(\033[38;5;137m(\033[38;5;137m(\033[38;5;180m#\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;232m \033[38;5;144m#\033[38;5;137m(\033[38;5;137m(\033[38;5;095m/\033[38;5;234m.\033[38;;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;095m/\033[38;5;137m/\033[38;5;137m(\033[38;5;143m#\033[38;5;137m(\033[38;5;137m(\033[38;5;180m#\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;137m(\033[38;5;180m#\033[38;5;137m(\033[38;5;137m(\033[38;5;180m#\033[38;5;138m(\033[38;5;137m(\033[38;5;052m.\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5016m \033[38;5;095m/\033[38;5;144m#\033[38;5;144m#\033[38;5;138m(\033[38;5;137m(\033[38;5;137m(\033[38;5;180m#\033[38;5;137m(\033[38;5;180m#\033[38;5;137m/\033[38;5;173m/\033[38;5;173m(\033[38;5;173m(\033[38;5;173m/\033[38;5;173m(\033[38;5;173m(\033[38;5;137m/\033[38;5;137m/\033[38;5;180m#\033[38;5;137m(\033[38;5;137m(\033[38;5;137m(\033[38;5;137m(\033[38;5;144m#\033[38;5;144m#\033[38;5;138m(\033[38;5;235m.\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;095m*\033[38;5;138m(\033[38;5;137m(\033[38;5;137m(\033[38;5;137m/\033[38;5;144m#\033[38;5;180m#\033[38;5;173m(\033[38;5;173m(\033[38;5;130m/\033[38;5;130m/\033[38;5;130m*\033[38;5;130m/\033[38;5;130m/\033[38;5;131m/\033[38;5;130m/\033[38;5;173m/\033[38;5;137m(\033[38;5;17m(\033[38;5;138m#\033[38;5;095m/\033[38;5;131m/\033[38;5;137m/\033[38;5;144m#\033[38;5;144m#\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;232m \033[38;5;138m(\033[38;5;180m#\033[38;5;144m#\033[38;5;137m(\033[38;5;137m/\033[38;5;137m/\033[38;5;137m(\033[38;5;137m/\033[38;5;173m(\033[38;5;130m/\033[38;5;130m*\033[38;5;130m*\033[38;5;137m(\033[38;5;130m*\033[38;5;130m/\033[38;5;130m*\033[38;5;130m*\033[38;5;137m/\033[38;5;173m(\033[38;5;173m/\033[38;5;137m/\033[38;5;137m(\033[38;5;180m#\033[38;5;137m(\033[38;5;173m#\033[38;5;180m%\033[38;5;235m.\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016 033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;235m.\033[38;5;180m#\033[38;5;180m#\033[38;5;137m(\033[38;5;137m/\033[38;5;173m(\033[38;5;137m(\033[38;5;173m(\033[38;5;181m%\033[38;5;180m#\033[38;5;180m%\033[38;5;131m/\033[38;5;173m#\033[38;5;137m/\033[38;5;130m*\033[38;5;137m/\033[38;5;137m/\033[38;5;179m#\033[38;5;187m%\033[38;5;180m%\033[38;5;180m%\033[38;5;179m#\033[38;5;173m(\033[38;5;173m(\033[38;5;173m(\033[38;5;180m#\033[38;5;180m%\033[38;5;187m%\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;138m(\033[38;5;137m(\033[38;5;131m*\033[38;5;094m*\033[38;5;094m,\033[38;5;130m*\033[38;5;179m#\033[38;5;180m#\033[38;5;137m/\033[38;5;232m \033[38;5;059m*\033[38;5;237m,\033[38;5;095m/\03[38;5;131m/\033[38;5;137m(\033[38;5;137m(\033[38;5;180m#\033[38;5;236m.\033[38;5;239m*\033[38;5;016m \033[38;5;137m/\033[38;5;180m%\033[38;5;173m(\033[38;5;173m(\033[38;5;130m/\033[38;5;137m(\033[38;5;173m(\033[38;5;180m#\033[38;5;144m#\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;240m*\033[38;5;137m(\033[38;5;094m*\033[38;5;095m*\033[38;5;095m*\033[38;5;137m(\033[38;5;137m(\033[38;5;130m*\033[38;5;131m/\033[38;5;131m/\033[38;5;130m/\033[38;5;173m(\033[38;5;131m/\033[38;5;094m,\033[38;5;179m#\033[38;5;180m#\033[38;5;179m#\033[38;5;094m*\033[38;5;173m(\033[38;5;187m%\033[38;5;137m/\033[38;5;173m(\033[38;5;173m(\033[38;5;131m/\033[38;5;137m(\033[38;5;137m(\033[38;5;137m(\033[38;5;131m/\033[38;5;137m/\033[38;5;137m(\033[38;5;237m,\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[3;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;232m \033[38;5;059m*\033[38;5;095m/\033[38;5;058m,\033[38;5;058m,\033[38;5;052m.\033[38;5;236m,\033[38;5;058m,\033[38;5;058m,\033[38;5;095m*\033[38;5;094m*\033[38;5;094m,\033[38;5;131m/\033[38;5;131m/\033[38;5;174m#\033[38;5;174m#\033[38;5;180m%\033[38;5;137m(\033[38;5;173m(\033[38;5;131m/\033[38;5;173m(\033[38;5;094m*\033[38;5;094m,\033[38;5;137m(\033[38;5;095m*\033[38;5;058m,\033[38;5;094m*\033[38;5;137m/\033[38;5;138m(\033[38;5;235m.\033[38;5;232m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;095m*\033[38;5;101m(\033[38;5;137m(\033[38;5;239m*\033[38;5;058m,\033[385;058m,\033[38;5;251m%\033[38;5;102m(\033[38;5;254m@\033[38;5;144m#\033[38;5;058m,\033[38;5;131m/\033[38;5;144m#\033[38;5;144m#\033[38;5;101m(\033[38;5;144m#\033[38;5;144m#\033[38;5;137m(\033[38;5;137m(\033[38;5;137m/\033[38;5;095m*\033[38;5;095m*\033[38;5;094m,\033[38;5;094m*\033[38;5;095m*\033[38;5;137m(\033[38;5;138m(\033[38;5;095m/\033[38;5;237m,\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;233m \033[38;5;239m,\033[38;5;095m*\033[38;5;094m*\033[38;5;095m*\033[38;5;095m*\033[38;5;095m*\033[38;5;138m(\033[38;5;095m*\033[38;5;238m,\033[38;5;237m,\033[38;5;236m.\033[38;5;235m.\033[38;5;237m,\033[38;5;240m*\033[38;5;095m/\033[38;5;101m/\033[38;5;101m/\033[38;5;101m/\033[38;5;058m*\033[38;5;058m,\033[38;5;007m%\033[38;5;095m*\033[38;5;137m/\033[38;5;137m/\033[38;5;094m*\033[38;5;137m/\033[38;5;44m#\033[38;5;095m/\033[38;5;237m,\033[38;5;235m.\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;234m.\033[38;5;101m/\033[38;5;137m(\033[38;5;101m/\033[38;5;095m/\033[38;5;137m/\033[38;5;137m(\033[38;5;095m/\033[38;5;095m*\033[38;5;095m/\033[38;5;095m*\033[38;5;058m,\033[38;5;235m.\033[38;5;095m*\033[38;5;238m,\033[38;5;236m.\033[38;5;235m.\033[38;5;236m.\033[38;5;094m*\033[38;5;058m,\033[38;5;058m,\033[38;5;058m,\033[38;5;058m,\033[38;5;052m.\033[38;5;058m,\033[38;5;144m#\033[38;5;144m#\033[38;5;095m/\033[38;5;138m(\033[38;5;131m/\033[38;5;095m/\033[38;5;095m/\033[38;5;236m.\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;101m/\033[38;5;138m(\033[38;5;05m/\033[38;5;095m/\033[38;5;101m/\033[38;5;137m(\033[38;5;137m/\033[38;5;095m/\033[38;5;095m/\033[38;5;095m*\033[38;5;095m/\033[38;5;095m/\033[38;5;094m*\033[38;5;094m*\033[38;5;095m*\033[38;5;095m*\033[38;5;094m*\033[38;5;094m*\033[38;5;094m,\033[38;5;058m,\033[38;5;094m,\033[38;5;094m*\033[38;5;094m*\033[38;5;094m,\033[38;5;094m*\033[38;5;094m*\033[38;5;094m*\033[38;5;095m*\033[38;5;137m(\033[38;5;144m#\033[38;5;144m#\033[38;5;131m/\033[38;5;137m(\033[38;5;095m/\033[38;5;234m.\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;235m.\033[38;5;095m/\033[38;5;137m(\033[38;5;095m/\033[38;5;095m/\033[38;5;095m/\033[38;5;101m/\033[38;5;101m/\033[38;5;095m/\033[38;5;095m/\033[38;5;137m(\033[38;5;137m/\033[38;5;095m*\033[38;5;094m,\033[38;5;095m/\033[38;5;137m/\033[38;5;137m(\033[38;5;137m/\033[38;5;095m/\033[38;5;131m/\033[38;5;094m*\033[38;5;095m*\033[38;5;095m*\033[38;5;131m/\033[38;5;137m\033[38;5;137m(\033[38;5;137m(\033[38;5;137m(\033[38;5;137m(\033[38;5;137m(\033[38;5;131m/\033[38;5;131m/\033[38;5;131m/\033[38;5;137m(\033[38;5;137m(\033[38;5;137m(\033[38;5;238m,\033[38;5;233m \033[38;5;016m \033[38;5;232m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;236m.\033[38;5;239m*\033[38;5;101m/\033[38;5;137m(\033[38;5;095m*\033[38;5;095m*\033[38;5;095m/\033[38;5;058m,\033[38;5;239m*\033[38;5;095m*\033[38;5;239m*\033[38;5;095m*\033[38;5;137m(\033[38;5;137m(\033[38;5;137m(\033[38;5;095m/\033[38;5;095m*\033[38;5;094m,\033[38;5;094m,\033[38;5;094m*\033[38;5;094m,\033[38;5;094m,\033[38;5;094m,\033[38;5;094m*\033[38;5;095m*\033[38;5;131m/\033[38;5;131m/\033[38;5;094m*\033[38;5;131m/\033[38;5;095m/\033[38;5;137m/\033[38;5;144m#\033[38;5;137m(\033[38;5;138m(\033[38;5;137m(\033[38;5;144m#\033[38;5;144m#\033[38;5;235m.\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m 033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;238m,\033[38;5;138m(\033[38;5;101m/\033[38;5;095m*\033[38;5;095m*\033[38;5;239m*\033[38;5;095m*\033[38;5;095m*\033[38;5;095m*\033[38;5;095m*\033[38;5;239m*\033[38;5;240m*\033[38;5;058m,\033[38;5;058m,\033[38;5;238m,\033[38;5;094m*\033[38;5;137m(\033[38;5;137m(\033[38;5;137m/\033[38;5;137m/\033[38;5;095m*\033[38;5;095m*\033[38;5;095m*\033[38;5;137m(\033[38;5;137m(\033[38;5;137m/\033[38;5;137m(\033[38;5;137m(\033[38;5;137m/\033[38;5;137m(\033[38;5;095m/\033[38;5;137m(\033[38;5;137m/\033[38;5;137m(\033[38;5;137m/\033[38;5;138m(\033[38;5;144m#\033[38;5;095m/\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;239m*\033[38;5;144m#\033[38;5;137m(\033[38;5;095m*\033[38;5;095m/\033[38;5;094m*\033[38;5;095m*\033[38;5;239m,\033[38;5;095m*\033[38;5;095m/\033[38;5;101m/\033[38;5;239m,\033[38;5;238m,\033[38;5;236m.\033[38;5;239m*\033[38;5;095m*\033[38;5;095m*\03[38;5;095m*\033[38;5;101m(\033[38;5;095m*\033[38;5;137m(\033[38;5;137m(\033[38;5;137m/\033[38;5;095m/\033[38;5;095m*\033[38;5;094m*\033[38;5;095m*\033[38;5;095m*\033[38;5;095m*\033[38;5;137m(\033[38;5;137m/\033[38;5;101m/\033[38;5;137m(\033[38;5;137m(\033[38;5;101m/\033[38;5;138m(\033[38;5;144m#\033[38;5;095m/\033[38;5;233m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \033[38;5;016m \n\033[0m\n \ No newline at end of file diff --git a/everything else/ascii-art.ans b/everything else/ascii-art.ans new file mode 100644 index 0000000..621986c --- /dev/null +++ b/everything else/ascii-art.ans @@ -0,0 +1 @@ +\033[107;40m\033[38;5;237m,\033[38;5;237m,\033[38;5;239m*\033[38;5;238m,\033[38;5;240m*\033[38;5;242m/\033[38;5;237m,\033[38;5;102m(\033[38;5;102m(\033[38;5;242m/\033[38;5;240m*\033[38;5;101m/\033[38;5;101m/\033[38;5;101m/\033[38;5;101m/\033[38;5;241m*\033[38;5;059m*\033[38;5;243m/\033[38;5;008m/\033[38;5;059m*\033[38;5;241m*\033[38;5;102m(\033[38;5;101m/\033[38;5;102m(\033[38;5;241m*\033[38;5;240m*\033[38;5;059m*\033[38;5;242m/\033[38;5;241m*\033[38;5;059m*\033[38;5;242m/\033[38;5;059m*\033[38;5;241m*\033[38;5;242m/\033[38;5;239m,\033[38;5;246m(\033[38;5;236m.\033[38;5;245m(\033[38;5;095m/\033[38;5;181m%\033[38;5;181m%\033[38;5;224m&\033[38;5;224m&\033[38;5;223m&\033[38;5;181m&\033[38;5;253m&\033[38;5;252m&\033[38;5;252m&\n\033[38;5;059m*\033[38;5;239m*\033[38;5;239m*\033[38;5;239m,\033[38;5;241m/\033[38;5;246m(\033[38;5;245m(\033[38;5;101m/\033[38;5;240m*\033[38;5;243m/\033[38;5;241m*\033[38;5;101m/\033[38;5;240m*\033[38;5;241m/\033[38;5;240m*\033[38;5;241m*\033[38;5;059m*\033[38;5;238m,\033[38;5;241m*\033[38;5;241m*\033[38;5;241m*\033[38;5;241m*\033[38;5;008m/\033[38;5;242m/\033[38;5;059m*\033[38;5;059m*\033[38;5;241m*\033[38;5;241m/\033[38;5;008m/\033[38;5;008m/\033[38;5;244m/\033[38;5;242m/\033[38;5;243m/\033[38;5;243m/\033[38;5;241m*\033[38;5;246m(\033[38;5;248m#\033[38;5;250m%\033[38;5;252m&\033[38;5;187m&\033[38;5;253m&\033[38;5;253m&\033[38;5;187m&\033[38;5;253m&\033[38;5;253m&\033[38;5;252m&\033[38;5;253m&\033[38;5;253m&\n\033[38;5;144m#\033[38;5;241m*\033[38;5;240m*\033[38;5;241m*\033[38;5;240m*\033[38;5;239m*\033[38;5;240m*\033[38;5;235m.\033[38;5;238m,\033[38;5;242m/\033[38;5;246m(\033[38;5;007m%\033[38;5;250m%\033[38;5;247m#\033[38;5;247m#\033[38;5;059m*\033[38;5;242m/\033[38;5;240m*\033[38;5;239m*\033[38;5;243m/\033[38;5;242m/\033[38;5;236m,\033[38;5;242m/\033[38;5;249m%\033[38;5;247m#\033[38;5;250m%\033[38;5;251m%\033[38;5;251m%\033[38;5;102m(\033[38;5;248m#\033[38;5;252m&\033[38;5;248m#\033[38;5;145m#\033[38;5;252m&\033[38;5;230m@\033[38;5;253m&\033[38;5;224m&\033[38;5;252m&\033[38;5;224m&\033[38;5;224m&\033[38;5;253m&\033[38;5;252m&\033[38;5;252m&\033[38;5;253m&\033[38;5;224m@\033[38;5;230m@\033[38;5;224m@\033[38;5;224m&\n\033[38;5;059m*\033[38;5;241m*\033[38;5;241m*\033[38;5;059m*\033[38;5;240m*\033[38;5;236m,\033[38;5;246m(\033[38;5;101m/\033[38;5;241m*\033[38;5;245m(\033[38;5;244m(\033[38;5;255m@\033[38;5;255m@\033[38;5;255m@\033[38;5;255m@\033[38;5;255m@\033[38;5;188m&\033[38;5;255m@\033[38;5;255m@\033[38;5;253m&\033[38;5;254m&\033[38;5;188m&\033[38;5;224m&\033[38;5;253m&\033[38;5;187m&\033[38;5;181m%\033[38;5;181m%\033[38;5;224m&\033[38;5;188m&\033[38;5;188m&\033[38;5;224m@\033[38;5;224m&\033[38;5;224m@\033[38;5;253m&\033[38;5;252m&\033[38;5;224m@\033[38;5;224m&\033[38;5;253m&\033[38;5;224m@\033[38;5;253m&\033[38;5;253m&\033[38;5;253m&\033[38;5;253m&\033[38;5;253m&\033[38;5;253m&\033[38;5;224m&\033[38;5;224m&\033[38;5;188m&\n\033[38;5;243m/\033[38;5;241m*\033[38;5;241m*\033[38;5;239m,\033[38;5;242m/\033[38;5;101m/\033[38;5;144m#\033[38;5;239m*\033[38;5;243m/\033[38;5;244m/\033[38;5;059m*\033[38;5;102m(\033[38;5;241m*\033[38;5;252m&\033[38;5;255m@\033[38;5;254m@\033[38;5;254m&\033[38;5;254m&\033[38;5;188m&\033[38;5;252m&\033[38;5;253m&\033[38;5;252m&\033[38;5;187m&\033[38;5;181m%\033[38;5;181m%\033[38;5;223m&\033[38;5;187m&\033[38;5;145m#\033[38;5;251m%\033[38;5;252m&\033[38;5;255m@\033[38;5;188m&\033[38;5;255m@\033[38;5;255m@\033[38;5;251m%\033[38;5;188m&\033[38;5;252m&\033[38;5;224m&\033[38;5;253m&\033[38;5;224m&\033[38;5;224m&\033[38;5;224m&\033[38;5;224m@\033[38;5;253m&\033[38;5;253m&\033[38;5;224m&\033[38;5;187m&\033[38;5;224m&\n\033[38;5;101m/\033[38;5;240m*\033[38;5;242m/\033[38;5;101m/\033[38;5;102m(\033[38;5;246m(\033[38;5;101m/\033[38;5;243m/\033[38;5;246m(\033[38;5;243m/\033[38;5;245m(\033[38;5;246m(\033[38;5;244m(\033[38;5;244m/\033[38;5;243m/\033[38;5;253m&\033[38;5;188m&\033[38;5;254m&\033[38;5;252m&\033[38;5;253m&\033[38;5;181m%\033[38;5;253m&\033[38;5;181m%\033[38;5;181m%\033[38;5;187m&\033[38;5;224m&\033[38;5;252m&\033[38;5;145m#\033[38;5;248m#\033[38;5;188m&\033[38;5;251m%\033[38;5;253m&\033[38;5;253m&\033[38;5;253m&\033[38;5;254m@\033[38;5;251m%\033[38;5;181m%\033[38;5;224m&\033[38;5;181m%\033[38;5;187m&\033[38;5;224m&\033[38;5;188m&\033[38;5;224m@\033[38;5;224m&\033[38;5;253m&\033[38;5;187m&\033[38;5;224m&\033[38;5;223m&\n\033[38;5;059m*\033[38;5;239m*\033[38;5;144m(\033[38;5;242m/\033[38;5;240m*\033[38;5;237m,\033[38;5;241m*\033[38;5;242m/\033[38;5;239m,\033[38;5;245m(\033[38;5;241m/\033[38;5;243m/\033[38;5;247m#\033[38;5;101m/\033[38;5;095m/\033[38;5;181m%\033[38;5;187m%\033[38;5;187m&\033[38;5;187m&\033[38;5;187m&\033[38;5;253m&\033[38;5;144m#\033[38;5;181m%\033[38;5;224m&\033[38;5;230m@\033[38;5;251m%\033[38;5;249m#\033[38;5;224m&\033[38;5;224m@\033[38;5;250m%\033[38;5;254m@\033[38;5;252m&\033[38;5;252m&\033[38;5;253m&\033[38;5;253m&\033[38;5;188m&\033[38;5;007m%\033[38;5;249m%\033[38;5;181m%\033[38;5;181m%\033[38;5;181m%\033[38;5;187m&\033[38;5;224m&\033[38;5;187m&\033[38;5;224m&\033[38;5;187m%\033[38;5;181m%\033[38;5;187m&\n\033[38;5;239m*\033[38;5;238m,\033[38;5;101m/\033[38;5;241m*\033[38;5;240m*\033[38;5;242m/\033[38;5;102m(\033[38;5;246m(\033[38;5;242m/\033[38;5;101m/\033[38;5;242m/\033[38;5;243m/\033[38;5;244m/\033[38;5;241m*\033[38;5;138m(\033[38;5;187m&\033[38;5;252m&\033[38;5;252m&\033[38;5;181m%\033[38;5;181m%\033[38;5;253m&\033[38;5;251m%\033[38;5;144m#\033[38;5;181m%\033[38;5;252m&\033[38;5;250m%\033[38;5;231m@\033[38;5;015m@\033[38;5;255m@\033[38;5;254m&\033[38;5;255m@\033[38;5;255m@\033[38;5;254m@\033[38;5;254m@\033[38;5;253m&\033[38;5;188m&\033[38;5;188m&\033[38;5;249m%\033[38;5;249m%\033[38;5;252m&\033[38;5;181m%\033[38;5;181m#\033[38;5;180m#\033[38;5;187m&\033[38;5;181m%\033[38;5;181m%\033[38;5;181m%\033[38;5;181m%\n\033[38;5;239m,\033[38;5;238m,\033[38;5;239m*\033[38;5;242m/\033[38;5;240m*\033[38;5;242m/\033[38;5;246m(\033[38;5;247m#\033[38;5;101m/\033[38;5;101m(\033[38;5;241m*\033[38;5;101m/\033[38;5;242m/\033[38;5;095m/\033[38;5;144m#\033[38;5;181m#\033[38;5;187m&\033[38;5;181m%\033[38;5;251m%\033[38;5;253m&\033[38;5;015m@\033[38;5;253m&\033[38;5;252m&\033[38;5;138m#\033[38;5;252m&\033[38;5;224m&\033[38;5;255m@\033[38;5;255m@\033[38;5;255m@\033[38;5;015m@\033[38;5;015m@\033[38;5;253m&\033[38;5;254m&\033[38;5;255m@\033[38;5;254m@\033[38;5;254m@\033[38;5;015m@\033[38;5;252m&\033[38;5;245m(\033[38;5;249m%\033[38;5;251m%\033[38;5;181m%\033[38;5;144m#\033[38;5;138m(\033[38;5;181m%\033[38;5;181m%\033[38;5;181m%\033[38;5;144m#\n\033[38;5;240m*\033[38;5;059m*\033[38;5;059m*\033[38;5;240m*\033[38;5;239m,\033[38;5;059m*\033[38;5;241m*\033[38;5;241m/\033[38;5;241m*\033[38;5;242m/\033[38;5;239m,\033[38;5;241m*\033[38;5;095m/\033[38;5;180m#\033[38;5;144m#\033[38;5;138m(\033[38;5;187m&\033[38;5;181m%\033[38;5;252m&\033[38;5;188m&\033[38;5;015m@\033[38;5;015m@\033[38;5;145m#\033[38;5;181m%\033[38;5;252m&\033[38;5;224m@\033[38;5;254m@\033[38;5;255m@\033[38;5;255m@\033[38;5;255m@\033[38;5;015m@\033[38;5;255m@\033[38;5;015m@\033[38;5;255m@\033[38;5;255m@\033[38;5;254m@\033[38;5;252m&\033[38;5;252m&\033[38;5;249m%\033[38;5;252m&\033[38;5;248m#\033[38;5;181m%\033[38;5;144m#\033[38;5;138m(\033[38;5;138m#\033[38;5;181m%\033[38;5;181m%\033[38;5;180m#\n\033[38;5;101m/\033[38;5;059m*\033[38;5;059m*\033[38;5;246m(\033[38;5;244m/\033[38;5;241m*\033[38;5;241m*\033[38;5;239m,\033[38;5;241m/\033[38;5;239m,\033[38;5;144m#\033[38;5;144m#\033[38;5;138m#\033[38;5;144m#\033[38;5;137m(\033[38;5;180m#\033[38;5;180m#\033[38;5;138m(\033[38;5;145m#\033[38;5;252m&\033[38;5;188m&\033[38;5;255m@\033[38;5;224m&\033[38;5;181m%\033[38;5;181m%\033[38;5;224m@\033[38;5;015m@\033[38;5;255m@\033[38;5;015m@\033[38;5;231m@\033[38;5;254m&\033[38;5;251m%\033[38;5;015m@\033[38;5;015m@\033[38;5;254m&\033[38;5;254m&\033[38;5;188m&\033[38;5;007m%\033[38;5;252m&\033[38;5;253m&\033[38;5;181m%\033[38;5;181m%\033[38;5;181m%\033[38;5;180m#\033[38;5;180m#\033[38;5;144m#\033[38;5;138m(\033[38;5;180m#\n\033[38;5;241m*\033[38;5;241m*\033[38;5;101m/\033[38;5;245m(\033[38;5;145m#\033[38;5;252m&\033[38;5;246m(\033[38;5;059m*\033[38;5;250m%\033[38;5;237m,\033[38;5;248m#\033[38;5;244m/\033[38;5;239m,\033[38;5;102m(\033[38;5;144m#\033[38;5;144m#\033[38;5;144m#\033[38;5;251m%\033[38;5;251m%\033[38;5;145m#\033[38;5;249m#\033[38;5;138m#\033[38;5;138m#\033[38;5;181m%\033[38;5;138m(\033[38;5;138m#\033[38;5;252m&\033[38;5;254m@\033[38;5;252m&\033[38;5;145m#\033[38;5;254m&\033[38;5;255m@\033[38;5;255m@\033[38;5;255m@\033[38;5;253m&\033[38;5;252m&\033[38;5;253m&\033[38;5;007m%\033[38;5;007m%\033[38;5;249m%\033[38;5;138m#\033[38;5;138m(\033[38;5;138m#\033[38;5;144m#\033[38;5;180m%\033[38;5;144m#\033[38;5;138m(\033[38;5;138m#\n\033[38;5;065m/\033[38;5;242m/\033[38;5;241m*\033[38;5;101m/\033[38;5;240m*\033[38;5;238m,\033[38;5;102m(\033[38;5;240m*\033[38;5;237m,\033[38;5;235m.\033[38;5;236m.\033[38;5;240m*\033[38;5;243m/\033[38;5;246m(\033[38;5;102m(\033[38;5;145m#\033[38;5;007m%\033[38;5;251m%\033[38;5;252m&\033[38;5;188m&\033[38;5;252m&\033[38;5;145m#\033[38;5;138m(\033[38;5;102m(\033[38;5;245m(\033[38;5;251m%\033[38;5;255m@\033[38;5;254m@\033[38;5;249m%\033[38;5;247m#\033[38;5;253m&\033[38;5;253m&\033[38;5;252m&\033[38;5;007m%\033[38;5;007m%\033[38;5;007m%\033[38;5;007m%\033[38;5;145m#\033[38;5;102m(\033[38;5;101m(\033[38;5;138m(\033[38;5;095m/\033[38;5;138m(\033[38;5;101m/\033[38;5;138m(\033[38;5;138m(\033[38;5;181m%\033[38;5;144m#\n\033[38;5;244m/\033[38;5;240m*\033[38;5;239m*\033[38;5;242m/\033[38;5;241m*\033[38;5;101m/\033[38;5;242m/\033[38;5;240m*\033[38;5;236m.\033[38;5;236m.\033[38;5;240m*\033[38;5;240m*\033[38;5;241m*\033[38;5;236m.\033[38;5;242m/\033[38;5;245m(\033[38;5;138m#\033[38;5;145m#\033[38;5;138m#\033[38;5;138m(\033[38;5;144m#\033[38;5;008m(\033[38;5;247m#\033[38;5;250m%\033[38;5;248m#\033[38;5;246m(\033[38;5;248m#\033[38;5;145m#\033[38;5;248m#\033[38;5;246m(\033[38;5;247m#\033[38;5;247m#\033[38;5;248m#\033[38;5;250m%\033[38;5;250m%\033[38;5;250m%\033[38;5;241m*\033[38;5;242m/\033[38;5;238m,\033[38;5;237m,\033[38;5;237m,\033[38;5;240m*\033[38;5;238m,\033[38;5;240m*\033[38;5;240m*\033[38;5;235m.\033[38;5;236m,\033[38;5;239m*\n\033[38;5;242m/\033[38;5;101m/\033[38;5;243m/\033[38;5;241m*\033[38;5;240m*\033[38;5;246m(\033[38;5;242m/\033[38;5;240m*\033[38;5;244m(\033[38;5;243m/\033[38;5;242m/\033[38;5;240m*\033[38;5;243m/\033[38;5;239m*\033[38;5;237m,\033[38;5;239m*\033[38;5;138m(\033[38;5;144m#\033[38;5;138m(\033[38;5;138m(\033[38;5;138m#\033[38;5;144m#\033[38;5;138m#\033[38;5;095m/\033[38;5;008m(\033[38;5;102m(\033[38;5;248m#\033[38;5;007m%\033[38;5;249m%\033[38;5;250m%\033[38;5;246m(\033[38;5;246m(\033[38;5;247m#\033[38;5;237m,\033[38;5;241m*\033[38;5;247m#\033[38;5;246m(\033[38;5;237m,\033[38;5;237m,\033[38;5;238m,\033[38;5;237m,\033[38;5;240m*\033[38;5;236m.\033[38;5;236m,\033[38;5;234m.\033[38;5;241m*\033[38;5;238m,\033[38;5;236m.\n\033[38;5;101m/\033[38;5;101m/\033[38;5;242m/\033[38;5;243m/\033[38;5;243m/\033[38;5;242m/\033[38;5;239m*\033[38;5;239m,\033[38;5;243m/\033[38;5;244m/\033[38;5;246m(\033[38;5;246m(\033[38;5;240m*\033[38;5;237m,\033[38;5;238m,\033[38;5;237m,\033[38;5;095m/\033[38;5;102m(\033[38;5;138m(\033[38;5;102m(\033[38;5;101m/\033[38;5;144m#\033[38;5;138m#\033[38;5;138m(\033[38;5;244m(\033[38;5;242m/\033[38;5;243m/\033[38;5;250m%\033[38;5;242m/\033[38;5;241m*\033[38;5;102m(\033[38;5;239m,\033[38;5;236m.\033[38;5;239m*\033[38;5;239m,\033[38;5;239m*\033[38;5;236m.\033[38;5;235m.\033[38;5;246m(\033[38;5;241m*\033[38;5;235m.\033[38;5;238m,\033[38;5;237m,\033[38;5;059m*\033[38;5;239m,\033[38;5;101m/\033[38;5;237m,\033[38;5;238m,\n\033[38;5;243m/\033[38;5;243m/\033[38;5;247m#\033[38;5;242m/\033[38;5;240m*\033[38;5;101m/\033[38;5;240m*\033[38;5;238m,\033[38;5;241m*\033[38;5;241m*\033[38;5;244m/\033[38;5;059m*\033[38;5;240m*\033[38;5;059m*\033[38;5;242m/\033[38;5;241m/\033[38;5;238m,\033[38;5;245m(\033[38;5;095m/\033[38;5;240m*\033[38;5;101m/\033[38;5;240m*\033[38;5;240m*\033[38;5;241m*\033[38;5;238m,\033[38;5;243m/\033[38;5;059m*\033[38;5;247m#\033[38;5;008m/\033[38;5;245m(\033[38;5;243m/\033[38;5;238m,\033[38;5;238m,\033[38;5;241m*\033[38;5;234m.\033[38;5;238m,\033[38;5;236m.\033[38;5;238m,\033[38;5;237m,\033[38;5;239m*\033[38;5;101m/\033[38;5;241m*\033[38;5;240m*\033[38;5;059m*\033[38;5;237m,\033[38;5;101m/\033[38;5;241m*\033[38;5;101m/\n\033[38;5;248m#\033[38;5;245m(\033[38;5;246m(\033[38;5;247m#\033[38;5;248m#\033[38;5;101m/\033[38;5;239m*\033[38;5;240m*\033[38;5;237m,\033[38;5;239m*\033[38;5;239m*\033[38;5;239m*\033[38;5;101m/\033[38;5;008m/\033[38;5;248m#\033[38;5;059m*\033[38;5;242m/\033[38;5;101m(\033[38;5;101m/\033[38;5;101m/\033[38;5;240m*\033[38;5;059m*\033[38;5;241m*\033[38;5;241m*\033[38;5;242m/\033[38;5;242m/\033[38;5;240m*\033[38;5;242m/\033[38;5;246m(\033[38;5;059m*\033[38;5;242m/\033[38;5;239m*\033[38;5;239m*\033[38;5;239m*\033[38;5;238m,\033[38;5;238m,\033[38;5;237m,\033[38;5;237m,\033[38;5;237m,\033[38;5;238m,\033[38;5;239m,\033[38;5;239m*\033[38;5;101m(\033[38;5;240m*\033[38;5;238m,\033[38;5;241m*\033[38;5;059m*\033[38;5;239m,\n\033[38;5;239m*\033[38;5;241m*\033[38;5;246m(\033[38;5;245m(\033[38;5;102m(\033[38;5;246m(\033[38;5;101m/\033[38;5;059m*\033[38;5;238m,\033[38;5;242m/\033[38;5;239m*\033[38;5;242m/\033[38;5;240m*\033[38;5;059m*\033[38;5;059m*\033[38;5;242m/\033[38;5;059m*\033[38;5;101m/\033[38;5;237m,\033[38;5;241m*\033[38;5;237m,\033[38;5;240m*\033[38;5;059m*\033[38;5;240m*\033[38;5;059m*\033[38;5;239m*\033[38;5;243m/\033[38;5;246m(\033[38;5;242m/\033[38;5;008m/\033[38;5;059m*\033[38;5;240m*\033[38;5;238m,\033[38;5;240m*\033[38;5;236m.\033[38;5;236m,\033[38;5;238m,\033[38;5;237m,\033[38;5;239m*\033[38;5;239m*\033[38;5;237m,\033[38;5;059m*\033[38;5;065m*\033[38;5;238m,\033[38;5;240m*\033[38;5;240m*\033[38;5;059m*\033[38;5;242m/\n\033[0m\n \ No newline at end of file diff --git a/everything else/blinktest.c b/everything else/blinktest.c new file mode 100644 index 0000000..3ba5a20 --- /dev/null +++ b/everything else/blinktest.c @@ -0,0 +1,6 @@ +#include + +int main() { + printf("\033[5mA"); + getch(); +} diff --git a/everything else/blinktest.exe b/everything else/blinktest.exe new file mode 100644 index 0000000..bac7d3e Binary files /dev/null and b/everything else/blinktest.exe differ diff --git a/everything else/blinktest.o b/everything else/blinktest.o new file mode 100644 index 0000000..1447406 Binary files /dev/null and b/everything else/blinktest.o differ diff --git a/everything else/esc test.c b/everything else/esc test.c new file mode 100644 index 0000000..f32ab4d --- /dev/null +++ b/everything else/esc test.c @@ -0,0 +1,6 @@ +#include + +int main() { + char esc[] = {'\033'}; + printf("%c %d",esc[1],esc[1]); +} diff --git a/everything else/esc test.exe b/everything else/esc test.exe new file mode 100644 index 0000000..3a18e15 Binary files /dev/null and b/everything else/esc test.exe differ diff --git a/everything else/esc test.o b/everything else/esc test.o new file mode 100644 index 0000000..82211c6 Binary files /dev/null and b/everything else/esc test.o differ diff --git a/everything else/george text.c b/everything else/george text.c new file mode 100644 index 0000000..c4d946d --- /dev/null +++ b/everything else/george text.c @@ -0,0 +1,12 @@ +#include + +int main() { + printf("##*#*+#==+*++++**++**===+**++*+*++*=%%=+::...:..:\n#+++#**-#*=*:++++*#=*=+*++=+++*#*==+**-:::..::..\n***%%*--=+*++#+*+**+*+*+#+#+*#--++=*==-:..::..:..\n+**++=+=*=*=+****%%*+*+=-*+*+-**++*=-::.:........\n+***=%%+-==+**#**+***+*#**=-**=-++=::.:. ...... .\n-**+***%%#+=::--****++%%*--:::=-.--. ......... .\n+:*****-+= .-=++:...... ..... ......... ..\n*+=+##-+==: . . .............. .. ....:....\n****+#==*=*. . .....:::.....................\n+*+*+=+*++++. . .:..::::::... :.. ...........\n+++#++-*++*=*. ....:..:::..-:: . .:.............\n++#+=++=*-++=*... ...:.:-:.:::... ..::..........\n==*+*+======+=+.. ..::.:-..-- :....::::.........\n+#++--++-+===++...:.:.:: .:--.::...::.::.. ..:..\n*#+=+#*++*=*-*=:.:....=. -::-..::..:::::.......\n**-+*#*+*=+=-++::....-:. :-. : .....:-:::....::.\n+*+*#%%+-*++*+=+...:..::: :. :: . : :-.:::.::.:.\n+++*++++=+++++=::.::.:-..- .. .....-:::-:.-.::\n##=+*+=-*+*+=*=..::-.:-::: ......:-.:--.::::\n*#*+*+=++**+=+--...:..:=.. ....::.----:-::\n***+*+--++*+++-:.::. .:=:. .. .. :=-::-=:::-\n%%*****++=-+**=---.:- . -.. . . ..:=:.:---:-.\n#*+##+**+=#+*==-:: -.. . ...-.::---:-:\n*+*+**++*+*++:-=.-:. --: . ...::.=:==-::-\n++##+*+++##=:=--=-... .:. . .::::.::----:\n+*#-+#*#**----=--=-:. :: : ...:..:::---=-\n+=-%%+--*:*--==*::--::.:::: -. ...::::-:::-=-\n=**+:. + *.:+*-=+=:-----:* :: ...:.------==+\n*+==-.+*-#-+#=---.:--==:=-:.:-. ...::-==--:-=-\n#=-+=*==#*%%#=-=--+:::=+-=+--=:....::::=---+=-=-:\n++*+*#=*#%%%%*=-=:.:..:-+++: .--...:::::==-+==-=:-\n++=+*#++#%%%%*#*+==:.: ::=....:+:::-:::+++*+-*+=--\n++++*+**%%*%%#%%#+=::---=:---:::-----:-==+**=%%=#+++\n=*#**++*#%%+*+%%+==--=-+=:-=---=---:::**###*#*+%%%%*\n==+#*++*+%%%%++#**=-==-:+--==---::-+--#*#*#%%+%%+#%%%%\n+++**=**=+++=*#*=-==--=*==-:-:--:#+:=%%###*%%%%%%**%%\n*+=+*-=+*=*%%*%%*#=-==+=-=+==:--=*+%%*+:+#*#+##%%+%%*\n+=***=*==++##**%%+--=++--+++--++*%%%%***-+#####**#*\n+=++++*#++=-*###++==+-===*+:**=#%%***%%@-+%%##+*=#*\n*=***=**+=*++:=#=*=-=+***+*-+=###*#*###=*%%***=*=\n+*-*#=*#++=***=+#-#*=***#++-+=+##+%%*%%###-#*+%%=++\n==+-+*+**+*+*+#***-+***=***===+***%%*#*#+#=**+*+=\n+-+:==+*+****+-#=**+*==*+*#+=%%+*#**#***##++#*+=+\n-===-=**#***==-*+=+=****++*+-++***#*###***=*#+**\n==-=+++*#+*#*-%%**-***#++**=**+#=#*##*##****+*+**\n*===-==*#+*++**=+-*+#++*##+-#=+*#*####*#%%++*****\n*#-=+=++****#+***#%%*#*#*=*==-+#+**%%###****+#*++=\n++#=-+:**=****###**####-*%%*+*=+#+%%*+*#+**#*#*=*+\n"); + getch(); + system("cls"); + printf("\033[107;40m\033[38;5;237m,\033[38;5;237m,\033[38;5;239m*\033[38;5;238m,\033[38;5;240m*\033[38;5;242m/\033[38;5;237m,\033[38;5;102m(\033[38;5;102m(\033[38;5;242m/\033[38;5;240m*\033[38;5;101m/\033[38;5;101m/\033[38;5;101m/\033[38;5;101m/\033[38;5;241m*\033[38;5;059m*\033[38;5;243m/\033[38;5;008m/\033[38;5;059m*\033[38;5;241m*\033[38;5;102m(\033[38;5;101m/\033[38;5;102m(\033[38;5;241m*\033[38;5;240m*\033[38;5;059m*\033[38;5;242m/\033[38;5;241m*\033[38;5;059m*\033[38;5;242m/\033[38;5;059m*\033[38;5;241m*\033[38;5;242m/\033[38;5;239m,\033[38;5;246m(\033[38;5;236m.\033[38;5;245m(\033[38;5;095m/\033[38;5;181m%%\033[38;5;181m%%\033[38;5;224m&\033[38;5;224m&\033[38;5;223m&\033[38;5;181m&\033[38;5;253m&\033[38;5;252m&\033[38;5;252m&\n\033[38;5;059m*\033[38;5;239m*\033[38;5;239m*\033[38;5;239m,\033[38;5;241m/\033[38;5;246m(\033[38;5;245m(\033[38;5;101m/\033[38;5;240m*\033[38;5;243m/\033[38;5;241m*\033[38;5;101m/\033[38;5;240m*\033[38;5;241m/\033[38;5;240m*\033[38;5;241m*\033[38;5;059m*\033[38;5;238m,\033[38;5;241m*\033[38;5;241m*\033[38;5;241m*\033[38;5;241m*\033[38;5;008m/\033[38;5;242m/\033[38;5;059m*\033[38;5;059m*\033[38;5;241m*\033[38;5;241m/\033[38;5;008m/\033[38;5;008m/\033[38;5;244m/\033[38;5;242m/\033[38;5;243m/\033[38;5;243m/\033[38;5;241m*\033[38;5;246m(\033[38;5;248m#\033[38;5;250m%%\033[38;5;252m&\033[38;5;187m&\033[38;5;253m&\033[38;5;253m&\033[38;5;187m&\033[38;5;253m&\033[38;5;253m&\033[38;5;252m&\033[38;5;253m&\033[38;5;253m&\n\033[38;5;144m#\033[38;5;241m*\033[38;5;240m*\033[38;5;241m*\033[38;5;240m*\033[38;5;239m*\033[38;5;240m*\033[38;5;235m.\033[38;5;238m,\033[38;5;242m/\033[38;5;246m(\033[38;5;007m%%\033[38;5;250m%%\033[38;5;247m#\033[38;5;247m#\033[38;5;059m*\033[38;5;242m/\033[38;5;240m*\033[38;5;239m*\033[38;5;243m/\033[38;5;242m/\033[38;5;236m,\033[38;5;242m/\033[38;5;249m%%\033[38;5;247m#\033[38;5;250m%%\033[38;5;251m%%\033[38;5;251m%%\033[38;5;102m(\033[38;5;248m#\033[38;5;252m&\033[38;5;248m#\033[38;5;145m#\033[38;5;252m&\033[38;5;230m@\033[38;5;253m&\033[38;5;224m&\033[38;5;252m&\033[38;5;224m&\033[38;5;224m&\033[38;5;253m&\033[38;5;252m&\033[38;5;252m&\033[38;5;253m&\033[38;5;224m@\033[38;5;230m@\033[38;5;224m@\033[38;5;224m&\n\033[38;5;059m*\033[38;5;241m*\033[38;5;241m*\033[38;5;059m*\033[38;5;240m*\033[38;5;236m,\033[38;5;246m(\033[38;5;101m/\033[38;5;241m*\033[38;5;245m(\033[38;5;244m(\033[38;5;255m@\033[38;5;255m@\033[38;5;255m@\033[38;5;255m@\033[38;5;255m@\033[38;5;188m&\033[38;5;255m@\033[38;5;255m@\033[38;5;253m&\033[38;5;254m&\033[38;5;188m&\033[38;5;224m&\033[38;5;253m&\033[38;5;187m&\033[38;5;181m%%\033[38;5;181m%%\033[38;5;224m&\033[38;5;188m&\033[38;5;188m&\033[38;5;224m@\033[38;5;224m&\033[38;5;224m@\033[38;5;253m&\033[38;5;252m&\033[38;5;224m@\033[38;5;224m&\033[38;5;253m&\033[38;5;224m@\033[38;5;253m&\033[38;5;253m&\033[38;5;253m&\033[38;5;253m&\033[38;5;253m&\033[38;5;253m&\033[38;5;224m&\033[38;5;224m&\033[38;5;188m&\n\033[38;5;243m/\033[38;5;241m*\033[38;5;241m*\033[38;5;239m,\033[38;5;242m/\033[38;5;101m/\033[38;5;144m#\033[38;5;239m*\033[38;5;243m/\033[38;5;244m/\033[38;5;059m*\033[38;5;102m(\033[38;5;241m*\033[38;5;252m&\033[38;5;255m@\033[38;5;254m@\033[38;5;254m&\033[38;5;254m&\033[38;5;188m&\033[38;5;252m&\033[38;5;253m&\033[38;5;252m&\033[38;5;187m&\033[38;5;181m%%\033[38;5;181m%%\033[38;5;223m&\033[38;5;187m&\033[38;5;145m#\033[38;5;251m%%\033[38;5;252m&\033[38;5;255m@\033[38;5;188m&\033[38;5;255m@\033[38;5;255m@\033[38;5;251m%%\033[38;5;188m&\033[38;5;252m&\033[38;5;224m&\033[38;5;253m&\033[38;5;224m&\033[38;5;224m&\033[38;5;224m&\033[38;5;224m@\033[38;5;253m&\033[38;5;253m&\033[38;5;224m&\033[38;5;187m&\033[38;5;224m&\n\033[38;5;101m/\033[38;5;240m*\033[38;5;242m/\033[38;5;101m/\033[38;5;102m(\033[38;5;246m(\033[38;5;101m/\033[38;5;243m/\033[38;5;246m(\033[38;5;243m/\033[38;5;245m(\033[38;5;246m(\033[38;5;244m(\033[38;5;244m/\033[38;5;243m/\033[38;5;253m&\033[38;5;188m&\033[38;5;254m&\033[38;5;252m&\033[38;5;253m&\033[38;5;181m%%\033[38;5;253m&\033[38;5;181m%%\033[38;5;181m%%\033[38;5;187m&\033[38;5;224m&\033[38;5;252m&\033[38;5;145m#\033[38;5;248m#\033[38;5;188m&\033[38;5;251m%%\033[38;5;253m&\033[38;5;253m&\033[38;5;253m&\033[38;5;254m@\033[38;5;251m%%\033[38;5;181m%%\033[38;5;224m&\033[38;5;181m%%\033[38;5;187m&\033[38;5;224m&\033[38;5;188m&\033[38;5;224m@\033[38;5;224m&\033[38;5;253m&\033[38;5;187m&\033[38;5;224m&\033[38;5;223m&\n\033[38;5;059m*\033[38;5;239m*\033[38;5;144m(\033[38;5;242m/\033[38;5;240m*\033[38;5;237m,\033[38;5;241m*\033[38;5;242m/\033[38;5;239m,\033[38;5;245m(\033[38;5;241m/\033[38;5;243m/\033[38;5;247m#\033[38;5;101m/\033[38;5;095m/\033[38;5;181m%%\033[38;5;187m%%\033[38;5;187m&\033[38;5;187m&\033[38;5;187m&\033[38;5;253m&\033[38;5;144m#\033[38;5;181m%%\033[38;5;224m&\033[38;5;230m@\033[38;5;251m%%\033[38;5;249m#\033[38;5;224m&\033[38;5;224m@\033[38;5;250m%%\033[38;5;254m@\033[38;5;252m&\033[38;5;252m&\033[38;5;253m&\033[38;5;253m&\033[38;5;188m&\033[38;5;007m%%\033[38;5;249m%%\033[38;5;181m%%\033[38;5;181m%%\033[38;5;181m%%\033[38;5;187m&\033[38;5;224m&\033[38;5;187m&\033[38;5;224m&\033[38;5;187m%%\033[38;5;181m%%\033[38;5;187m&\n\033[38;5;239m*\033[38;5;238m,\033[38;5;101m/\033[38;5;241m*\033[38;5;240m*\033[38;5;242m/\033[38;5;102m(\033[38;5;246m(\033[38;5;242m/\033[38;5;101m/\033[38;5;242m/\033[38;5;243m/\033[38;5;244m/\033[38;5;241m*\033[38;5;138m(\033[38;5;187m&\033[38;5;252m&\033[38;5;252m&\033[38;5;181m%%\033[38;5;181m%%\033[38;5;253m&\033[38;5;251m%%\033[38;5;144m#\033[38;5;181m%%\033[38;5;252m&\033[38;5;250m%%\033[38;5;231m@\033[38;5;015m@\033[38;5;255m@\033[38;5;254m&\033[38;5;255m@\033[38;5;255m@\033[38;5;254m@\033[38;5;254m@\033[38;5;253m&\033[38;5;188m&\033[38;5;188m&\033[38;5;249m%%\033[38;5;249m%%\033[38;5;252m&\033[38;5;181m%%\033[38;5;181m#\033[38;5;180m#\033[38;5;187m&\033[38;5;181m%%\033[38;5;181m%%\033[38;5;181m%%\033[38;5;181m%%\n\033[38;5;239m,\033[38;5;238m,\033[38;5;239m*\033[38;5;242m/\033[38;5;240m*\033[38;5;242m/\033[38;5;246m(\033[38;5;247m#\033[38;5;101m/\033[38;5;101m(\033[38;5;241m*\033[38;5;101m/\033[38;5;242m/\033[38;5;095m/\033[38;5;144m#\033[38;5;181m#\033[38;5;187m&\033[38;5;181m%%\033[38;5;251m%%\033[38;5;253m&\033[38;5;015m@\033[38;5;253m&\033[38;5;252m&\033[38;5;138m#\033[38;5;252m&\033[38;5;224m&\033[38;5;255m@\033[38;5;255m@\033[38;5;255m@\033[38;5;015m@\033[38;5;015m@\033[38;5;253m&\033[38;5;254m&\033[38;5;255m@\033[38;5;254m@\033[38;5;254m@\033[38;5;015m@\033[38;5;252m&\033[38;5;245m(\033[38;5;249m%%\033[38;5;251m%%\033[38;5;181m%%\033[38;5;144m#\033[38;5;138m(\033[38;5;181m%%\033[38;5;181m%%\033[38;5;181m%%\033[38;5;144m#\n\033[38;5;240m*\033[38;5;059m*\033[38;5;059m*\033[38;5;240m*\033[38;5;239m,\033[38;5;059m*\033[38;5;241m*\033[38;5;241m/\033[38;5;241m*\033[38;5;242m/\033[38;5;239m,\033[38;5;241m*\033[38;5;095m/\033[38;5;180m#\033[38;5;144m#\033[38;5;138m(\033[38;5;187m&\033[38;5;181m%%\033[38;5;252m&\033[38;5;188m&\033[38;5;015m@\033[38;5;015m@\033[38;5;145m#\033[38;5;181m%%\033[38;5;252m&\033[38;5;224m@\033[38;5;254m@\033[38;5;255m@\033[38;5;255m@\033[38;5;255m@\033[38;5;015m@\033[38;5;255m@\033[38;5;015m@\033[38;5;255m@\033[38;5;255m@\033[38;5;254m@\033[38;5;252m&\033[38;5;252m&\033[38;5;249m%%\033[38;5;252m&\033[38;5;248m#\033[38;5;181m%%\033[38;5;144m#\033[38;5;138m(\033[38;5;138m#\033[38;5;181m%%\033[38;5;181m%%\033[38;5;180m#\n\033[38;5;101m/\033[38;5;059m*\033[38;5;059m*\033[38;5;246m(\033[38;5;244m/\033[38;5;241m*\033[38;5;241m*\033[38;5;239m,\033[38;5;241m/\033[38;5;239m,\033[38;5;144m#\033[38;5;144m#\033[38;5;138m#\033[38;5;144m#\033[38;5;137m(\033[38;5;180m#\033[38;5;180m#\033[38;5;138m(\033[38;5;145m#\033[38;5;252m&\033[38;5;188m&\033[38;5;255m@\033[38;5;224m&\033[38;5;181m%%\033[38;5;181m%%\033[38;5;224m@\033[38;5;015m@\033[38;5;255m@\033[38;5;015m@\033[38;5;231m@\033[38;5;254m&\033[38;5;251m%%\033[38;5;015m@\033[38;5;015m@\033[38;5;254m&\033[38;5;254m&\033[38;5;188m&\033[38;5;007m%%\033[38;5;252m&\033[38;5;253m&\033[38;5;181m%%\033[38;5;181m%%\033[38;5;181m%%\033[38;5;180m#\033[38;5;180m#\033[38;5;144m#\033[38;5;138m(\033[38;5;180m#\n\033[38;5;241m*\033[38;5;241m*\033[38;5;101m/\033[38;5;245m(\033[38;5;145m#\033[38;5;252m&\033[38;5;246m(\033[38;5;059m*\033[38;5;250m%%\033[38;5;237m,\033[38;5;248m#\033[38;5;244m/\033[38;5;239m,\033[38;5;102m(\033[38;5;144m#\033[38;5;144m#\033[38;5;144m#\033[38;5;251m%%\033[38;5;251m%%\033[38;5;145m#\033[38;5;249m#\033[38;5;138m#\033[38;5;138m#\033[38;5;181m%%\033[38;5;138m(\033[38;5;138m#\033[38;5;252m&\033[38;5;254m@\033[38;5;252m&\033[38;5;145m#\033[38;5;254m&\033[38;5;255m@\033[38;5;255m@\033[38;5;255m@\033[38;5;253m&\033[38;5;252m&\033[38;5;253m&\033[38;5;007m%%\033[38;5;007m%%\033[38;5;249m%%\033[38;5;138m#\033[38;5;138m(\033[38;5;138m#\033[38;5;144m#\033[38;5;180m%%\033[38;5;144m#\033[38;5;138m(\033[38;5;138m#\n\033[38;5;065m/\033[38;5;242m/\033[38;5;241m*\033[38;5;101m/\033[38;5;240m*\033[38;5;238m,\033[38;5;102m(\033[38;5;240m*\033[38;5;237m,\033[38;5;235m.\033[38;5;236m.\033[38;5;240m*\033[38;5;243m/\033[38;5;246m(\033[38;5;102m(\033[38;5;145m#\033[38;5;007m%%\033[38;5;251m%%\033[38;5;252m&\033[38;5;188m&\033[38;5;252m&\033[38;5;145m#\033[38;5;138m(\033[38;5;102m(\033[38;5;245m(\033[38;5;251m%%\033[38;5;255m@\033[38;5;254m@\033[38;5;249m%%\033[38;5;247m#\033[38;5;253m&\033[38;5;253m&\033[38;5;252m&\033[38;5;007m%%\033[38;5;007m%%\033[38;5;007m%%\033[38;5;007m%%\033[38;5;145m#\033[38;5;102m(\033[38;5;101m(\033[38;5;138m(\033[38;5;095m/\033[38;5;138m(\033[38;5;101m/\033[38;5;138m(\033[38;5;138m(\033[38;5;181m%%\033[38;5;144m#\n\033[38;5;244m/\033[38;5;240m*\033[38;5;239m*\033[38;5;242m/\033[38;5;241m*\033[38;5;101m/\033[38;5;242m/\033[38;5;240m*\033[38;5;236m.\033[38;5;236m.\033[38;5;240m*\033[38;5;240m*\033[38;5;241m*\033[38;5;236m.\033[38;5;242m/\033[38;5;245m(\033[38;5;138m#\033[38;5;145m#\033[38;5;138m#\033[38;5;138m(\033[38;5;144m#\033[38;5;008m(\033[38;5;247m#\033[38;5;250m%%\033[38;5;248m#\033[38;5;246m(\033[38;5;248m#\033[38;5;145m#\033[38;5;248m#\033[38;5;246m(\033[38;5;247m#\033[38;5;247m#\033[38;5;248m#\033[38;5;250m%%\033[38;5;250m%%\033[38;5;250m%%\033[38;5;241m*\033[38;5;242m/\033[38;5;238m,\033[38;5;237m,\033[38;5;237m,\033[38;5;240m*\033[38;5;238m,\033[38;5;240m*\033[38;5;240m*\033[38;5;235m.\033[38;5;236m,\033[38;5;239m*\n\033[38;5;242m/\033[38;5;101m/\033[38;5;243m/\033[38;5;241m*\033[38;5;240m*\033[38;5;246m(\033[38;5;242m/\033[38;5;240m*\033[38;5;244m(\033[38;5;243m/\033[38;5;242m/\033[38;5;240m*\033[38;5;243m/\033[38;5;239m*\033[38;5;237m,\033[38;5;239m*\033[38;5;138m(\033[38;5;144m#\033[38;5;138m(\033[38;5;138m(\033[38;5;138m#\033[38;5;144m#\033[38;5;138m#\033[38;5;095m/\033[38;5;008m(\033[38;5;102m(\033[38;5;248m#\033[38;5;007m%%\033[38;5;249m%%\033[38;5;250m%%\033[38;5;246m(\033[38;5;246m(\033[38;5;247m#\033[38;5;237m,\033[38;5;241m*\033[38;5;247m#\033[38;5;246m(\033[38;5;237m,\033[38;5;237m,\033[38;5;238m,\033[38;5;237m,\033[38;5;240m*\033[38;5;236m.\033[38;5;236m,\033[38;5;234m.\033[38;5;241m*\033[38;5;238m,\033[38;5;236m.\n\033[38;5;101m/\033[38;5;101m/\033[38;5;242m/\033[38;5;243m/\033[38;5;243m/\033[38;5;242m/\033[38;5;239m*\033[38;5;239m,\033[38;5;243m/\033[38;5;244m/\033[38;5;246m(\033[38;5;246m(\033[38;5;240m*\033[38;5;237m,\033[38;5;238m,\033[38;5;237m,\033[38;5;095m/\033[38;5;102m(\033[38;5;138m(\033[38;5;102m(\033[38;5;101m/\033[38;5;144m#\033[38;5;138m#\033[38;5;138m(\033[38;5;244m(\033[38;5;242m/\033[38;5;243m/\033[38;5;250m%%\033[38;5;242m/\033[38;5;241m*\033[38;5;102m(\033[38;5;239m,\033[38;5;236m.\033[38;5;239m*\033[38;5;239m,\033[38;5;239m*\033[38;5;236m.\033[38;5;235m.\033[38;5;246m(\033[38;5;241m*\033[38;5;235m.\033[38;5;238m,\033[38;5;237m,\033[38;5;059m*\033[38;5;239m,\033[38;5;101m/\033[38;5;237m,\033[38;5;238m,\n\033[38;5;243m/\033[38;5;243m/\033[38;5;247m#\033[38;5;242m/\033[38;5;240m*\033[38;5;101m/\033[38;5;240m*\033[38;5;238m,\033[38;5;241m*\033[38;5;241m*\033[38;5;244m/\033[38;5;059m*\033[38;5;240m*\033[38;5;059m*\033[38;5;242m/\033[38;5;241m/\033[38;5;238m,\033[38;5;245m(\033[38;5;095m/\033[38;5;240m*\033[38;5;101m/\033[38;5;240m*\033[38;5;240m*\033[38;5;241m*\033[38;5;238m,\033[38;5;243m/\033[38;5;059m*\033[38;5;247m#\033[38;5;008m/\033[38;5;245m(\033[38;5;243m/\033[38;5;238m,\033[38;5;238m,\033[38;5;241m*\033[38;5;234m.\033[38;5;238m,\033[38;5;236m.\033[38;5;238m,\033[38;5;237m,\033[38;5;239m*\033[38;5;101m/\033[38;5;241m*\033[38;5;240m*\033[38;5;059m*\033[38;5;237m,\033[38;5;101m/\033[38;5;241m*\033[38;5;101m/\n\033[38;5;248m#\033[38;5;245m(\033[38;5;246m(\033[38;5;247m#\033[38;5;248m#\033[38;5;101m/\033[38;5;239m*\033[38;5;240m*\033[38;5;237m,\033[38;5;239m*\033[38;5;239m*\033[38;5;239m*\033[38;5;101m/\033[38;5;008m/\033[38;5;248m#\033[38;5;059m*\033[38;5;242m/\033[38;5;101m(\033[38;5;101m/\033[38;5;101m/\033[38;5;240m*\033[38;5;059m*\033[38;5;241m*\033[38;5;241m*\033[38;5;242m/\033[38;5;242m/\033[38;5;240m*\033[38;5;242m/\033[38;5;246m(\033[38;5;059m*\033[38;5;242m/\033[38;5;239m*\033[38;5;239m*\033[38;5;239m*\033[38;5;238m,\033[38;5;238m,\033[38;5;237m,\033[38;5;237m,\033[38;5;237m,\033[38;5;238m,\033[38;5;239m,\033[38;5;239m*\033[38;5;101m(\033[38;5;240m*\033[38;5;238m,\033[38;5;241m*\033[38;5;059m*\033[38;5;239m,\n\033[38;5;239m*\033[38;5;241m*\033[38;5;246m(\033[38;5;245m(\033[38;5;102m(\033[38;5;246m(\033[38;5;101m/\033[38;5;059m*\033[38;5;238m,\033[38;5;242m/\033[38;5;239m*\033[38;5;242m/\033[38;5;240m*\033[38;5;059m*\033[38;5;059m*\033[38;5;242m/\033[38;5;059m*\033[38;5;101m/\033[38;5;237m,\033[38;5;241m*\033[38;5;237m,\033[38;5;240m*\033[38;5;059m*\033[38;5;240m*\033[38;5;059m*\033[38;5;239m*\033[38;5;243m/\033[38;5;246m(\033[38;5;242m/\033[38;5;008m/\033[38;5;059m*\033[38;5;240m*\033[38;5;238m,\033[38;5;240m*\033[38;5;236m.\033[38;5;236m,\033[38;5;238m,\033[38;5;237m,\033[38;5;239m*\033[38;5;239m*\033[38;5;237m,\033[38;5;059m*\033[38;5;065m*\033[38;5;238m,\033[38;5;240m*\033[38;5;240m*\033[38;5;059m*\033[38;5;242m/\n\033[0m\n"); + getch(); + system("cls"); + printf(".,**,,,,,,,.,*******/,/(,,**.,*#*/*/*,#(,/(/*////((*,***,/#/********///,(&&(*.,***,,,(/*/#(*/.,//##(/**///*///(#(*/*,**,***,**//(/*,****/(*(/, /(,(#///,.,/#%(/,**(###%%%%&&%&&&&&&&&&&&&&&&&&&&&&&%%&%&\n,,,,,,,,.,,#*,...,(#(//#*.,,,//((%#,/(*/((,**,/*..*#%#/*//##/,,,/,,*/*******/////,,(***/,*##%(**///(((******,*///,,/#(///**(///*********,#%/.((,.*(#(/*,.**(.,((/(##%&%%%%%&&&&&&&&&&&&&&&&%&&&&&&%%%%&&\n. ,,,,,,,,(%##/**,..,*,///*.(,,#%#,,,*//**#(*,,*(%%%%#/**/%,#/*//,,**/******/.,*/#*.. **/#/(#(((/,. **,***,*(///*/*#(/(((((/#**,,,,****,*/%*,,((#(,,/(**.,/(/,,((#%&&&&%%%%&&&&&&&&&&&&&&%%%&%&%&&&&&&&&\n,,,.(#(**,(*,,,,***,***##,*//#%##,.,//.,*///(/,,,,,/(#%******//,////////***/*.*/*(*(#(((*%/,,./ ,/**/(/.**//##(//***/////**/(#(,.,.//***,###((/#/.*//#(/*,/**/%&%&%%%%%%%%%%%%%%&&&&&&&&&&%%%%%%&&&&&&&&\n#**,,, .**,,*,,**,,*(%#////&/(((,*(/,*,/(*/**/((,,, .,//*/**,*/(/,*/*****,.,**(*,(*./(////,*//(*.,,/*(***/((/*.,(/,...**(/(#%%%*((*,,/(*#//(/(/.,//((/##(/(#%%%%%%%&&&&&&&&&&&%%%%&&&&&&&&&%&&&%%%&&&&&&\n,.///******,*(**  .,*(#%%#%%(((/((**,.*/(((,,*//(##*,****/***/*/(.,,*/*/**,,*#/,*/*//((*,,*(//(//***/**,**/(/**,*/*#%(,,***/*,,,//#%##(/#//(/,(%,*(##/(%&/%%%%&%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&\n*,*(/,**,***,**////%%(/((,.*///#/..*(#//*#///(#//(*//,**,****/**,//***/. .,,,*/*,.#%*,**(#/(#((##(///******,*****,***(####(/*,,,,*/*,(,*/*(#,.*&(,(###%%%%%%&&&&&&&&&&&&&@&&&&&&&&&&&&&@&&&&&&&&&&&&&&&&\n,*,(/*,,//,,,,,*(/((/*. ,/////((##(*.*,/*#((,/(*,,,***/*,****,***,.,,,,***,,,,*/..*(/*..,**,**,**,,*,***/###%%#%(******/*((/((/**%&///%(,(/(#&%#&(%%%%%&%&%%&&&&&&&&&&&&&&&&&@@&&&&&&&&&@&&@@@@@@&&@@@&&\n%*,/*,**/,,,(/,,,**/((//////(##/(#####%%%#(/(##//*,,,/*.***//,///**/(/*///..*(%&%*,***/**,,**,.,*////##(/*//*,/##(*,*/*,/*/((%%%(((/(*//*(((((%&&&&&%&&&&&&&&&&&&&&@@@&&&&&&%&&&&&&&&&&@@@@@@@@@@@@@&&@&\n(%*(#*,*((****/(*,,*,,*****,,.. .*(..**/(#(***((#&@@#**/(((///***,///#*/,*/,.,**//*,,//..,,,,(/*//#%((####%%&&%%&&&%%#(/(###%%&%#%######%%#&&@@&@&&&&&&&&@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@@@@@@@@@&&&&&\n,(%(%%%,*, .,(*..(/*,,,,,,,*//(((((*.**((#%@@@@@@@@@@@@@@@@@@&@@@@@#(/**(.(#/,/(/*(&(,//**/(/(#%%&&&&&&&&&&&&&&&&&&&&@@&%%&&&&@&&&&&@@&%&&&&&@@@&@@@&&&&&&&&&&@@&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@@@&&&&&&&\n#%*,*(#(#((//,  ,,*.....,,,****/((#/,/(/(#&@@@@@@@&@@@@@@@@@@@@&&&&&&@@@@@%((//***////#%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@&&&&&&&&&&@&&&&&%%&&&&@&&@@@@&&&&&&&&&@&&&&&&&&&&&&&&&&&&&%&&&&&&@@@@&&&&&&&&&\n%/,.,*/##///((/*,*,.....**/#/((* ,(((*,**//&@@@@@@@@@@@@@@@@@@@@@@@@@&@@@&&&@@@@%%#%&&@&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@&&&&&&&&&&&&&&&&@@&&&&&&&&&&&@@@@@@&&&&&&&&@@&&&&&&&&&&&&&&&&&&%%%&&&&&@&&&&&&&&&&&\n%#,.//**,*(/(/**,,.//.,,,*###(/((#/,((((##,*%@@@@@@@@@@&@@@@@@@@@@&&&&@@@@@&&%@@@@@@&&&&&&&&&&&&&&&&&&&&%%%&&&&&&&@&&&&&&&&&&&@@&&&&&&&&&&&@%%%&&&&&@@@&&&&&&&&&@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n((.*/(,..*.*((*,*(,(*,...*#/(#(//,,*/(##(((**/%@@@@@@@@@@@@@@@@@@@@&&%%&@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%&&&&&&&&&&&&&&@@@&@&&@@@&&&&%%%&&&&&&@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&&&&&&&@&&&&\n/*./**/##*. .*,,/(*/(,*#*,,*,(*****,#%/#(///*.,*(%@@@@&@@@@@@@@&@@@@@&&&@@@@@@&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%#%&&&&&&&&&&&@@@@@@@@@@&@&&&%%&&&&&&&&@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n*/*/,,*(##*.*,,*//*///(#//((*******/#,*/((((((((((/(&@@@@@@@@@@@@@@@@@&&@@@@@@&&&#&&&&&&&&&&&%%%%%%%%%%%%&&&&&%%###%%&%%&&&&@@@@@@@@@@@@@@&&%&&%&&&&&&@@@@@@&&%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@&&&&&\n*/*((.(*,*(/,,,,**/(////(#%(/****.,(#,#*/**/////((///*%@@@&@@@@@@&@@&@&%@@&&&@&&&%&&@&&&&%%%&%%%&%%%%%%%%%&&&&%%%###%%%%%%%&@@&@@&&@@@@@@@@&@&&&%%&&@&&&&@@@&&&&&&&@@&&&&&&&&&&&&@&&&&&&&&&&&&&&&&&&&&&&\n/,*/#((/%,**,***//(,*/(////(%%*,**//((/#(///*,,/((((/(/*(@@@&&&&&&&&&&&&&&@@&&&&&&&&&&&&&&&%&%%%%%%%%%##%%%&&&&%%%%%#%%%%%%%%&@@@&&&&&@&&&@@&&&&&%&&&&&&%%&&&&@&&&&&&&&&&&&&&&&@&&&&&&&&&&&&&&&&&&&&&&&&\n,*/#,*#*.**,***/(#(*(///////**##,,(/**(##(///***((/((((*,*/&@@&&&&&&&&&@@@@@@@&&&&&&&&&&&%%%%&%&&%%%%%###%%&&&&&&%%%%%%%&%%%%%&@@@&&&&&&&@&@@&&&&&%&&&@&%##%%%&&&&&@&&&&&&&&&@@&&&&&&&&&&&&&&&&&&&&&&&&&\n**/(#(,,**,.,**//*#*////(((((%&%((((((/((((///*,*#/***(((//*/%@&&&&&&%&@@@@@@&&&&&&&&&&&&&&&&&&&&%%%%####%%&&&&&&%%%###%%&&&&&%%%&@@@&&@&&@&@@&&&&%%%&&&%#%%%&@%%%&&@@&&&&&&&&@&@&@&&&&&&&&&&&&&&&&&&&&&\n*/%%##(/*,,((,(*.,,****((%#/**//**//////((####(##((((//(/*/(((#&&&&&&&&&@@@&&&&&&&&&&&%%&%%%&&&%%%%#%%%#&@&&&&&&%%######%%&&&@&%%%&@&&@&@&&&&@@&%%%&%#%&#%%%%&&&&%%%&&&@@%&&&&&@@&@@@&&&&&%&&&&&&&&&&&&&\n/(%/.*/*,,//#/**(#/,(%%%#/*/**/(((*##(*/*,(//(((**((*//,,*(##(((&@&&&&&&@&&&&&&&&&&&&&&&&&&&&&%%##%%&&&&&&@&&&%%%########%%&@@&%%#&#%&&&&&%&@&@@&&&&&%#&%#%&@&&&&%%%%%&&@@&&&&&&&@@&&&&&&&&%%&&&&&&&&&&&\n**,,.,/,,,*//%**###%%(((##/*/*,**/(%#/(//*/(/*((/*/%((##%#//*/(#&@&&&&&&&&&&%%&&&&&&&&&%&&&&&%(###%&&&@@@&@&&&%####%%%%%##%%@&&%%&%&@#%@%%@%#&&@&&&#%&&%#%&&&&&&%%%&%%%&&&&@&%@&&&@&&&&&&&&&%&&&&&&&&&&&\n/(/..*,,,*/(((//#(,**,/ *//, **/////((///,*/#/,*/*/##%#(**,/##((&&%%&&&%#%&&&&&&&&&&&&&&&&&&%(#%%%&@@@@@@@@&%%###%%%&%%%%#%%%%&&%@@@#%%#@&%%&%&&@@&&&%%%#&%&&&%%%&&%%%%%%&&&@@%&&%&&&&&&&&&&&&&&%%&&&&&&\n/(*./*.*(((((((/(#/***,.. ,*///*/***,/(////*/#/,,((%#%/*///##(/(#%%%%%%%%&&&&&%%&&&&&&&&&&%#(##%&&&@@@@@@&&%####%%%&&&&&@&&#%%&&@@&%&%%@%%&@&%%&@@&&&&@&%%%%%##%%%&%%%%%%%%&&@@&&&%&&&&@&&&&&&%%%%%%&&&&\n*****,,*(#/*((***/,**,.,//**,/(*,*,*/*##///*/(//(#(,##*,(%#/,*(%%%&%&&&&&&&&&&&&&&&&&&&&%%((#%%%&&@@@@@@@@&##(%%&&@@@@@&@&&#%&@&@&%@&@@%%&@&&%&&&&&&&&&&%#%%%#%%&%%%%%%%%%%%%&&&&&&&%%&&&&&&&&%%%%%%&&&&\n/,,*,,*//((/,/(*,  ****,..,(/*(%(/,,***#(,,//***///*//*/#(/**/%%&&%&&&&&&&&%%%%&&&&&&&&&%##%%%%%%%&&&&@@@@%###&&@@@@@@@@@@&#@#%@%%&&@@%&@&&&@&%%&&@@&&&%#(%%#%%%&%%%%%%%%%%%%%%&&&&&&&%%&&&&&&&%%&%%&&&&\n*/*,*,,**//(//*,*****,...*(//,//%%*,/.*(/,#*///*,*(***/(/**(//#%%%&&&&&&&&&&&%&&&&&&&&@&%%&&%%%%%%%&&&&@@&##%&@@@@@&@&@@@@&@%%@@&&@@&&@@&&@@&&%%&&&@@@&&%&%%%#%%&&%%%%%%%#%%%%#%%&&&&&&%#%&&&&&%%#&&&&&&\n%#*,,..,(/(/**//,((((/**,*/**/#/.*#/.*,,#**(#**//(//(#/(//,/(##%%%%%%%&%&%%%%%%%%%%%&&&&%#&%#%%#&@%&&@@&&%#%&@@@@@@@&&&@@@@%%@@&&@@&&@&&@@&@&&&%&@&&&&&&%%@#%#(%%%%%%%%&%%#%%##%%&&&&%%%&%#%&&&&&&%%#%%%\n.*,,.,,/(*(****,,.*///////*(%&%#//,,/(/,((////(*/(/*/#///.*/(#%%&%%%@&&&&&%%%%%%%%%%%&&&%#&%#%##&&%%&&&%##%%@@@@@@@@@@@&@@&%@@&@@@&&@&&@&&&&&@@&&&&&&&@&&&@%%######%%%%%%%#%%###%%%&&%%&%%#(#&&&&%%%%%##\n**,,....,(///////,./(((/,/(((##(/(/,(/***#(**.,/((/(#((((/*(###%&&&&&%%%&%&%%&%%##%%%&&&%#@&%%##%&%#%&%##%%&@@@@@@@@@@@@@@@@@@&@@&@@&@@&&&&@@&@&&&&@&&&&@&%%&####%&&&&%%##%%%%#((##%%&%%%%%%##&&&%%%%%&&\n*,.,///*,#* .(*.//.*((**###(#/,,(/./#(/**(/,/*,,*/(//#//#**/#%%###%%&&&&&&&&&&&%%%#%&&@@%#@&%%######%&%%%&&@@@@@@@@@@@@@@@@@@@@@&@@@@&@@@@&&&@&&@@@@&@&&@&%%%%%#%%&&&&%%#%%##%%%%###%%%%%%%##((#%%%%%#%%\n/*.   ,. ****((/((*.**/###*/(%%(/#(*,/**,,,,*****((/**((#(/((###(%%%%%%&&&&&&&&&&%&&&&@@@(@@&%%##(##%&&&&%&&@@@@@@@@@@@@@@@@@@@@@&@@&@@@@&&&@@&@@@&@&&&&&&%&@%%#(#%%%&&&%########%##((####%%%%%%%%%#####\n.**((//**/*,,,*//***/(//*/((#&&%####/*#,//***/(%%#/(((((#(#%####%%%%&&%&&%%&&&&&&@@@@@@@@%&@@%%#####%%&%%&&@@@@@@@&@@@@@@@@@@@@@@@&#@@&&&%&@@@&@@&@&&&@@@@&#&&&%#(((#%&%%%%%%%#(#%##(((##%%%%%%%&%%&%##%\n/  ..., .,***,(##/**,///,/(////*//(#%##*//***,.,,,*//(,*//###((###%%%%%&&%%%###%%##%@@@@@@#@&&&%####%&&&&@&@@@@&@@&@@&@@@@@@@@@@@@%@%&&@@@@@@@@@@@@@@@@@@@&%#@%#((/(%%&&&%%%%%%%#####(((###%%%%%###&&#%%\n,.*****,,,**,,/,,*/*,**, ,/#/*//(///#/#(#%#(/(//,******#######(/##%#((%%&&&&&####%%%&@@@@@%%@@@&%###%&&&&&@@&@@@@@&&@@@@@@@@&@@@@@&%@@@@@@@@@@@@@@@@@&&&&&&&&&##((##&%%%&%%%%%%%%%####(#####%%%%####%&&&\n,,,,,..,((#/*,*, ,,,,*///,..,#(.*,///*/((*,/,,**,*/,.*,*(####(((((#%&##%@@@@@@@@@@@@@@@&&@@##&&@@@%#&&&&&&@@@@@@@&%@@@&@@@@@@@@&@@%@@&@@@@@@@@@@@@@@&&&&&&&&&&@%(%&@&(%%&&%%%%%%###%%#((##(#%%%%%%%#%%%%\n.((,,(****.,,,,*.,*,.,//.,((*#*,,,*/(**((/,**,,**,/(//(#%###(((###%%&&%((###&@@@@@@@@@@@@@@&#(#%&&@&@&&&&&@@@@@@%%@@@@@@@@@@@@&@@@@&@@@@@@@@@@@@@@&@@&&&&&&&&&@%(##@@&#(#%%%%%%%#######/(#####%%%#####%%\n/.*,*//*(/,,*///*,,./(.,**(,****/(*,*(/****, ,*/****/(#%#######((###%%%%#((#%&&%%&&@@@@@@@@@&%(####%%%&&&&@@@@@@&@@@@%&@@@@@@@@@@@@@@@@@@@@@@@@@@&@@&&&&&&&%&&&&#%%%@&#(###%%%###(((((((#######%%##%#%%%\n(#(,*,,/(*,.**,*/#,.,..**//**/(##*/*/*,*,**////(((/(%%%##(#%%#####(###%&&&&#%&@&&@@&&@@@@@@@@@&###%%%#%&&@@&@@@%%@@@&@@@@@@@@@&@@@@&&@@@@@@@@@@&@@@@@&&&&%%&%%%%%%&&&%&&%%%%%%%%%%######(((#####%#%%%%%%\n%*/*,,/(,,,,,*,,,*/%%/*((#//*/,,///(***,,,*, ,*/(#########(((((######((((#&&@@&&&&&%&@@@@@@&@@&&&&@&&&&&&@@@@@@@@@@@&@@@&&@@@@@@@@@&&@@@@@@@@@@@@@&&&&&&&&&&%%&@%#&&%##&@%%%%%%%%%##############(##%%%##\n(((,,**//,..,/%&%((///*../.,***,,****/*,,,*((#(############(/(###((#####(/(//(#%&&&&&&&@@@@@@@&&&%#%%%%&@@@@@@@@@@&&@@@@@@@@@@@@@&%%&&@@@@@@@@@&&&@@@@@@&&%%%%&&@#&@@%#%&&%%%%%%%%%#####################\n*/#**,*(,,(%#*(**(#*,/(//((*/(,*,**,/((,,,/####((###((####((/##%%%#####(((#%%%%%%%%&&&&&&&@&&&&&&%%%%%%&@&&@@@@@@@@@@@@@@@@@@@@@&##&&@@@@@@@@@@@@@&&&&&&&&&&%%&&@%#@@&%%&&%%%%####%%####%#####(#(##(####\n/(**/((%#//%*,**,*/#((///******,,((((((,.,/##((###((((#%#(/,,*(##%&%%%%######%%%%%%%%%&%%&&@&&%%%%%%%%%&&@#&@@@@@@@@@@@@@@@@@@&(#&@@@@@@@@@@@@@@&&&&&&&&&&%##%%&&%##@&%%&%%%%%%##%%%%%%%%##%###(((((####\n**%%%(,,/,,#,.,(,/#%%%&&&&&&@&(,*%@&&&&*,,#%%%%%%%%(##/,,,,/###((((((##%%%&%%%%%%%%%%%%&&&&%%##%%%%%%%&%%#/#&@@@@@@@@@@@@@@&&#%&&&&&@@@@@@@@@@@@@&&&&&&&&&%&&%&@&%###&%%%###########%%%%%%#(#%###//(((/(\n,,/#(*,*/(,,.*/#%&&%%%%#%&@@@@&**(@&&@#/,,%&&%%###(/,,,,*(#(####((((//////(#%%%%%###%#(##((#####%##%%####/*/%@@@@@@@@@&@&&&%##%&@@@@@@@@@@@@@@@&&&&&&&&&&%%&##%&&%#%###%##(((##########(#####/(##((((///\n,#*,///**((/(((#####%%&&&%#(((#,*/&&#*,,,*%*/%&%(,.,,,/((#%%##((((#%&&%&%%%%%%%##%##((###((((((#%%%%#((###%&%%&@@@&&&&&&&%##%%&@@@@@@@@@@@@@@@@@&&&&&&&&&&&%#%%%&%#%%#/####((#####((%%&&%######/(((((#((\n*,,,****#%(///((##%/#%%%(**////*,#%*.*/*,*,/*/*,.,,*///((((((###%%%%#(((%%%&&&&%%%%%%%%%###((((##%&%((((########%%%%%%%#(#%%%&&@@&@@@@@@@@@@@&&&&%&&&&&&&&&%%%%%%(#%&%####((//((##%/**#%#########/(###%%\n*,*,,(#((#%%/,(((#((##**((//**/**.,,,*(,,,,,,,,,,**/(##%#(((((##########(/(#%&&&&&&&&&&%&%(((//((##(((((((((####%%%%%#(/#%%%%&&&&&&&&@&@@&&&&&%%%%%%&&&&&%%%%#%((#%#((#####(((((##*,/%%%##(/(((####/#%%%\n/,..*/**//(/,,(/**/(*,**..,&#*(((.,,*.,,,,,..,,,*//(((/(###(((###%%&&&&&&%#((#%%&&&&#//***,*/(////(/////,*/(%@@@@@@&&%%#(##%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%&%%%#(*(((/%#######/(/,,(#/(##%##(//(###%%#/#%\n,/(/*//***,(*/%*****,,**(*/%#,*//.,,*...,...,,,,*////(#%%#((((((#%#%%##%%%#%&&&@@@%#&@@&@&%##(((((((((/*(%&@@&&@@@&&&%%%((##%%&&&&&&&&&&&&&%%%%%%%%&&%%%%%%&%###((##/*#((#/*((,*(#(//(((((((((####%&##%/\n/*///*//###*/(/,,***/,.,,/*/(*//*,.*..........,****,,/((//////((((#(((##((#&&&&&&(%&@&&@&&&%%##((((#%%&@@@&&&&&&@@@&@&&%#/(##%%%&&%&%%%%%%%#%%%%%%%%%%%%%%%(/%(/(#/*,/#(**/*.*#%#(((*#*///////(#####%%%#\n**/*///(#(((////***,,#*.,,(*,/*/* **,........,,*,*,.***,,,(%%*(((((###%&&&&%%&%%#&&&&&%%%%%%%%&#%#####%%%%%&&&&&&%&&&%%%%(//(#%%%%%%##%####%%%%%%%%%%%%%%&*,#((//**/.(/,**.*(((((((/** .*//(/((((((((%((\n*/((/((/*/,**(#(,**///((*//*,*//,,   .**,. ..,,,**,.,,,,**,**////((#%%%%##%%#%##%%%%%%%###((##&&######(###%%%%%%%%%%%%%%%%##############%%%%%#%%%%%%#*/%%/,#%(**//**,,*,.((//(/**,,*,(#/..,,*//////(//**\n/(,.//*,***/***(#/,*(*//***(,/*/..***/. ,///*,.,.*/...*,.,*,*/((((((###%%%%#####(((###(((/(((###%%###(#%/(#####%%##%%##(((#############%%%%%%#%%%%%%%%#(*,/#/******,,,,,/,***((,  .,*#/***,.  ,,,,,*/((*\n%(#,**,**,***,,/##,**,#*%%*#//***, ..,. .,,.//,/(##(/,  ,*,,*((//(##((#####/(##(/(((#(#%(((((((%%%%%#%%#/((########%###############(((#####%%##%%%%%%#(/*,,*/*,,,,,,,.,*,..** */**,, .//***,*, ....,,,*,\n*/%(#/,(*/***.,,,,,/(/,/#,#**//* /* ./,,..,,,,,/(*/((/*#(*,.,****/((((###((((((###(####(/#%#(/((##%%##%#*(##(########(#########%%%%%%##((((#//####%###**,,./*,,**,,,*,*, ,/*,,.*/***.  ,/**/*.,,,,......\n(*(/(/##((***,*/(#*/*,,,/%((***(#(##/(,...  ,***/*,*((,    .*(#(**///(((###((((((((###((%&%##((///((((#%(*(######&#%%###%%%%%%%#%%%%%%%%%%#(/,/#######*,,(/*,,,,..***((,/,..../%((*.,,,.,,,**/. ...   ..\n***##,(%#*,*,./***,*((*((./(***,. **%#,**///***/*,///(**,.     ***/(#####((##((((((%#######%##((/**/*/#((/*######%#&%%%%%%%%%%%%((#%%%%%%#/*,*,*######%(,//,,....(, .**,,*../*,,,, ...,.  ./***,,*//*  .\n,*/*/,,,/#&&(((****/(*/%%*/*,**,*////%%(, .,/*,,,. ,/(**///(/***.**/(#########(((((((((((#&####((///*((/((*(%####%#&##%%%%######/,*####//*,. ,*,,.,(#%####(,...../ ,//,*.,*, .(/,.  ..,/,.,,***,,,. */*,\n*****//#/.,/#/,//,.,,(*/%((##(*#,..*((/(%#*,*/,,,..,**,,.   .*/,,,*//########(#(((((/////((((####((((///(((,(#(#(%(&#########((#/,,/(/,*#(, .,*,*/(*,*(#%##(#*.../  /,*** ./(,,.,,*/*,. .,.,(.**,,,  ./#\n,,**,/%((/****###(*****((/(***((#%%(*,/,,/(/,**,,,,,,*,./((((/   ..*/(#########(((((((((///(#######((////(#,*//((&/&######(((////*,**//,.  .,,,*,,..*(**,*#%#((/*/,,,,..,*,  .,,,,...,/((*,,#.,.*,,,,,**\n#%#(//#(//,. ..,****#%//*./***,(,.***((((((*,(*,,,..,//*,.,,,,,.,,,,*(########(((///(////(((#%%%%/##(////((**//(#&/&#/##//////////,,*. .....,*,**,,*((,,***,/###(/*, .*,.,*,,,,,*****, .,**,*##,*,,,,*,*\n*,,,##*////*/#%%###***//../***,,,*/((((,((/#%%(##*..,,,,,.(**,,,,,.,/#/(((((((/(((((((((/(#(##((/(((((/////*/*//(&(%(///****//(((/,,*,**********,*,/,.*,.  ..../##((/,  .*//,..,,,**/((/***,(,(,.,*,*,,/\n#/((,/%#/..******,,,*##(((,*,*,.**(((*##*/#/**,*(%%(/(####*,,,,,,,.(/*,*****////((((///#&%#(/////////*#(,(/****//%((#*,*///((/((,.,,,,,.. .*,,*..,,,,**,,,,..,,,,*((((#(., .,.,*.*,*%,**.//,##.//.,, ,//\n/* ,/,,%%*(*//,,///*,,*/(/*****.*((*/,/(((/#*,(%*,*,*(###/(##(//,,.*%#((//////(#%%%#(//#****************(%/******(##%/%#/(((**, *, *,,,.,*,,,**..,,,**,....,,.,,,, ,/((/(*..,. ,%/.//..,/, .*#(,.*//#/,/\n#/,*,/,*(%//#/../**(,,(**/,,,,,,,.*,*/(//(/*#((*.,*/((*/(#//##%#(/,,.(%%%#((/*,,,,,*/(#//****((/**/***,,*/(#(/**((%%((((###*/&%* .*,,,*. .,***,  .,,,,. .,....,,,,,.../(////,,,*/*/(*//,,,*.*(((*.((,*((\n#.,#((**((%%**/**.*,*#%#/******,,(#(,,,*(*(//(/.*/,*/, ,/,.*/(/,.,,,.,,/#%/.,,,,,//*%%/*****/*. .,*****,*/*,,/#/*//(#/(,*//((##/*.,,,,**,,(***. .,,,,,.,,./*. ..*,,,*(**/(//(*,/,.,,*/***.,////(((.,((*(\n%%//#%%(/(#&&(/%&#(/..,***,/((,*,*.,,,*//****/(/*(/*(*,/(*,..*,.*//***.../#%#((((/,./***,*******(%#/,. //*/**/(/*//%##%%((##/***(#/,,,,,****/. .,,*,,,,. //(*,*/ .**,// .,((//////*,.*/*///,,,,/(.**/*((\n(/(//(/*(.,*/&&((((/(#(***/,,,/(.,#((*,*,*,,*,***/((/,,*#*//((*. .,,,/#/. .(#%%#,.*(/,,*(,*%,/##(#//(*//,,/,,,,.,,,(((((,,,/(#((((/**,,,*******,,.**,,,,/(,**/**,***,,,/(. *(////,.,*/*//,, *,/*////(*,*\n(,,(/##/%&%//((%%(((/(#%#,*,,/,*,.,,*/**,*//,.****,,,,,*#*#((%(/(/.*(*&(#(/,,,*,//((#,,,*,(##(/*,..,////,.*,******,*(#/#(..,,..,*****,,,,,***,.,*,,,,,,,.,,*,,,,*,.,,,*...,,,((/*///.../**////**//**/(**\n%%##%%(/(#((*(%((%#//(#(//**,*/**,,,,*.,,/*,,*,,**/((,*##/#/(%#%(/(.,#%((((*.,(/*//((/,,,,***********/////((/((((#*./((,/#*,,,,,#,,**,,,,((/,,,,,,.,,,,,/. ,*,,.. ,*,,,,***/,,,#(*** .//,/,,//,(/,(*.,//\n*/(%%(.,#,(&#%%(*/#%#//***,//.**,,,,,**.,%/*,,,,/(/**((#(,*((//..*..,%/////((((##/*,*/*,,,(*,(#..((((/********,..*,*(##%%%%(//(((/*/*,,,,*,,.**,*,,,.,,,,,,,.,*,.**,,,*,,,,/*,,/#/***,/(..*//,//.,*(*.**\n/,/#((#(&%(%(,/%(((*##/*****(*,*,,.,,,,*/%##,,******(*/(#(*,,..///(/*,/(/(((*,,*,*((*,,,,,,./.#/.**/,,,(/***(#(//*/((///,(///,,,*,****,,,*(,,,,,,,,,,**,,**,, *,,.,(/,,,*(.,**,,*.****//,*/*,(/(/.,(/ ,/\n*(/#(##*(&(/#%&&%%#//%/*(((#((,,*/,,,,,*##/...,/.,/*,.*(/*,*,./*./(//*.((((/../(((****,,**,,*,*%&/**,.  ,,****,*(%#*,..**((/###(/(/((/*,,,/,*//*,,,,...,,.,,..,.**,,.*,,  ,/##(**#,/*,/(./, /****.,//*.(\n*,,,##/#****,,,*%#/#(/#*#*/**(/,,/.,,.*(/*,,,*/(#/(#(,//,./(,,,/(#(.*#,/##%,.,/(((*,,,,,*/*#(/,(*.,/,(,.,,..(/*/*/*#%/**,,,##///*. //**,,,,,/*...,,...,,,,  .,*,,,,,.,,,,.,**,,,*#*./*,.***(*,,*(/******\n,,,,,,,(((&//#*#/#/,,(%/*(%*/(*,,,,/*,(//,,,,,,,*..,,..**(*//*.,*/,,*//.,/*.,,,,,*//,,,,*,,,,*,,// ,%#* .,/**##((((,*(%*%#,,.,,*((*,/((/..,** ,, ......,,,,,,,**.,*/,/((*,//,,*,,*%,./,.*,/(/,*, *,..,//\n,*/*,,,,,*(%#(%#/(%**###*,(%*#(/*,,*((***.,**,,/(,,,***..*//*,..,,,.,,*,,/* ,, ,,,/*,.,, ,,,, ,,,,*#&@,.(*,**(/./*(%/*(&#(%(*,,.*/*/,*/*,.,./,,. .**/*.,,,*,,,,/*,,%. ,,.*/*.*/,*,,,.,*.,,,,.*(##%@&#/*,\n.*#.(#,,,,,,/(((#((%%/(%**%&#/**,,,,../#&@&*,,*,,,,**./*,,,**,,,..,,,,***,,*,,..,,,,,,.,,..,,.****&#/,,*, ,, (/ ,((/**,*/,,%%///****..*/*,...../**(((,*/,,,,,.,#**.##*.,*/*.*/*,,,.. *,.*,**(#*,.,..,/(,\n"); + getch(); +} diff --git a/everything else/george text.exe b/everything else/george text.exe new file mode 100644 index 0000000..0cf9e68 Binary files /dev/null and b/everything else/george text.exe differ diff --git a/everything else/george text.o b/everything else/george text.o new file mode 100644 index 0000000..2ab9d9f Binary files /dev/null and b/everything else/george text.o differ diff --git a/everything else/george.ans b/everything else/george.ans new file mode 100644 index 0000000..93670e6 --- /dev/null +++ b/everything else/george.ans @@ -0,0 +1,81 @@ +.,**,,,,,,,.,*******/,/(,,**.,*#*/*/*,#(,/(/*////((*,***,/#/********///,(&&(*.,***,,,(/*/#(*/.,//##(/**///*///(#(*/*,**,***,**//(/*,****/(*(/, /(,(#///,.,/#%(/,**(###%%%%&&%&&&&&&&&&&&&&&&&&&&&&&%%&%&\n +,,,,,,,,.,,#*,...,(#(//#*.,,,//((%#,/(*/((,**,/*..*#%#/*//##/,,,/,,*/*******/////,,(***/,*##%(**///(((******,*///,,/#(///**(///*********,#%/.((,.*(#(/*,.**(.,((/(##%&%%%%%&&&&&&&&&&&&&&&&%&&&&&&%%%%&&\n +. ,,,,,,,,(%##/**,..,*,///*.(,,#%#,,,*//**#(*,,*(%%%%#/**/%,#/*//,,**/******/.,*/#*.. **/#/(#(((/,. **,***,*(///*/*#(/(((((/#**,,,,****,*/%*,,((#(,,/(**.,/(/,,((#%&&&&%%%%&&&&&&&&&&&&&&%%%&%&%&&&&&&&&\n +,,,.(#(**,(*,,,,***,***##,*//#%##,.,//.,*///(/,,,,,/(#%******//,////////***/*.*/*(*(#(((*%/,,./ ,/**/(/.**//##(//***/////**/(#(,.,.//***,###((/#/.*//#(/*,/**/%&%&%%%%%%%%%%%%%%&&&&&&&&&&%%%%%%&&&&&&&&\n +#**,,, .**,,*,,**,,*(%#////&/(((,*(/,*,/(*/**/((,,, .,//*/**,*/(/,*/*****,.,**(*,(*./(////,*//(*.,,/*(***/((/*.,(/,...**(/(#%%%*((*,,/(*#//(/(/.,//((/##(/(#%%%%%%%&&&&&&&&&&&%%%%&&&&&&&&&%&&&%%%&&&&&&\n +,.///******,*(**  .,*(#%%#%%(((/((**,.*/(((,,*//(##*,****/***/*/(.,,*/*/**,,*#/,*/*//((*,,*(//(//***/**,**/(/**,*/*#%(,,***/*,,,//#%##(/#//(/,(%,*(##/(%&/%%%%&%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&\n +*,*(/,**,***,**////%%(/((,.*///#/..*(#//*#///(#//(*//,**,****/**,//***/. .,,,*/*,.#%*,**(#/(#((##(///******,*****,***(####(/*,,,,*/*,(,*/*(#,.*&(,(###%%%%%%&&&&&&&&&&&&&@&&&&&&&&&&&&&@&&&&&&&&&&&&&&&&\n +,*,(/*,,//,,,,,*(/((/*. ,/////((##(*.*,/*#((,/(*,,,***/*,****,***,.,,,,***,,,,*/..*(/*..,**,**,**,,*,***/###%%#%(******/*((/((/**%&///%(,(/(#&%#&(%%%%%&%&%%&&&&&&&&&&&&&&&&&@@&&&&&&&&&@&&@@@@@@&&@@@&&\n +%*,/*,**/,,,(/,,,**/((//////(##/(#####%%%#(/(##//*,,,/*.***//,///**/(/*///..*(%&%*,***/**,,**,.,*////##(/*//*,/##(*,*/*,/*/((%%%(((/(*//*(((((%&&&&&%&&&&&&&&&&&&&&@@@&&&&&&%&&&&&&&&&&@@@@@@@@@@@@@&&@&\n +(%*(#*,*((****/(*,,*,,*****,,.. .*(..**/(#(***((#&@@#**/(((///***,///#*/,*/,.,**//*,,//..,,,,(/*//#%((####%%&&%%&&&%%#(/(###%%&%#%######%%#&&@@&@&&&&&&&&@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@@@@@@@@@&&&&&\n +,(%(%%%,*, .,(*..(/*,,,,,,,*//(((((*.**((#%@@@@@@@@@@@@@@@@@@&@@@@@#(/**(.(#/,/(/*(&(,//**/(/(#%%&&&&&&&&&&&&&&&&&&&&@@&%%&&&&@&&&&&@@&%&&&&&@@@&@@@&&&&&&&&&&@@&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@@@&&&&&&&\n +#%*,*(#(#((//,  ,,*.....,,,****/((#/,/(/(#&@@@@@@@&@@@@@@@@@@@@&&&&&&@@@@@%((//***////#%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@&&&&&&&&&&@&&&&&%%&&&&@&&@@@@&&&&&&&&&@&&&&&&&&&&&&&&&&&&&%&&&&&&@@@@&&&&&&&&&\n +%/,.,*/##///((/*,*,.....**/#/((* ,(((*,**//&@@@@@@@@@@@@@@@@@@@@@@@@@&@@@&&&@@@@%%#%&&@&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@&&&&&&&&&&&&&&&&@@&&&&&&&&&&&@@@@@@&&&&&&&&@@&&&&&&&&&&&&&&&&&&%%%&&&&&@&&&&&&&&&&&\n +%#,.//**,*(/(/**,,.//.,,,*###(/((#/,((((##,*%@@@@@@@@@@&@@@@@@@@@@&&&&@@@@@&&%@@@@@@&&&&&&&&&&&&&&&&&&&&%%%&&&&&&&@&&&&&&&&&&&@@&&&&&&&&&&&@%%%&&&&&@@@&&&&&&&&&@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n +((.*/(,..*.*((*,*(,(*,...*#/(#(//,,*/(##(((**/%@@@@@@@@@@@@@@@@@@@@&&%%&@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%&&&&&&&&&&&&&&@@@&@&&@@@&&&&%%%&&&&&&@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&&&&&&&@&&&&\n +/*./**/##*. .*,,/(*/(,*#*,,*,(*****,#%/#(///*.,*(%@@@@&@@@@@@@@&@@@@@&&&@@@@@@&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%#%&&&&&&&&&&&@@@@@@@@@@&@&&&%%&&&&&&&&@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n +*/*/,,*(##*.*,,*//*///(#//((*******/#,*/((((((((((/(&@@@@@@@@@@@@@@@@@&&@@@@@@&&&#&&&&&&&&&&&%%%%%%%%%%%%&&&&&%%###%%&%%&&&&@@@@@@@@@@@@@@&&%&&%&&&&&&@@@@@@&&%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@&&&&&\n +*/*((.(*,*(/,,,,**/(////(#%(/****.,(#,#*/**/////((///*%@@@&@@@@@@&@@&@&%@@&&&@&&&%&&@&&&&%%%&%%%&%%%%%%%%%&&&&%%%###%%%%%%%&@@&@@&&@@@@@@@@&@&&&%%&&@&&&&@@@&&&&&&&@@&&&&&&&&&&&&@&&&&&&&&&&&&&&&&&&&&&&\n +/,*/#((/%,**,***//(,*/(////(%%*,**//((/#(///*,,/((((/(/*(@@@&&&&&&&&&&&&&&@@&&&&&&&&&&&&&&&%&%%%%%%%%%##%%%&&&&%%%%%#%%%%%%%%&@@@&&&&&@&&&@@&&&&&%&&&&&&%%&&&&@&&&&&&&&&&&&&&&&@&&&&&&&&&&&&&&&&&&&&&&&&\n +,*/#,*#*.**,***/(#(*(///////**##,,(/**(##(///***((/((((*,*/&@@&&&&&&&&&@@@@@@@&&&&&&&&&&&%%%%&%&&%%%%%###%%&&&&&&%%%%%%%&%%%%%&@@@&&&&&&&@&@@&&&&&%&&&@&%##%%%&&&&&@&&&&&&&&&@@&&&&&&&&&&&&&&&&&&&&&&&&&\n +**/(#(,,**,.,**//*#*////(((((%&%((((((/((((///*,*#/***(((//*/%@&&&&&&%&@@@@@@&&&&&&&&&&&&&&&&&&&&%%%%####%%&&&&&&%%%###%%&&&&&%%%&@@@&&@&&@&@@&&&&%%%&&&%#%%%&@%%%&&@@&&&&&&&&@&@&@&&&&&&&&&&&&&&&&&&&&&\n +*/%%##(/*,,((,(*.,,****((%#/**//**//////((####(##((((//(/*/(((#&&&&&&&&&@@@&&&&&&&&&&&%%&%%%&&&%%%%#%%%#&@&&&&&&%%######%%&&&@&%%%&@&&@&@&&&&@@&%%%&%#%&#%%%%&&&&%%%&&&@@%&&&&&@@&@@@&&&&&%&&&&&&&&&&&&&\n +/(%/.*/*,,//#/**(#/,(%%%#/*/**/(((*##(*/*,(//(((**((*//,,*(##(((&@&&&&&&@&&&&&&&&&&&&&&&&&&&&&%%##%%&&&&&&@&&&%%%########%%&@@&%%#&#%&&&&&%&@&@@&&&&&%#&%#%&@&&&&%%%%%&&@@&&&&&&&@@&&&&&&&&%%&&&&&&&&&&&\n +**,,.,/,,,*//%**###%%(((##/*/*,**/(%#/(//*/(/*((/*/%((##%#//*/(#&@&&&&&&&&&&%%&&&&&&&&&%&&&&&%(###%&&&@@@&@&&&%####%%%%%##%%@&&%%&%&@#%@%%@%#&&@&&&#%&&%#%&&&&&&%%%&%%%&&&&@&%@&&&@&&&&&&&&&%&&&&&&&&&&&\n +/(/..*,,,*/(((//#(,**,/ *//, **/////((///,*/#/,*/*/##%#(**,/##((&&%%&&&%#%&&&&&&&&&&&&&&&&&&%(#%%%&@@@@@@@@&%%###%%%&%%%%#%%%%&&%@@@#%%#@&%%&%&&@@&&&%%%#&%&&&%%%&&%%%%%%&&&@@%&&%&&&&&&&&&&&&&&%%&&&&&&\n +/(*./*.*(((((((/(#/***,.. ,*///*/***,/(////*/#/,,((%#%/*///##(/(#%%%%%%%%&&&&&%%&&&&&&&&&&%#(##%&&&@@@@@@&&%####%%%&&&&&@&&#%%&&@@&%&%%@%%&@&%%&@@&&&&@&%%%%%##%%%&%%%%%%%%&&@@&&&%&&&&@&&&&&&%%%%%%&&&&\n +*****,,*(#/*((***/,**,.,//**,/(*,*,*/*##///*/(//(#(,##*,(%#/,*(%%%&%&&&&&&&&&&&&&&&&&&&&%%((#%%%&&@@@@@@@@&##(%%&&@@@@@&@&&#%&@&@&%@&@@%%&@&&%&&&&&&&&&&%#%%%#%%&%%%%%%%%%%%%&&&&&&&%%&&&&&&&&%%%%%%&&&&\n +/,,*,,*//((/,/(*,  ****,..,(/*(%(/,,***#(,,//***///*//*/#(/**/%%&&%&&&&&&&&%%%%&&&&&&&&&%##%%%%%%%&&&&@@@@%###&&@@@@@@@@@@&#@#%@%%&&@@%&@&&&@&%%&&@@&&&%#(%%#%%%&%%%%%%%%%%%%%%&&&&&&&%%&&&&&&&%%&%%&&&&\n +*/*,*,,**//(//*,*****,...*(//,//%%*,/.*(/,#*///*,*(***/(/**(//#%%%&&&&&&&&&&&%&&&&&&&&@&%%&&%%%%%%%&&&&@@&##%&@@@@@&@&@@@@&@%%@@&&@@&&@@&&@@&&%%&&&@@@&&%&%%%#%%&&%%%%%%%#%%%%#%%&&&&&&%#%&&&&&%%#&&&&&&\n +%#*,,..,(/(/**//,((((/**,*/**/#/.*#/.*,,#**(#**//(//(#/(//,/(##%%%%%%%&%&%%%%%%%%%%%&&&&%#&%#%%#&@%&&@@&&%#%&@@@@@@@&&&@@@@%%@@&&@@&&@&&@@&@&&&%&@&&&&&&%%@#%#(%%%%%%%%&%%#%%##%%&&&&%%%&%#%&&&&&&%%#%%%\n +.*,,.,,/(*(****,,.*///////*(%&%#//,,/(/,((////(*/(/*/#///.*/(#%%&%%%@&&&&&%%%%%%%%%%%&&&%#&%#%##&&%%&&&%##%%@@@@@@@@@@@&@@&%@@&@@@&&@&&@&&&&&@@&&&&&&&@&&&@%%######%%%%%%%#%%###%%%&&%%&%%#(#&&&&%%%%%##\n +**,,....,(///////,./(((/,/(((##(/(/,(/***#(**.,/((/(#((((/*(###%&&&&&%%%&%&%%&%%##%%%&&&%#@&%%##%&%#%&%##%%&@@@@@@@@@@@@@@@@@@&@@&@@&@@&&&&@@&@&&&&@&&&&@&%%&####%&&&&%%##%%%%#((##%%&%%%%%%##&&&%%%%%&&\n +*,.,///*,#* .(*.//.*((**###(#/,,(/./#(/**(/,/*,,*/(//#//#**/#%%###%%&&&&&&&&&&&%%%#%&&@@%#@&%%######%&%%%&&@@@@@@@@@@@@@@@@@@@@@&@@@@&@@@@&&&@&&@@@@&@&&@&%%%%%#%%&&&&%%#%%##%%%%###%%%%%%%##((#%%%%%#%%\n +/*.   ,. ****((/((*.**/###*/(%%(/#(*,/**,,,,*****((/**((#(/((###(%%%%%%&&&&&&&&&&%&&&&@@@(@@&%%##(##%&&&&%&&@@@@@@@@@@@@@@@@@@@@@&@@&@@@@&&&@@&@@@&@&&&&&&%&@%%#(#%%%&&&%########%##((####%%%%%%%%%#####\n +.**((//**/*,,,*//***/(//*/((#&&%####/*#,//***/(%%#/(((((#(#%####%%%%&&%&&%%&&&&&&@@@@@@@@%&@@%%#####%%&%%&&@@@@@@@&@@@@@@@@@@@@@@@&#@@&&&%&@@@&@@&@&&&@@@@&#&&&%#(((#%&%%%%%%%#(#%##(((##%%%%%%%&%%&%##%\n +/  ..., .,***,(##/**,///,/(////*//(#%##*//***,.,,,*//(,*//###((###%%%%%&&%%%###%%##%@@@@@@#@&&&%####%&&&&@&@@@@&@@&@@&@@@@@@@@@@@@%@%&&@@@@@@@@@@@@@@@@@@@&%#@%#((/(%%&&&%%%%%%%#####(((###%%%%%###&&#%%\n +,.*****,,,**,,/,,*/*,**, ,/#/*//(///#/#(#%#(/(//,******#######(/##%#((%%&&&&&####%%%&@@@@@%%@@@&%###%&&&&&@@&@@@@@&&@@@@@@@@&@@@@@&%@@@@@@@@@@@@@@@@@&&&&&&&&&##((##&%%%&%%%%%%%%%####(#####%%%%####%&&&\n +,,,,,..,((#/*,*, ,,,,*///,..,#(.*,///*/((*,/,,**,*/,.*,*(####(((((#%&##%@@@@@@@@@@@@@@@&&@@##&&@@@%#&&&&&&@@@@@@@&%@@@&@@@@@@@@&@@%@@&@@@@@@@@@@@@@@&&&&&&&&&&@%(%&@&(%%&&%%%%%%###%%#((##(#%%%%%%%#%%%%\n +.((,,(****.,,,,*.,*,.,//.,((*#*,,,*/(**((/,**,,**,/(//(#%###(((###%%&&%((###&@@@@@@@@@@@@@@&#(#%&&@&@&&&&&@@@@@@%%@@@@@@@@@@@@&@@@@&@@@@@@@@@@@@@@&@@&&&&&&&&&@%(##@@&#(#%%%%%%%#######/(#####%%%#####%%\n +/.*,*//*(/,,*///*,,./(.,**(,****/(*,*(/****, ,*/****/(#%#######((###%%%%#((#%&&%%&&@@@@@@@@@&%(####%%%&&&&@@@@@@&@@@@%&@@@@@@@@@@@@@@@@@@@@@@@@@@&@@&&&&&&&%&&&&#%%%@&#(###%%%###(((((((#######%%##%#%%%\n +(#(,*,,/(*,.**,*/#,.,..**//**/(##*/*/*,*,**////(((/(%%%##(#%%#####(###%&&&&#%&@&&@@&&@@@@@@@@@&###%%%#%&&@@&@@@%%@@@&@@@@@@@@@&@@@@&&@@@@@@@@@@&@@@@@&&&&%%&%%%%%%&&&%&&%%%%%%%%%%######(((#####%#%%%%%%\n +%*/*,,/(,,,,,*,,,*/%%/*((#//*/,,///(***,,,*, ,*/(#########(((((######((((#&&@@&&&&&%&@@@@@@&@@&&&&@&&&&&&@@@@@@@@@@@&@@@&&@@@@@@@@@&&@@@@@@@@@@@@@&&&&&&&&&&%%&@%#&&%##&@%%%%%%%%%##############(##%%%##\n +(((,,**//,..,/%&%((///*../.,***,,****/*,,,*((#(############(/(###((#####(/(//(#%&&&&&&&@@@@@@@&&&%#%%%%&@@@@@@@@@@&&@@@@@@@@@@@@@&%%&&@@@@@@@@@&&&@@@@@@&&%%%%&&@#&@@%#%&&%%%%%%%%%#####################\n +*/#**,*(,,(%#*(**(#*,/(//((*/(,*,**,/((,,,/####((###((####((/##%%%#####(((#%%%%%%%%&&&&&&&@&&&&&&%%%%%%&@&&@@@@@@@@@@@@@@@@@@@@@&##&&@@@@@@@@@@@@@&&&&&&&&&&%%&&@%#@@&%%&&%%%%####%%####%#####(#(##(####\n +/(**/((%#//%*,**,*/#((///******,,((((((,.,/##((###((((#%#(/,,*(##%&%%%%######%%%%%%%%%&%%&&@&&%%%%%%%%%&&@#&@@@@@@@@@@@@@@@@@@&(#&@@@@@@@@@@@@@@&&&&&&&&&&%##%%&&%##@&%%&%%%%%%##%%%%%%%%##%###(((((####\n +**%%%(,,/,,#,.,(,/#%%%&&&&&&@&(,*%@&&&&*,,#%%%%%%%%(##/,,,,/###((((((##%%%&%%%%%%%%%%%%&&&&%%##%%%%%%%&%%#/#&@@@@@@@@@@@@@@&&#%&&&&&@@@@@@@@@@@@@&&&&&&&&&%&&%&@&%###&%%%###########%%%%%%#(#%###//(((/(\n +,,/#(*,*/(,,.*/#%&&%%%%#%&@@@@&**(@&&@#/,,%&&%%###(/,,,,*(#(####((((//////(#%%%%%###%#(##((#####%##%%####/*/%@@@@@@@@@&@&&&%##%&@@@@@@@@@@@@@@@&&&&&&&&&&%%&##%&&%#%###%##(((##########(#####/(##((((///\n +,#*,///**((/(((#####%%&&&%#(((#,*/&&#*,,,*%*/%&%(,.,,,/((#%%##((((#%&&%&%%%%%%%##%##((###((((((#%%%%#((###%&%%&@@@&&&&&&&%##%%&@@@@@@@@@@@@@@@@@&&&&&&&&&&&%#%%%&%#%%#/####((#####((%%&&%######/(((((#((\n +*,,,****#%(///((##%/#%%%(**////*,#%*.*/*,*,/*/*,.,,*///((((((###%%%%#(((%%%&&&&%%%%%%%%%###((((##%&%((((########%%%%%%%#(#%%%&&@@&@@@@@@@@@@@&&&&%&&&&&&&&&%%%%%%(#%&%####((//((##%/**#%#########/(###%%\n +*,*,,(#((#%%/,(((#((##**((//**/**.,,,*(,,,,,,,,,,**/(##%#(((((##########(/(#%&&&&&&&&&&%&%(((//((##(((((((((####%%%%%#(/#%%%%&&&&&&&&@&@@&&&&&%%%%%%&&&&&%%%%#%((#%#((#####(((((##*,/%%%##(/(((####/#%%%\n +/,..*/**//(/,,(/**/(*,**..,&#*(((.,,*.,,,,,..,,,*//(((/(###(((###%%&&&&&&%#((#%%&&&&#//***,*/(////(/////,*/(%@@@@@@&&%%#(##%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%&%%%#(*(((/%#######/(/,,(#/(##%##(//(###%%#/#%\n +,/(/*//***,(*/%*****,,**(*/%#,*//.,,*...,...,,,,*////(#%%#((((((#%#%%##%%%#%&&&@@@%#&@@&@&%##(((((((((/*(%&@@&&@@@&&&%%%((##%%&&&&&&&&&&&&&%%%%%%%%&&%%%%%%&%###((##/*#((#/*((,*(#(//(((((((((####%&##%/\n +/*///*//###*/(/,,***/,.,,/*/(*//*,.*..........,****,,/((//////((((#(((##((#&&&&&&(%&@&&@&&&%%##((((#%%&@@@&&&&&&@@@&@&&%#/(##%%%&&%&%%%%%%%#%%%%%%%%%%%%%%%(/%(/(#/*,/#(**/*.*#%#(((*#*///////(#####%%%#\n +**/*///(#(((////***,,#*.,,(*,/*/* **,........,,*,*,.***,,,(%%*(((((###%&&&&%%&%%#&&&&&%%%%%%%%&#%#####%%%%%&&&&&&%&&&%%%%(//(#%%%%%%##%####%%%%%%%%%%%%%%&*,#((//**/.(/,**.*(((((((/** .*//(/((((((((%((\n +*/((/((/*/,**(#(,**///((*//*,*//,,   .**,. ..,,,**,.,,,,**,**////((#%%%%##%%#%##%%%%%%%###((##&&######(###%%%%%%%%%%%%%%%%##############%%%%%#%%%%%%#*/%%/,#%(**//**,,*,.((//(/**,,*,(#/..,,*//////(//**\n +/(,.//*,***/***(#/,*(*//***(,/*/..***/. ,///*,.,.*/...*,.,*,*/((((((###%%%%#####(((###(((/(((###%%###(#%/(#####%%##%%##(((#############%%%%%%#%%%%%%%%#(*,/#/******,,,,,/,***((,  .,*#/***,.  ,,,,,*/((*\n +%(#,**,**,***,,/##,**,#*%%*#//***, ..,. .,,.//,/(##(/,  ,*,,*((//(##((#####/(##(/(((#(#%(((((((%%%%%#%%#/((########%###############(((#####%%##%%%%%%#(/*,,*/*,,,,,,,.,*,..** */**,, .//***,*, ....,,,*,\n +*/%(#/,(*/***.,,,,,/(/,/#,#**//* /* ./,,..,,,,,/(*/((/*#(*,.,****/((((###((((((###(####(/#%#(/((##%%##%#*(##(########(#########%%%%%%##((((#//####%###**,,./*,,**,,,*,*, ,/*,,.*/***.  ,/**/*.,,,,......\n +(*(/(/##((***,*/(#*/*,,,/%((***(#(##/(,...  ,***/*,*((,    .*(#(**///(((###((((((((###((%&%##((///((((#%(*(######&#%%###%%%%%%%#%%%%%%%%%%#(/,/#######*,,(/*,,,,..***((,/,..../%((*.,,,.,,,**/. ...   ..\n +***##,(%#*,*,./***,*((*((./(***,. **%#,**///***/*,///(**,.     ***/(#####((##((((((%#######%##((/**/*/#((/*######%#&%%%%%%%%%%%%((#%%%%%%#/*,*,*######%(,//,,....(, .**,,*../*,,,, ...,.  ./***,,*//*  .\n +,*/*/,,,/#&&(((****/(*/%%*/*,**,*////%%(, .,/*,,,. ,/(**///(/***.**/(#########(((((((((((#&####((///*((/((*(%####%#&##%%%%######/,*####//*,. ,*,,.,(#%####(,...../ ,//,*.,*, .(/,.  ..,/,.,,***,,,. */*,\n +*****//#/.,/#/,//,.,,(*/%((##(*#,..*((/(%#*,*/,,,..,**,,.   .*/,,,*//########(#(((((/////((((####((((///(((,(#(#(%(&#########((#/,,/(/,*#(, .,*,*/(*,*(#%##(#*.../  /,*** ./(,,.,,*/*,. .,.,(.**,,,  ./#\n +,,**,/%((/****###(*****((/(***((#%%(*,/,,/(/,**,,,,,,*,./((((/   ..*/(#########(((((((((///(#######((////(#,*//((&/&######(((////*,**//,.  .,,,*,,..*(**,*#%#((/*/,,,,..,*,  .,,,,...,/((*,,#.,.*,,,,,**\n +#%#(//#(//,. ..,****#%//*./***,(,.***((((((*,(*,,,..,//*,.,,,,,.,,,,*(########(((///(////(((#%%%%/##(////((**//(#&/&#/##//////////,,*. .....,*,**,,*((,,***,/###(/*, .*,.,*,,,,,*****, .,**,*##,*,,,,*,*\n +*,,,##*////*/#%%###***//../***,,,*/((((,((/#%%(##*..,,,,,.(**,,,,,.,/#/(((((((/(((((((((/(#(##((/(((((/////*/*//(&(%(///****//(((/,,*,**********,*,/,.*,.  ..../##((/,  .*//,..,,,**/((/***,(,(,.,*,*,,/\n +#/((,/%#/..******,,,*##(((,*,*,.**(((*##*/#/**,*(%%(/(####*,,,,,,,.(/*,*****////((((///#&%#(/////////*#(,(/****//%((#*,*///((/((,.,,,,,.. .*,,*..,,,,**,,,,..,,,,*((((#(., .,.,*.*,*%,**.//,##.//.,, ,//\n +/* ,/,,%%*(*//,,///*,,*/(/*****.*((*/,/(((/#*,(%*,*,*(###/(##(//,,.*%#((//////(#%%%#(//#****************(%/******(##%/%#/(((**, *, *,,,.,*,,,**..,,,**,....,,.,,,, ,/((/(*..,. ,%/.//..,/, .*#(,.*//#/,/\n +#/,*,/,*(%//#/../**(,,(**/,,,,,,,.*,*/(//(/*#((*.,*/((*/(#//##%#(/,,.(%%%#((/*,,,,,*/(#//****((/**/***,,*/(#(/**((%%((((###*/&%* .*,,,*. .,***,  .,,,,. .,....,,,,,.../(////,,,*/*/(*//,,,*.*(((*.((,*((\n +#.,#((**((%%**/**.*,*#%#/******,,(#(,,,*(*(//(/.*/,*/, ,/,.*/(/,.,,,.,,/#%/.,,,,,//*%%/*****/*. .,*****,*/*,,/#/*//(#/(,*//((##/*.,,,,**,,(***. .,,,,,.,,./*. ..*,,,*(**/(//(*,/,.,,*/***.,////(((.,((*(\n +%%//#%%(/(#&&(/%&#(/..,***,/((,*,*.,,,*//****/(/*(/*(*,/(*,..*,.*//***.../#%#((((/,./***,*******(%#/,. //*/**/(/*//%##%%((##/***(#/,,,,,****/. .,,*,,,,. //(*,*/ .**,// .,((//////*,.*/*///,,,,/(.**/*((\n +(/(//(/*(.,*/&&((((/(#(***/,,,/(.,#((*,*,*,,*,***/((/,,*#*//((*. .,,,/#/. .(#%%#,.*(/,,*(,*%,/##(#//(*//,,/,,,,.,,,(((((,,,/(#((((/**,,,*******,,.**,,,,/(,**/**,***,,,/(. *(////,.,*/*//,, *,/*////(*,*\n +(,,(/##/%&%//((%%(((/(#%#,*,,/,*,.,,*/**,*//,.****,,,,,*#*#((%(/(/.*(*&(#(/,,,*,//((#,,,*,(##(/*,..,////,.*,******,*(#/#(..,,..,*****,,,,,***,.,*,,,,,,,.,,*,,,,*,.,,,*...,,,((/*///.../**////**//**/(**\n +%%##%%(/(#((*(%((%#//(#(//**,*/**,,,,*.,,/*,,*,,**/((,*##/#/(%#%(/(.,#%((((*.,(/*//((/,,,,***********/////((/((((#*./((,/#*,,,,,#,,**,,,,((/,,,,,,.,,,,,/. ,*,,.. ,*,,,,***/,,,#(*** .//,/,,//,(/,(*.,//\n +*/(%%(.,#,(&#%%(*/#%#//***,//.**,,,,,**.,%/*,,,,/(/**((#(,*((//..*..,%/////((((##/*,*/*,,,(*,(#..((((/********,..*,*(##%%%%(//(((/*/*,,,,*,,.**,*,,,.,,,,,,,.,*,.**,,,*,,,,/*,,/#/***,/(..*//,//.,*(*.**\n +/,/#((#(&%(%(,/%(((*##/*****(*,*,,.,,,,*/%##,,******(*/(#(*,,..///(/*,/(/(((*,,*,*((*,,,,,,./.#/.**/,,,(/***(#(//*/((///,(///,,,*,****,,,*(,,,,,,,,,,**,,**,, *,,.,(/,,,*(.,**,,*.****//,*/*,(/(/.,(/ ,/\n +*(/#(##*(&(/#%&&%%#//%/*(((#((,,*/,,,,,*##/...,/.,/*,.*(/*,*,./*./(//*.((((/../(((****,,**,,*,*%&/**,.  ,,****,*(%#*,..**((/###(/(/((/*,,,/,*//*,,,,...,,.,,..,.**,,.*,,  ,/##(**#,/*,/(./, /****.,//*.(\n +*,,,##/#****,,,*%#/#(/#*#*/**(/,,/.,,.*(/*,,,*/(#/(#(,//,./(,,,/(#(.*#,/##%,.,/(((*,,,,,*/*#(/,(*.,/,(,.,,..(/*/*/*#%/**,,,##///*. //**,,,,,/*...,,...,,,,  .,*,,,,,.,,,,.,**,,,*#*./*,.***(*,,*(/******\n +,,,,,,,(((&//#*#/#/,,(%/*(%*/(*,,,,/*,(//,,,,,,,*..,,..**(*//*.,*/,,*//.,/*.,,,,,*//,,,,*,,,,*,,// ,%#* .,/**##((((,*(%*%#,,.,,*((*,/((/..,** ,, ......,,,,,,,**.,*/,/((*,//,,*,,*%,./,.*,/(/,*, *,..,//\n +,*/*,,,,,*(%#(%#/(%**###*,(%*#(/*,,*((***.,**,,/(,,,***..*//*,..,,,.,,*,,/* ,, ,,,/*,.,, ,,,, ,,,,*#&@,.(*,**(/./*(%/*(&#(%(*,,.*/*/,*/*,.,./,,. .**/*.,,,*,,,,/*,,%. ,,.*/*.*/,*,,,.,*.,,,,.*(##%@&#/*,\n +.*#.(#,,,,,,/(((#((%%/(%**%&#/**,,,,../#&@&*,,*,,,,**./*,,,**,,,..,,,,***,,*,,..,,,,,,.,,..,,.****&#/,,*, ,, (/ ,((/**,*/,,%%///****..*/*,...../**(((,*/,,,,,.,#**.##*.,*/*.*/*,,,.. *,.*,**(#*,.,..,/(,\n + \ No newline at end of file diff --git a/everything else/george_zoom_in_but_crispy.ansi.txt b/everything else/george_zoom_in_but_crispy.ansi.txt new file mode 100644 index 0000000..20c542c --- /dev/null +++ b/everything else/george_zoom_in_but_crispy.ansi.txt @@ -0,0 +1,28 @@ +\033[0;5;33;40m8\033[0;5;30;40m8\033[0;5;33;40m@8t X\033[0;5;37;40m8\033[0;1;30;47m8\033[0;5;33;40m :\033[0;5;37;40m88\033[0;5;33;40m:\033[0;1;30;47mX\033[0;5;33;40m%.\033[0;5;37;40m88\033[0;5;33;40mt.\033[0;1;30;47m%\033[0;5;37;40m8\033[0;1;30;47mS\033[0;5;33;40m%;.\033[0;5;37;40m8\033[0;5;33;40m.. \033[0;5;37;40m8\033[0;5;33;40mX\033[0;1;30;47m@\033[0;5;30;40m8\033[0;1;30;47mS\033[0;5;33;40m.\033[0;1;37;47mXS\033[0;5;37;47m888\033[0;1;37;47m%\033[0;5;37;47m8\033[0;1;37;47mX@\033[0m +\033[0;5;33;40m@S;\033[0;5;32;40mX\033[0;5;33;40mS\033[0;5;37;40m88\033[0;1;30;47mS\033[0;5;33;40mX.\033[0;1;30;47m8\033[0;5;33;40mX\033[0;1;30;47mX\033[0;1;30;43m8\033[0;5;33;40m.\033[0;5;37;40m8\033[0;5;33;40mt%t\033[0;5;37;40m8\033[0;5;33;40mt :8 .\033[0;1;30;47mX\033[0;5;33;40mt:\033[0;1;30;47m %\033[0;5;33;40mS \033[0;1;30;47mt\033[0;5;33;40m:\033[0;5;37;40m8\033[0;5;33;40m.\033[0;1;30;47m;\033[0;1;37;47mS8SS\033[0;5;37;47m88\033[0;1;37;47m%\033[0;5;37;47m888\033[0m +\033[0;5;33;40m.t;.\033[0;5;37;40m8\033[0;5;33;40m% \033[0;1;30;47m:\033[0;5;33;40m;\033[0;1;30;47mS\033[0;5;33;40m%\033[0;5;37;40m8\033[0;5;33;40mX:tt @;;.\033[0;5;37;40m8\033[0;5;33;40m:\033[0;1;30;47mS\033[0;5;33;40m%\033[0;1;30;47m;X\033[0;5;33;40mS\033[0;1;30;47mX\033[0;5;33;40m;\033[0;5;37;40m88\033[0;1;30;47mX\033[0;5;33;40m:\033[0;1;37;47mtS8@8\033[0;5;37;47m8@8888888\033[0m +\033[0;1;30;47m:\033[0;5;33;40mt: ttt\033[0;1;30;42m8\033[0;5;33;40m8:\033[0;1;30;47mt\033[0;1;37;47mSt\033[0;1;30;47m \033[0;5;33;40mt :%\033[0;1;30;47m@\033[0;5;33;40m;8%\033[0;1;37;47m;\033[0;1;30;47m;\033[0;1;37;47m:XX\033[0;1;30;47m@\033[0;1;37;47m:8\033[0;1;30;47m \033[0;5;37;47mS;\033[0;1;37;47m8\033[0;5;37;47mX\033[0;1;37;47m8\033[0;5;37;47m@8\033[0;5;1;33;47m8\033[0;5;37;47m8\033[0;1;37;47mt\033[0;5;1;33;47m8\033[0;5;37;47m8%S@\033[0m +\033[0;5;33;40m \033[0;1;30;47m \033[0;5;33;40m:;%X\033[0;5;37;40m888\033[0;1;30;47m;\033[0;1;37;47m8\033[0;5;37;47m ;;..;\033[0;1;37;47m8t\033[0;1;30;47m \033[0;1;37;47m:8\033[0;5;37;47m88888@XXSXX\033[0;1;37;47m8\033[0;5;37;47m@t8@\033[0;5;1;33;47m8\033[0;5;37;47m888888@\033[0;5;1;33;47m@\033[0;5;37;47m8\033[0m +\033[0;5;33;40m.%;t\033[0;5;37;40m8\033[0;5;33;40mS\033[0;1;30;47m8\033[0;5;33;40m%t\033[0;1;30;47m;\033[0;1;30;43m8\033[0;1;37;47mt\033[0;5;37;47mS:tt8%S\033[0;1;37;47m8\033[0;5;37;47m@88\033[0;1;37;47m%\033[0;1;33;47mS\033[0;1;37;47mt\033[0;1;33;47m%\033[0;5;37;47m888XSS\033[0;1;37;47m88\033[0;5;37;47m8t8888\033[0;5;1;33;47m8\033[0;5;37;47m888888\033[0m +\033[0;5;37;40m8\033[0;5;33;40m t%\033[0;1;30;47mS\033[0;5;33;40m.\033[0;1;30;47m \033[0;5;33;40mt \033[0;1;30;47m.\033[0;5;33;40mX \033[0;1;30;47m \033[0;5;37;47m%@8%@88\033[0;1;37;47mSX\033[0;1;33;47m%\033[0;1;37;47m \033[0;5;37;47m88\033[0;1;33;47mX\033[0;1;37;47m.\033[0;5;37;47m88@X%\033[0;1;37;47m@\033[0;5;37;47m8\033[0;5;37;43m8\033[0;5;37;47m8888888\033[0;5;1;33;47m8\033[0;5;37;47m888\033[0m +\033[0;1;30;47mSt\033[0;5;33;40mX:@\033[0;1;30;47mS\033[0;33;47m8\033[0;1;30;47m:\033[0;33;47m@\033[0;1;30;47mS.\033[0;33;47m@\033[0;1;30;47mX\033[0;1;30;43m8\033[0;1;30;47m8\033[0;5;37;47mX8%88\033[0;1;37;47mt\033[0;5;37;47m88\033[0;1;37;47m.\033[0;5;37;43m8\033[0;5;37;47m88\033[0;1;37;47m \033[0;1;33;47mS\033[0;5;37;47m8\033[0;1;37;47m:\033[0;5;37;47mXS8X\033[0;1;37;47m.\033[0;5;37;47m8\033[0;1;37;47m \033[0;5;37;47m8\033[0;5;1;33;47m8\033[0;5;37;47m888888\033[0;5;1;33;47m8\033[0;5;37;47m8\033[0m +\033[0;5;33;40m:8 \033[0;1;30;47m:S\033[0;1;30;43m8\033[0;5;33;40m::\033[0;1;30;47mt\033[0;1;30;43m8\033[0;1;30;47m@\033[0;5;33;40m:\033[0;1;30;47m \033[0;5;33;40m \033[0;1;30;47mX\033[0;1;37;47mS\033[0;5;37;47m8\033[0;1;37;47mS\033[0;5;37;47m88\033[0;1;37;47m;\033[0;5;1;33;47m8\033[0;1;33;47mS\033[0;5;37;47m888\033[0;1;37;47m \033[0;5;37;47m8888\033[0;1;37;47m%\033[0;5;37;47mX8\033[0;1;37;47m \033[0;5;37;47m88\033[0;1;37;47m \033[0;5;37;47m8\033[0;5;1;33;47m@\033[0;5;37;47m88\033[0;5;1;33;47m8\033[0;5;37;47m888\033[0m +\033[0;5;33;40m;@\033[0;1;30;47mt\033[0;1;30;43m8\033[0;5;33;40mX\033[0;5;31;40m8\033[0;5;33;40m \033[0;1;30;47m;\033[0;5;33;40m8\033[0;5;37;40m8\033[0;5;33;40m:.\033[0;33;47mX\033[0;1;30;47mX\033[0;1;30;43m8\033[0;5;37;47m8\033[0;1;37;47mS\033[0;5;37;47m8\033[0;1;37;47mt\033[0;5;37;47m88\033[0;1;37;47m \033[0;5;37;47m8888888888888\033[0;1;37;47m.\033[0;5;37;43m8\033[0;5;37;47m8\033[0;1;37;47m \033[0;5;37;47m8\033[0;1;37;47m \033[0;5;1;33;47m@\033[0;5;37;47m8\033[0;5;1;35;47m8\033[0;5;37;43m8\033[0;5;37;47m88\033[0m +\033[0;5;33;40m;% % \033[0;1;30;47mX\033[0;5;33;40m; \033[0;1;30;47mS\033[0;5;33;40m:\033[0;1;30;47m%8\033[0;5;33;40m.\033[0;1;30;47m8\033[0;33;47m8\033[0;1;37;47mt\033[0;5;37;47m88\033[0;1;33;47m%\033[0;5;37;47m88\033[0;1;37;47m \033[0;5;37;43m8\033[0;5;37;47m88\033[0;1;33;47mS\033[0;5;37;47m@X888@@X888\033[0;1;35;47mS\033[0;1;37;47m \033[0;5;1;33;47m8\033[0;1;35;47mX\033[0;5;37;43m8\033[0;5;1;35;47m8\033[0;5;1;33;47m8\033[0;1;31;47mS\033[0;5;37;47m8\033[0;1;37;47m \033[0m +\033[0;5;33;40m88:\033[0;1;30;47m@\033[0;5;33;40m@ \033[0;1;30;47m \033[0;33;47m@\033[0;5;33;40m:\033[0;33;47m8\033[0;5;33;40m8\033[0;5;37;40m8\033[0;33;47m@\033[0;5;33;40m;\033[0;1;30;47mS\033[0;1;37;47m;\033[0;5;37;47m888\033[0;1;33;47m@\033[0;5;37;47m88\033[0;1;35;47mS\033[0;1;33;47mS\033[0;5;37;47m88S:tXtt%@8888\033[0;1;37;47m \033[0;5;37;47m8\033[0;1;37;47m \033[0;1;31;47mX\033[0;5;37;47m8\033[0;1;37;47m \033[0;5;37;47m8\033[0;1;37;47m \033[0m +\033[0;5;33;40m8\033[0;5;32;40m@\033[0;5;33;40mX:;.\033[0;1;30;47m;;\033[0;33;47m8\033[0;1;30;47m8\033[0;5;33;40m: .\033[0;33;47m@\033[0;1;37;47m \033[0;1;33;47mX\033[0;1;37;47m \033[0;5;37;47m8\033[0;1;33;47m%\033[0;5;37;47m8888\033[0;1;31;47mX\033[0;5;37;47m88S%;: 8%%S@X8\033[0;5;37;41m8\033[0;1;37;47m.\033[0;5;37;47m8\033[0;1;37;47m \033[0;1;33;47m%\033[0;1;31;47m@\033[0;1;37;47m \033[0;5;1;33;47m8\033[0;1;37;47m \033[0m +\033[0;5;33;40mS; %S:SS.\033[0;1;30;47m8\033[0;1;30;43m8\033[0;5;37;40mX\033[0;1;30;43m8\033[0;1;37;47m \033[0;1;33;47mX\033[0;1;31;47m@\033[0;5;37;47m8\033[0;1;33;47mS\033[0;5;37;47m88X%\033[0;1;37;47m \033[0;5;37;47m888@St:.;.;tS88\033[0;1;37;47m:\033[0;5;37;47m8\033[0;1;33;47mS\033[0;5;37;47m8\033[0;1;31;47mS\033[0;1;33;47m%\033[0;1;31;47mS\033[0;1;37;47m \033[0;1;33;47m%\033[0;1;37;47m \033[0m +\033[0;5;33;40m 8\033[0;5;31;40mS\033[0;5;33;40m \033[0;1;30;47m@\033[0;5;33;40m \033[0;1;30;43m8\033[0;5;33;40m%\033[0;5;31;40m8\033[0;1;30;47m8\033[0;1;37;47m;\033[0;1;33;47mX\033[0;1;35;47m@\033[0;1;33;47m@\033[0;1;31;47m@\033[0;1;37;47m \033[0;5;37;47m888t8888@t::;t.;;@8\033[0;1;37;47m;\033[0;5;37;47m8\033[0;1;37;47m \033[0;5;37;47m8\033[0;1;37;47m \033[0;5;37;47m8\033[0;1;33;47m%\033[0;1;31;47mS\033[0;1;37;47m \033[0;1;33;47m%\033[0;1;37;47m \033[0m +\033[0;5;37;40m8\033[0;5;33;40m.\033[0;5;37;40m8\033[0;5;33;40m \033[0;1;30;47mt\033[0;5;37;40m88\033[0;5;33;40mS\033[0;1;30;47mt\033[0;5;33;40mX\033[0;1;30;47m.\033[0;1;37;47m \033[0;33;47mX\033[0;1;30;47m8\033[0;1;31;43m8\033[0;1;37;47mt \033[0;1;35;47mS\033[0;1;33;47m%\033[0;5;37;47m8888\033[0;5;37;43m8\033[0;5;37;47m88%;.;88..SS8\033[0;1;37;47m;\033[0;5;37;47m888\033[0;1;33;47mX\033[0;1;35;47mS\033[0;1;37;47m \033[0;1;33;47m%\033[0;1;31;47mS\033[0;1;33;47mS\033[0;1;37;47m \033[0m\n +\033[0;5;33;40m t\033[0;5;37;40m8\033[0;1;30;47mt\033[0;1;37;47m;8X\033[0;5;33;40mS\033[0;5;37;47m8\033[0;5;33;40m8\033[0;1;37;47m \033[0;1;30;47mX\033[0;1;30;43m8\033[0;1;30;47m8\033[0;1;37;47m \033[0;1;30;47m8\033[0;1;33;47mX\033[0;1;37;47m \033[0;1;31;47mS\033[0;5;37;47m8\033[0;5;1;35;41m8\033[0;1;33;47m%\033[0;5;37;47m8%888%.:@88\033[0;1;37;47m:\033[0;5;37;47m8\033[0;1;33;47mS\033[0;1;31;47m@\033[0;1;35;47mS\033[0;5;37;43m8\033[0;1;37;47m \033[0;1;33;47mX\033[0;5;37;41m8\033[0;1;30;47m8\033[0m\n +\033[0;5;33;40m8\033[0;5;37;40m8\033[0;33;47mS\033[0;1;30;43m8\033[0;1;30;47mX\033[0;1;30;43m8\033[0;1;30;47m@\033[0;5;37;40m8\033[0;5;33;40m8\033[0;5;35;40m%\033[0;1;30;41m8\033[0;5;31;40m@\033[0;1;30;47m8\033[0;1;37;47m \033[0;1;30;47m8\033[0;1;37;47m \033[0;35;47mS\033[0;33;47m@\033[0;5;37;47m888\033[0;5;37;41m8\033[0;1;31;47m@\033[0;1;37;47m \033[0;33;47mX\033[0;5;35;41m;\033[0;1;37;47m8;\033[0;35;47m8\033[0;1;37;47m \033[0;5;37;47m8S%@\033[0;1;37;47mS@X:\033[0;35;47m@\033[0;1;30;47m8\033[0;1;37;47m \033[0;1;33;47m8\033[0;1;31;45m8\033[0;1;33;47mS\033[0;1;31;47mSS\033[0;1;37;47m .\033[0m\n +\033[0;5;33;40m :\033[0;1;30;47mt\033[0;5;33;40m:tX\033[0;5;37;40m8\033[0;5;33;40m%\033[0;5;30;40m@\033[0;32;40m@\033[0;5;30;40m8\033[0;5;33;40mt\033[0;5;35;40m \033[0;1;30;47m88\033[0;1;37;47m \033[0;5;37;47m888\033[0;1;37;47m: \033[0;33;47m8\033[0;1;37;47m \033[0;5;37;47m%;S\033[0;1;37;47m; \033[0;5;37;47m88\033[0;1;37;47m@%SS%\033[0;1;30;47m@\033[0;33;47m@8\033[0;35;47m8\033[0;1;30;43m8\033[0;1;37;47m \033[0;1;30;43m8\033[0;1;30;47m8\033[0;33;47m@\033[0;1;37;47m \033[0;1;33;47mS\033[0m\n +\033[0;5;37;40m8\033[0;5;33;40mt%\033[0;1;30;47m8\033[0;5;33;40mt\033[0;5;37;40m@\033[0;5;33;40m%t\033[0;5;30;40m@\033[0;5;31;40mS\033[0;5;32;40mS\033[0;5;35;40m%\033[0;5;33;40mS\033[0;5;31;40m8\033[0;5;33;40m:\033[0;33;47m@\033[0;1;37;47m \033[0;1;33;47mS\033[0;1;31;47m@\033[0;1;37;47m \033[0;33;47m8\033[0;1;37;47m \033[0;35;47mS\033[0;1;37;47m:t.\033[0;1;30;47m%;:\033[0;1;37;47m :%.\033[0;5;37;40m%\033[0;1;30;47m8\033[0;5;33;40mX\033[0;1;30;41m8\033[0;5;33;40m8 \033[0;5;31;40m8\033[0;5;37;40mX\033[0;1;30;43m8\033[0;5;31;40mX\033[0;5;33;40mX\033[0;5;35;40m.\033[0m\n +\033[0;5;37;40m8\033[0;1;30;47mt\033[0;5;33;40m;%;\033[0;1;30;47m8\033[0;5;33;40m:t\033[0;1;30;47m@\033[0;5;33;40m@\033[0;5;30;40mX\033[0;5;33;40m \033[0;1;30;47m8\033[0;5;33;40mS%\033[0;5;35;40mt\033[0;33;47mX\033[0;1;37;47m \033[0;1;31;47m@\033[0;1;37;47m \033[0;1;31;47m@\033[0;1;30;47m8@8\033[0;1;37;47m %.% .:\033[0;5;35;40m:\033[0;1;30;47m8\033[0;1;37;47m.\033[0;5;33;40m.8\033[0;5;31;40m@\033[0;5;33;40m%@\033[0;5;31;40mX\033[0;5;33;40m8\033[0;1;30;41m8\033[0;5;33;40mXS\033[0;5;31;40m@\033[0;31;40m8\033[0m\n +\033[0;5;33;40m: \033[0;1;30;47m:\033[0;5;33;40m;%\033[0;1;37;47m;\033[0;33;47mX\033[0;5;37;40m8\033[0;5;33;40mS\033[0;1;30;47m@\033[0;5;35;40m \033[0;5;30;40m8\033[0;5;33;40mS\033[0;31;40m@\033[0;5;33;40m:8\033[0;1;30;47m8\033[0;1;37;47m \033[0;1;31;47m8\033[0;33;47m8\033[0;1;30;47m8\033[0;1;37;47m \033[0;1;30;47m888X\033[0;1;37;47mt. \033[0;1;30;47m8\033[0;5;35;40m.\033[0;5;37;40mS\033[0;30;41m8\033[0;5;33;40m.\033[0;5;37;40m8\033[0;1;37;47m8\033[0;5;33;40mt8%\033[0;5;30;40m@\033[0;5;33;40m.8\033[0;5;30;40m@\033[0;1;30;40m8\033[0;5;33;40m.\033[0;5;30;40mX\033[0;5;33;40m8\033[0m\n +\033[0;5;37;40m8\033[0;1;30;47mt\033[0;1;30;43m8\033[0;5;37;40mX\033[0;5;33;40m:\033[0;1;30;47m8\033[0;1;30;43m8\033[0;5;33;40m:\033[0;1;30;47m8\033[0;5;37;40m8\033[0;1;30;47m8\033[0;5;33;40m tt%\033[0;30;41m8\033[0;1;30;47m8\033[0;33;47m@\033[0;1;30;47m88\033[0;33;47m8\033[0;35;47m@\033[0;1;33;47mS\033[0;35;47mS\033[0;33;47m8\033[0;5;35;40m:\033[0;1;30;47m8\033[0;1;37;47m.\033[0;1;30;47m8\033[0;5;35;40m \033[0;1;30;47m8\033[0;5;33;40mt\033[0;5;31;40m8\033[0;5;32;40m@\033[0;5;33;40mS@\033[0;5;32;40mS\033[0;5;33;40m%\033[0;5;37;40m8\033[0;5;33;40m%\033[0;5;32;40m@\033[0;5;30;40m@X\033[0;5;33;40m@t.88\033[0m\n +\033[0;5;33;40m:\033[0;5;37;40m8\033[0;1;30;47m8\033[0;5;33;40mSX\033[0;1;30;47m@\033[0;5;33;40mSX \033[0;1;30;47m8\033[0;5;37;40m8\033[0;5;33;40mt.\033[0;1;30;47m8S\033[0;5;33;40m;:\033[0;1;30;47m8\033[0;37;43m8\033[0;1;30;47m8\033[0;33;47m8\033[0;5;33;40m:;%\033[0;5;35;40mS\033[0;1;30;47m8\033[0;5;33;40m;\033[0;1;37;47m \033[0;1;30;47m8@\033[0;5;33;40m;@\033[0;1;30;40m8\033[0;5;33;40m:\033[0;1;30;40m8\033[0;5;33;40m8\033[0;32;40mX\033[0;5;33;40m8\033[0;1;30;40m8\033[0;5;33;40m:\033[0;5;37;40m8\033[0;5;32;40mS\033[0;5;33;40m@.8\033[0;1;30;47m@\033[0;5;33;40mX \033[0m\n +\033[0;1;30;47m%S8%\033[0;5;37;40mX\033[0;5;33;40m%:t%tt\033[0;1;30;47m8\033[0;5;33;40mt 8%X%\033[0;1;30;47m@\033[0;5;33;40m::X\033[0;5;35;40mt\033[0;33;47mX\033[0;5;33;40m@:t\033[0;1;30;47m8888\033[0;5;33;40mX;S\033[0;32;40m8\033[0;5;33;40mX\033[0;5;31;40mS\033[0;5;33;40mt\033[0;5;32;40mX\033[0;5;33;40m:8\033[0;5;37;40m8\033[0;5;33;40mSt:@;\033[0;1;30;47m.\033[0m\n +\033[0;1;30;47mXS8\033[0;1;37;47m \033[0;1;30;47m%X\033[0;1;30;43m8\033[0;5;33;40m%%SXS \033[0;1;30;47m8%\033[0;5;33;40m%\033[0;5;37;40mSX\033[0;1;30;43m8\033[0;1;30;47m8\033[0;1;30;43m8\033[0;5;37;40mt\033[0;33;47m8\033[0;5;35;40m;\033[0;5;37;40m%\033[0;5;33;40m % \033[0;1;30;47mt\033[0;31;43m8\033[0;5;33;40m :S%X\033[0;5;32;40mXX\033[0;5;33;40m88\033[0;5;32;40mX\033[0;5;31;40mS\033[0;5;33;40m8\033[0;5;37;40mX\033[0;5;33;40m@S:.\033[0;1;30;43m8\033[0m\n +\033[0;5;33;40m \033[0;1;30;47mt%X\033[0;33;47m@\033[0;1;30;47m8@\033[0;1;30;43m8\033[0;5;33;40m8 %;;\033[0;1;30;47mX\033[0;5;33;40m8.;\033[0;1;37;47m.\033[0;5;33;40m@.X@\033[0;5;37;40mS\033[0;5;33;40mtt;\033[0;1;30;47m88\033[0;5;33;40m@\033[0;1;30;47m8\033[0;5;33;40mt 8%\033[0;5;32;40mX\033[0;30;41m8\033[0;5;32;40mS\033[0;1;30;40m8\033[0;5;33;40m8\033[0;5;30;40mX\033[0;5;32;40m8\033[0;5;33;40mSt;t;;;\033[0m\n +\033[0;5;33;40m:X\033[0;5;37;40mX\033[0;1;30;47m8\033[0;33;47m8\033[0;1;30;47m8\033[0;33;47m@\033[0;5;33;40m%S\033[0;5;37;40m8\033[0;5;33;40m@%88X@@8\033[0;5;31;40mX\033[0;5;33;40m8\033[0;5;31;40mX\033[0;5;33;40m8\033[0;5;31;40mX\033[0;1;30;47m8\033[0;5;33;40m:8 \033[0;1;30;47m88\033[0;5;37;40m8\033[0;5;33;40m%t%\033[0;5;32;40mX\033[0;5;31;40m@\033[0;5;33;40mtX\033[0;5;30;40m8\033[0;5;33;40mt%%8S8X\033[0;1;30;47m8\033[0;5;33;40m%\033[0;1;30;47mX\033[0m\n \ No newline at end of file diff --git a/everything else/kitscene.rfk b/everything else/kitscene.rfk new file mode 100644 index 0000000..ffec869 --- /dev/null +++ b/everything else/kitscene.rfk @@ -0,0 +1,7 @@ + /\_____/\ + / o o \ + ( == ^ == ) + ) ( + / \ + / / | | \ \ +/__|__|___|__|__\ \ No newline at end of file diff --git a/everything else/kitten died.c b/everything else/kitten died.c new file mode 100644 index 0000000..b0838e8 --- /dev/null +++ b/everything else/kitten died.c @@ -0,0 +1,416 @@ +#include +#include +#include +#include //for void hidecursor(), only required on windows + +//challenges: +//make this work on any posix machine (use them defines or whatever) +//populate, addrobot, and addkitten could all be put into one function +//add resize and kitten crushing support +//compact printf statemnets +//read texts and kitscene from file + +//"kitten printers" + +int in = 0; +int objects = 30; //0-29 are objects, 30 is kitten, 31 is robot +int x[31]; int y[31]; //int x[(objects + 2)]; int y[(objects + 2)]; the + 2 makes room for kitten and robot, but these should be excluded from for loops +char object_symbol[31]; //char object_symbol[(objects + 2)]; +int object_color[31]; //int object_color[(objects + 2)]; +int object_brightness[31]; //int object_brightness[(objects + 2)]; +int object_text[29]; //int object_text[(objects + 2)]; //kitten doesnt have text because a cutscene plays and robot doesnt have text cause you cant colide with it +int populate_stop = 1; int addrobot_stop = 1; int addkitten_stop = 1; int move_stop = 1; int text_stop = 1; //stop variables +int texts = 64; char text[64][128] = { //the text for colliding with nkos, might want to minimize this because it will get big + {"Not kitten."}, + {"Not a kitten."}, + {"A pigeon with a TCP/IP packet taped to it's leg."}, //i like this line too much not to use it + {"Deez."}, + {"The Internet, lying in a puddle on the floor"}, + {"Your mother's house."}, + {"What is it? I don't know."}, + {"That one thing. You know what thing I mean."}, + {"A magazine full of bullets... it's not the right type of magazine, though."}, + {"Someone spilled their drink here!"}, + {"Your Advanced Placement Computer Science Principles classroom."}, + {"text 11"}, + {"This brick wall is missing a brick! Oh, nevermind, it's just been replaced with a Nokia 3310."}, + {"A kitten."}, + {"A penguin using an operating system you've never seen before."}, + {"An open window shining on a computer with an entirely blue screen."}, //objectively bad //16 + {"This white apple is hooked up to a mouse, keyboard and monitor... it isn't doing anything."}, + {"A pufferfish using an operating system you've never seen before... the pufferfish is puffed up."}, + {"A copy of 'The C Programming Language'."}, + {"George (the cat)."}, + {"An analog clock running on UNIX time."}, + {"The table that you always hit your knee on."}, + {"A calendar with some classic cars on it for 2022."}, + {"Justice, finally!"}, + {"A newspaper dated December 6th, 1941... it seems like it was a good day."}, + {"Poland."}, + {"An old map of Europe... it looks more like pasta than borders."}, + {"The RWin key."}, + {"It appears to be a... oh, nevermind."}, + {"Another robot! Oh, it's just a mirror."}, + {"'Kitten's over there', it says."}, + {"A large trashcan, filled to the brim with metal chips... you can't move it."}, //32 + {"The 32-bit integer limit."}, + {"A generic car, endlessly doing donuts."}, + {"A bug, causing problems as usual."}, + {"#ff00ff"}, + {"3 pythons, squirming in place."}, + {"A sign says 'Members Only'... you can't tell what the object is."}, //"You must be a member to discover this object." + {"A segme ntation fault."}, + {"The goods."}, + {"A partridge in a pear tree."}, + {"A penguin wearing a tux."}, + {"'Mostly sunny'? What, in this void?"}, + {"\\033[1;1H"}, + {"The metric system."}, + {"h."}, + {"'Kilroy was here', says Kilroy."}, + {"The stack, don't touch it though!"}, //48 + {"A TOR node."}, + {":)"}, + {"The blue cable drive."}, + {"You Win! Oh, wait a minute... nevermind."}, + {"An external numpad... two keys are worn down."}, + {"An X server."}, + {"All of your deleted files, in a pile on the ground."}, + {"Dexterity."}, + {"A bottle of battery acid, essentially poison for robot."}, + {"Sweet, some sugar!"}, + {"A block of code."}, + {"The third dimension."}, + {"CDs stacked so high that you can't see the top... they all say something about '500 free hours'."}, + {"A computer with glasses and a fake nose... it might be spyware."}, + {"This toaster has a few forks sticking out of the top... the toaster is unplugged."}, + {"A label firmly stuck to the ground says 'PROPERTY OF THE STATE'."} //64 + }; //elegant, i know +char kitscenetext[7][19] = { + {" \03333/\\_____/\\ "}, + {" / \03332o o\03333 \\ "}, + {" ( \03300== \03333^ \03300== \03333) "}, + {" ) ( "}, + {" / \\ "}, + {" / / | | \\ \\ "}, + {"/__|__|___|__|__\\\03300"}, + }; +/*char kitscenetext[7][19] = { + {" /\\_____/\\ "}, + {" / o o \\ "}, + {" ( == ^ == ) "}, + {" ) ( "}, + {" / \\ "}, + {" / / | | \\ \\ "}, + {"/__|__|___|__|__\\"}, + };*/ +char kitscenerobot[7][19] = { + {" ___ "}, + {" |___| "}, + {" | | "}, + {" \\---|---\\ "}, + {" | | "}, + {" | "}, + {" O--O--O "}, +}; +time_t t; + +void hidecursor() { + HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); + CONSOLE_CURSOR_INFO info; + info.dwSize = 100; + info.bVisible = FALSE; + SetConsoleCursorInfo(consoleHandle, &info); +} + +void populate() { + for(int i = 0; i < objects; i++) { //initial position randomization + x[i] = (rand() % 128); + y[i] = (rand() % 64); + object_symbol[i] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[i] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[i] = ((rand() % 8) + 90); //color 90-98 + } + object_text[i] = ((rand() % texts)); //text 0-127 + } + while(populate_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[i] == x[j]) && (y[i] == y[j])) { + x[i] = (rand() % 128); + y[i] = (rand() % 64); + } else { + populate_stop = 0; + } + } + } + } + while(text_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if(object_text[i] == object_text[j]) { + object_text[i] = ((rand() % texts)); + } else { + text_stop = 0; + } + } + } + } + object_text[30] = 0; //kitten always gets 2 for some reason so im making it 0 manually for niceness + for (int i = 0; i < objects; i++) { + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[i] + 3),(x[i] + 1),object_color[i],object_symbol[i]); + } +} + +void addkitten() { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + object_symbol[30] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[30] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[30] = ((rand() % 8) + 90); //color 90-98 + } + while(addkitten_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[30] == x[j]) && (y[30] == y[j])) { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + } else { + addkitten_stop = 0; + } + } + } + } + //the kitten printer + printf("\033[%d;%dH\033[%dm\033[107m%c\033[0m",(y[30] + 3),(x[30] + 1),object_color[30],object_symbol[30]); //debug the \033[107m gives kitten a white background for easier identification + //printf("\033[%d;%dH\033[%dm%c\033[0m",(y[30] + 3),(x[30] + 1),object_color[30],object_symbol[30]); +} + +void addrobot() { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + object_symbol[31] = 35; //robot is always a bright white # + object_color[31] = 97; + while(addrobot_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[31] == x[j]) && (y[31] == y[j])) { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + } else { + addrobot_stop = 0; + } + } + } + } + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); +} + +void initialize() { + printf("\033[?25l"); //hides cursor on linux + hidecursor(); //hides cursor on windows + srand(time(t)); + system("mode con: cols=128 lines=66"); + printf("\033]0;rfk\x1b\x5c"); //set conlse title to rfk + //47, 55, 43, 49 i think + printf("\033[8;40HYou are Robot, and your goal is to find Kitten.\033[9;36HThis is complicated by the exsistance of other objects.\033[10;42HYou must touch an object to see what it is.\033[12;39HUse the arrow keys and press any key to continue."); + getch(); + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + populate(); + addkitten(); + addrobot(); +} + +void kitscene() { //kitten cutscene, kitscene - if you will + //printf("kitte"); //the most primitive debug of the century + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + for (int i = 0; i < 39; i++) { + printf("\033[28;%dH",(9 + i));//kitten section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 19; l++) { //kitsceen is 19 characters long, including \0 //maybe not anymroe + if (kitscenetext[j][l] == '\033') { + printf("\033[%c%cm",kitscenetext[j][(l + 1)],kitscenetext[j][(l + 2)]); + l = l + 2; + } else { + printf("%c", kitscenetext[j][l]); + } + printf("\033[18D \033[B"); + } + } + printf("\033[28;%dH",(103 - i));//robot section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 19; l++) { //kitsceen is 19 characters long, including \0 + printf("%c", kitscenerobot[j][l]); + } + printf("\033[18D\033[B"); + } + Sleep(50); //windows only, fix cross-platfrom with defiens + //printf("%d",i); //debug + } + + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HAgain? [y/n]"); + sleep(1); + int exitchoice = getch(); + while(1) { //the stuff inthe while loop make it so only y and n work, instead of arrow keys and such working too probably not the best wayof doing it but its fine for v1 + if(exitchoice == 110) { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HYeah, cause DOS is so much better..."); + getch(); + exit(0); + } else if(exitchoice == 121) { + initialize(); + return; + } + exitchoice = getch(); + } +} + +void objectcollidetext(int i) { + if (i == 30) { //if the object is kitten + kitscene(); + return; + } else { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + for(int j = 0; j < 128; j++) { + printf("%c",text[(object_text[i])][j]); + } + return; + } +} + +void moverobot(int direction) { + switch(direction) { + case 72 : //up + move_stop = 0; + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] == x[i]) && ((y[31] - 1) == y[i]))) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfailedup x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1Hcollided with %d",i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] - 1; + //printf("\033[1;1H \033[1;1Hmoveup x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmoveup x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 80 : //down + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] + 1 == 64)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if((x[31] == x[i]) && ((y[31] + 1) == y[i])) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfaileddown x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] + 1; + //printf("\033[1;1H \033[1;1Hmovedown x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmovedown x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 75 : //left + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] - 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfailedleft x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] - 1; + //printf("\033[1;1H \033[1;1Hmoveleft x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmoveleft x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 77 : //right + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] + 1 == 128)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] + 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfailedright x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] + 1; + //printf("\033[1;1H \033[1;1Hmoveright x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmoveright x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } +} + +int main() { + initialize(); + while(1) { + in = getch(); + if (in == 0 || in == 0xE0) in = getch(); //got dang ol windows makes you call functions and arrows keys twice to get the input + switch(in) { //this switch statement is kinda goofy because it only really calls moverobot() but thats got a switch statement in it right away, but now theres other buttons too so its good now + case 72 : //up + moverobot(in); + break; + case 80 : //down + moverobot(in); + break; + case 75 : //left + moverobot(in); + break; + case 77 : //right + moverobot(in); + break; + /*case 49 : //debug + printf("\033[3;1H");//print coords, debug + for (int i = 0; i < 32; i++) { + printf("\033[G \033[Gx%d y%d i%d t%d\n", x[i], y[i], i, object_text[i]); + } + getch(); + break;*/ + case 49 : //debug + kitscene(); + case 50 : //debug + printf("\033"); + break; + case 27 : //quit with prompt + printf("\033[1;1HQuit? [y/n]"); + if(getch() == 121) { + exit(0); + } else { + break; + } + default : + printf("\a"); //bell, possibly annoying + } + } +} diff --git a/everything else/kitten died.exe b/everything else/kitten died.exe new file mode 100644 index 0000000..6f51498 Binary files /dev/null and b/everything else/kitten died.exe differ diff --git a/everything else/kitten died.o b/everything else/kitten died.o new file mode 100644 index 0000000..94a984e Binary files /dev/null and b/everything else/kitten died.o differ diff --git a/everything else/kitten fell over.c b/everything else/kitten fell over.c new file mode 100644 index 0000000..96a9d92 --- /dev/null +++ b/everything else/kitten fell over.c @@ -0,0 +1,393 @@ +#include +#include +#include +#include //for void hidecursor(), only required on windows + +//challenges: +//make this work on any posix machine (use them defines or whatever) +//populate, addrobot, and addkitten could all be put into one function +//add resize and kitten crushing support +//compact printf statemnets +//read texts and kitscene from file + +//"kitten printers" + +int in = 0; +int objects = 30; //0-29 are objects, 30 is kitten, 31 is robot +int x[31]; int y[31]; //int x[(objects + 2)]; int y[(objects + 2)]; the + 2 makes room for kitten and robot, but these should be excluded from for loops +char object_symbol[31]; //char object_symbol[(objects + 2)]; +int object_color[31]; //int object_color[(objects + 2)]; +int object_brightness[31]; //int object_brightness[(objects + 2)]; +int object_text[29]; //int object_text[(objects + 2)]; //kitten doesnt have text because a cutscene plays and robot doesnt have text cause you cant colide with it +int populate_stop = 1; int addrobot_stop = 1; int addkitten_stop = 1; int move_stop = 1; int text_stop = 1; //stop variables +int texts = 64; char text[64][128] = { //the text for colliding with nkos, might want to minimize this because it will get big + {"Not kitten."}, + {"Not a kitten."}, + {"A pigeon with a TCP/IP packet taped to it's leg."}, //i like this line too much not to use it + {"Deez."}, + {"The Internet, lying in a puddle on the floor"}, + {"Your mother's house."}, + {"What is it? I don't know."}, + {"That one thing. You know what thing I mean."}, + {"A magazine full of bullets... it's not the right type of magazine, though."}, + {"Someone spilled their drink here!"}, + {"Your Advanced Placement Computer Science Principles classroom."}, + {"text 11"}, + {"This brick wall is missing a brick! Oh, nevermind, it's just been replaced with a Nokia 3310."}, + {"A kitten."}, + {"A penguin using an operating system you've never seen before."}, + {"An open window shining on a computer with an entirely blue screen."}, //objectively bad //16 + {"This white apple is hooked up to a mouse, keyboard and monitor... it isn't doing anything."}, + {"A pufferfish using an operating system you've never seen before... the pufferfish is puffed up."}, + {"A copy of 'The C Programming Language'."}, + {"George (the cat)."}, + {"An analog clock running on UNIX time."}, + {"The table that you always hit your knee on."}, + {"A calendar with some classic cars on it for 2022."}, + {"Justice, finally!"}, + {"A newspaper dated December 6th, 1941... it seems like it was a good day."}, + {"Poland."}, + {"An old map of Europe... it looks more like pasta than borders."}, + {"The RWin key."}, + {"It appears to be a... oh, nevermind."}, + {"Another robot! Oh, it's just a mirror."}, + {"'Kitten's over there', it says."}, + {"A large trashcan, filled to the brim with metal chips... you can't move it."}, //32 + {"The 32-bit integer limit."}, + {"A generic car, endlessly doing donuts."}, + {"A bug, causing problems as usual."}, + {"#ff00ff"}, + {"3 pythons, squirming in place."}, + {"A sign says 'Members Only'... you can't tell what the object is."}, //"You must be a member to discover this object." + {"A segme ntation fault."}, + {"The goods."}, + {"A partridge in a pear tree."}, + {"A penguin wearing a tux."}, + {"'Mostly sunny'? What, in this void?"}, + {"\\033[1;1H"}, + {"The metric system."}, + {"h."}, + {"'Kilroy was here', says Kilroy."}, + {"The stack, don't touch it though!"}, //48 + {"A TOR node."}, + {":)"}, + {"The blue cable drive."}, + {"You Win! Oh, wait a minute... nevermind."}, + {"An external numpad... two keys are worn down."}, + {"An X server."}, + {"All of your deleted files, in a pile on the ground."}, + {"Dexterity."}, + {"A bottle of battery acid, essentially poison for robot."}, + {"Sweet, some sugar!"}, + {"A block of code."}, + {"The third dimension."}, + {"CDs stacked so high that you can't see the top... they all say something about '500 free hours'."}, + {"A computer with glasses and a fake nose... it might be spyware."}, + {"This toaster has a few forks sticking out of the top... the toaster is unplugged."}, + {"A label firmly stuck to the ground says 'PROPERTY OF THE STATE'."} //64 + }; //elegant, i know +char kitscenetext[7][19] = { + {" /\\_____/\\ "}, + {" / o o \\ "}, + {" ( == ^ == ) "}, + {" ) ( "}, + {" / \\ "}, + {" / / | | \\ \\ "}, + {"/__|__|___|__|__\\"}, + }; +char kitscenerobot[7][19] = { + {" ___ "}, + {" |___| "}, + {" | | "}, + {" \\---|---\\ "}, + {" | | "}, + {" | "}, + {" O--O--O "}, +}; +time_t t; + +void hidecursor() { + HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); + CONSOLE_CURSOR_INFO info; + info.dwSize = 100; + info.bVisible = FALSE; + SetConsoleCursorInfo(consoleHandle, &info); +} + +void populate() { + for(int i = 0; i < objects; i++) { //initial position randomization + x[i] = (rand() % 128); + y[i] = (rand() % 64); + object_symbol[i] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[i] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[i] = ((rand() % 8) + 90); //color 90-98 + } + object_text[i] = ((rand() % texts)); //text 0-127 + } + while(populate_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[i] == x[j]) && (y[i] == y[j])) { + x[i] = (rand() % 128); + y[i] = (rand() % 64); + } else { + populate_stop = 0; + } + } + } + } + while(text_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if(object_text[i] == object_text[j]) { + object_text[i] = ((rand() % texts)); + } else { + text_stop = 0; + } + } + } + } + object_text[30] = 0; //kitten always gets 2 for some reason so im making it 0 manually for niceness + for (int i = 0; i < objects; i++) { + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[i] + 3),(x[i] + 1),object_color[i],object_symbol[i]); + } +} + +void addkitten() { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + object_symbol[30] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[30] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[30] = ((rand() % 8) + 90); //color 90-98 + } + while(addkitten_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[30] == x[j]) && (y[30] == y[j])) { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + } else { + addkitten_stop = 0; + } + } + } + } + //the kitten printer + printf("\033[%d;%dH\033[%dm\033[107m%c\033[0m",(y[30] + 3),(x[30] + 1),object_color[30],object_symbol[30]); //debug the \033[107m gives kitten a white background for easier identification + //printf("\033[%d;%dH\033[%dm%c\033[0m",(y[30] + 3),(x[30] + 1),object_color[30],object_symbol[30]); +} + +void addrobot() { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + object_symbol[31] = 35; //robot is always a bright white # + object_color[31] = 97; + while(addrobot_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[31] == x[j]) && (y[31] == y[j])) { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + } else { + addrobot_stop = 0; + } + } + } + } + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); +} + +void initialize() { + printf("\033[?25l"); //hides cursor on linux + hidecursor(); //hides cursor on windows + srand(time(t)); + system("mode con: cols=128 lines=66"); + printf("\033]0;rfk\x1b\x5c"); //set conlse title to rfk + //47, 55, 43, 49 i think + printf("\033[8;40HYou are Robot, and your goal is to find Kitten.\033[9;36HThis is complicated by the exsistance of other objects.\033[10;42HYou must touch an object to see what it is.\033[12;39HUse the arrow keys and press any key to continue."); + getch(); + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + populate(); + addkitten(); + addrobot(); +} + +void kitscene() { //kitten cutscene, kitscene - if you will + //printf("kitte"); //the most primitive debug of the century + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + //for (int i = 0; i < 32; i++) { + printf("\033[28;9H");//kitten section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 19; l++) { //kitsceen is 19 characters long, including \0 + printf("%c", kitscenetext[j][l]); + } + printf("\033[18D\033[B"); + } + printf("\033[28;103H");//robot section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 19; l++) { //kitsceen is 19 characters long, including \0 + printf("%c", kitscenerobot[j][l]); + } + printf("\033[18D\033[B"); + } + //} + + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HAgain? [y/n]"); + sleep(1); + int exitchoice = getch(); + while(1) { //the stuff inthe while loop make it so only y and n work, instead of arrow keys and such working too probably not the best wayof doing it but its fine for v1 + if(exitchoice == 110) { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HYeah, cause DOS is so much better..."); + getch(); + exit(0); + } else if(exitchoice == 121) { + initialize(); + return; + } + exitchoice = getch(); + } +} + +void objectcollidetext(int i) { + if (i == 30) { //if the object is kitten + kitscene(); + return; + } else { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + for(int j = 0; j < 128; j++) { + printf("%c",text[(object_text[i])][j]); + } + return; + } +} + +void moverobot(int direction) { + switch(direction) { + case 72 : //up + move_stop = 0; + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] == x[i]) && ((y[31] - 1) == y[i]))) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfailedup x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1Hcollided with %d",i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] - 1; + //printf("\033[1;1H \033[1;1Hmoveup x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmoveup x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 80 : //down + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] + 1 == 64)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if((x[31] == x[i]) && ((y[31] + 1) == y[i])) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfaileddown x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] + 1; + //printf("\033[1;1H \033[1;1Hmovedown x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmovedown x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 75 : //left + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] - 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfailedleft x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] - 1; + //printf("\033[1;1H \033[1;1Hmoveleft x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmoveleft x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 77 : //right + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] + 1 == 128)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] + 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfailedright x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] + 1; + //printf("\033[1;1H \033[1;1Hmoveright x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmoveright x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } +} + +int main() { + initialize(); + while(1) { + in = getch(); + if (in == 0 || in == 0xE0) in = getch(); //got dang ol windows makes you call functions and arrows keys twice to get the input + switch(in) { //this switch statement is kinda goofy because it only really calls moverobot() but thats got a switch statement in it right away, but now theres other buttons too so its good now + case 72 : //up + moverobot(in); + break; + case 80 : //down + moverobot(in); + break; + case 75 : //left + moverobot(in); + break; + case 77 : //right + moverobot(in); + break; + /*case 49 : //debug + printf("\033[3;1H");//print coords, debug + for (int i = 0; i < 32; i++) { + printf("\033[G \033[Gx%d y%d i%d t%d\n", x[i], y[i], i, object_text[i]); + } + getch(); + break;*/ + case 27 : //quit with prompt + printf("\033[1;1HQuit? [y/n]"); + if(getch() == 121) { + exit(0); + } + default : + printf("\a"); //bell, possibly annoying + } + } +} diff --git a/everything else/kitten fell over.exe b/everything else/kitten fell over.exe new file mode 100644 index 0000000..d96e4e3 Binary files /dev/null and b/everything else/kitten fell over.exe differ diff --git a/everything else/kitten fell over.o b/everything else/kitten fell over.o new file mode 100644 index 0000000..7f3d728 Binary files /dev/null and b/everything else/kitten fell over.o differ diff --git a/everything else/kitten mirror.c b/everything else/kitten mirror.c new file mode 100644 index 0000000..7d0efb3 --- /dev/null +++ b/everything else/kitten mirror.c @@ -0,0 +1,437 @@ +#include +#include +#include +#include //for void hidecursor(), only required on windows + +//challenges: +//make this work on any posix machine (use them defines or whatever) +//populate, addrobot, and addkitten could all be put into one function +//add resize and kitten crushing support +//compact printf statemnets +//read texts and kitscene from file + +//"kitten printers" + +int in = 0; +int objects = 30; //0-29 are objects, 30 is kitten, 31 is robot +int x[31]; int y[31]; //int x[(objects + 2)]; int y[(objects + 2)]; the + 2 makes room for kitten and robot, but these should be excluded from for loops +char object_symbol[31]; //char object_symbol[(objects + 2)]; +int object_color[31]; //int object_color[(objects + 2)]; +int object_brightness[31]; //int object_brightness[(objects + 2)]; +int object_text[29]; //int object_text[(objects + 2)]; //kitten doesnt have text because a cutscene plays and robot doesnt have text cause you cant colide with it +int populate_stop = 1; int addrobot_stop = 1; int addkitten_stop = 1; int move_stop = 1; int text_stop = 1; //stop variables +int texts = 64; char text[64][128] = { //the text for colliding with nkos, might want to minimize this because it will get big + {"Not kitten."}, + {"Not a kitten."}, + {"A pigeon with a TCP/IP packet taped to it's leg."}, //i like this line too much not to use it + {"Deez."}, + {"The Internet, lying in a puddle on the floor"}, + {"Your mother's house."}, + {"What is it? I don't know."}, + {"That one thing. You know what thing I mean."}, + {"A magazine full of bullets... it's not the right type of magazine, though."}, + {"Someone spilled their drink here!"}, + {"Your Advanced Placement Computer Science Principles classroom."}, + {"text 11"}, + {"This brick wall is missing a brick! Oh, nevermind, it's just been replaced with a Nokia 3310."}, + {"A kitten."}, + {"A penguin using an operating system you've never seen before."}, + {"An open window shining on a computer with an entirely blue screen."}, //objectively bad //16 + {"This white apple is hooked up to a mouse, keyboard and monitor... it isn't doing anything."}, + {"A pufferfish using an operating system you've never seen before... the pufferfish is puffed up."}, + {"A copy of 'The C Programming Language'."}, + {"George (the cat)."}, + {"An analog clock running on UNIX time."}, + {"The table that you always hit your knee on."}, + {"A calendar with some classic cars on it for 2022."}, + {"Justice, finally!"}, + {"A newspaper dated December 6th, 1941... it seems like it was a good day."}, + {"Poland."}, + {"An old map of Europe... it looks more like pasta than borders."}, + {"The RWin key."}, + {"It appears to be a... oh, nevermind."}, + {"Another robot! Oh, it's just a mirror."}, + {"'Kitten's over there', it says."}, + {"A large trashcan, filled to the brim with metal chips... you can't move it."}, //32 + {"The 32-bit integer limit."}, + {"A generic car, endlessly doing donuts."}, + {"A bug, causing problems as usual."}, + {"#ff00ff"}, + {"3 pythons, squirming in place."}, + {"A sign says 'Members Only'... you can't tell what the object is."}, //"You must be a member to discover this object." + {"A segme ntation fault."}, + {"The goods."}, + {"A partridge in a pear tree."}, + {"A penguin wearing a tux."}, + {"'Mostly sunny'? What, in this void?"}, + {"\\033[1;1H"}, + {"The metric system."}, + {"h."}, + {"'Kilroy was here', says Kilroy."}, + {"The stack, don't touch it though!"}, //48 + {"A TOR node."}, + {":)"}, + {"The blue cable drive."}, + {"You Win! Oh, wait a minute... nevermind."}, + {"An external numpad... two keys are worn down."}, + {"An X server."}, + {"All of your deleted files, in a pile on the ground."}, + {"Dexterity."}, + {"A bottle of battery acid, essentially poison for robot."}, + {"Sweet, some sugar!"}, + {"A block of code."}, + {"The third dimension."}, + {"CDs stacked so high that you can't see the top... they all say something about '500 free hours'."}, + {"A computer with glasses and a fake nose... it might be spyware."}, + {"This toaster has a few forks sticking out of the top... the toaster is unplugged."}, + {"A label firmly stuck to the ground says 'PROPERTY OF THE STATE'."} //64 + }; //elegant, i know +char kitscenetext[7][21] = { + {" `/\\_____/\\ "}, //`oragne .green ,reset + {" / .o o` \\ "}, + {" ( ,== `^ ,== `) "}, + {" ) ( "}, + {" / \\ "}, + {" / / | | \\ \\ "}, + {"/__|__|___|__|__\\,"}, + }; +/*char kitscenetext[7][19] = { + {" /\\_____/\\ "}, + {" / o o \\ "}, + {" ( == ^ == ) "}, + {" ) ( "}, + {" / \\ "}, + {" / / | | \\ \\ "}, + {"/__|__|___|__|__\\"}, + };*/ +char kitscenerobot[7][19] = { + {" `___ "}, //`grey .red ,reset + {" |_@_| "}, + {" | | "}, + {" \\---|---\\ "}, + {" | | "}, + {" | "}, + {" O--O--O "}, +}; +time_t t; + +void hidecursor() { + HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); + CONSOLE_CURSOR_INFO info; + info.dwSize = 100; + info.bVisible = FALSE; + SetConsoleCursorInfo(consoleHandle, &info); +} + +void populate() { + for(int i = 0; i < objects; i++) { //initial position randomization + x[i] = (rand() % 128); + y[i] = (rand() % 64); + object_symbol[i] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[i] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[i] = ((rand() % 8) + 90); //color 90-98 + } + object_text[i] = ((rand() % texts)); //text 0-127 + } + while(populate_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[i] == x[j]) && (y[i] == y[j])) { + x[i] = (rand() % 128); + y[i] = (rand() % 64); + } else { + populate_stop = 0; + } + } + } + } + while(text_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if(object_text[i] == object_text[j]) { + object_text[i] = ((rand() % texts)); + } else { + text_stop = 0; + } + } + } + } + object_text[30] = 0; //kitten always gets 2 for some reason so im making it 0 manually for niceness + for (int i = 0; i < objects; i++) { + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[i] + 3),(x[i] + 1),object_color[i],object_symbol[i]); + } +} + +void addkitten() { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + object_symbol[30] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[30] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[30] = ((rand() % 8) + 90); //color 90-98 + } + while(addkitten_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[30] == x[j]) && (y[30] == y[j])) { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + } else { + addkitten_stop = 0; + } + } + } + } + //the kitten printer + printf("\033[%d;%dH\033[%dm\033[107m%c\033[0m",(y[30] + 3),(x[30] + 1),object_color[30],object_symbol[30]); //debug the \033[107m gives kitten a white background for easier identification + //printf("\033[%d;%dH\033[%dm%c\033[0m",(y[30] + 3),(x[30] + 1),object_color[30],object_symbol[30]); +} + +void addrobot() { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + object_symbol[31] = 35; //robot is always a bright white # + object_color[31] = 97; + while(addrobot_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[31] == x[j]) && (y[31] == y[j])) { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + } else { + addrobot_stop = 0; + } + } + } + } + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); +} + +void initialize() { + printf("\033[?25l"); //hides cursor on linux + hidecursor(); //hides cursor on windows + srand(time(t)); + system("mode con: cols=128 lines=66"); + printf("\033]0;rfk\x1b\x5c"); //set conlse title to rfk + //47, 55, 43, 49 i think + printf("\033[8;40HYou are Robot, and your goal is to find Kitten.\033[9;36HThis is complicated by the exsistance of other objects.\033[10;42HYou must touch an object to see what it is.\033[12;39HUse the arrow keys and press any key to continue."); + getch(); + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + populate(); + addkitten(); + addrobot(); +} + +void kitscene() { //kitten cutscene, kitscene - if you will + //printf("kitte"); //the most primitive debug of the century + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + for (int i = 0; i < 39; i++) { + printf("\033[28;%dH",(9 + i));//kitten section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 21; l++) { //kitsceen is 19 characters long, including \0 //maybe not anymroe + switch(kitscenetext[j][l]) { + case '`': + printf("\033[33m"); + break; + case '.': + printf("\033[32m"); + break; + case ',': + printf("\033[0m"); + break; + default: + printf("%c", kitscenetext[j][l]); + break; + } + } + printf("\033[18D \033[B"); + } + printf("\033[28;%dH",(103 - i));//robot section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 19; l++) { //kitsceen is 19 characters long, including \0 + switch(kitscenerobot[j][l]) { + case '`': + printf("\033[90m"); + break; + case '.': + printf("\033[31m"); + break; + case ',': + printf("\033[0m"); + break; + default: + printf("%c", kitscenetext[j][l]); + break; + } + } + printf("\033[18D\033[B"); + } + Sleep(50); //windows only, fix cross-platfrom with defiens + //printf("%d",i); //debug + } + + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HAgain? [y/n]"); + sleep(1); + int exitchoice = getch(); + while(1) { //the stuff inthe while loop make it so only y and n work, instead of arrow keys and such working too probably not the best wayof doing it but its fine for v1 + if(exitchoice == 110) { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HYeah, cause DOS is so much better..."); + getch(); + exit(0); + } else if(exitchoice == 121) { + initialize(); + return; + } + exitchoice = getch(); + } +} + +void objectcollidetext(int i) { + if (i == 30) { //if the object is kitten + kitscene(); + return; + } else { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + for(int j = 0; j < 128; j++) { + printf("%c",text[(object_text[i])][j]); + } + return; + } +} + +void moverobot(int direction) { + switch(direction) { + case 72 : //up + move_stop = 0; + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] == x[i]) && ((y[31] - 1) == y[i]))) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfailedup x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1Hcollided with %d",i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] - 1; + //printf("\033[1;1H \033[1;1Hmoveup x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmoveup x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 80 : //down + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] + 1 == 64)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if((x[31] == x[i]) && ((y[31] + 1) == y[i])) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfaileddown x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] + 1; + //printf("\033[1;1H \033[1;1Hmovedown x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmovedown x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 75 : //left + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] - 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfailedleft x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] - 1; + //printf("\033[1;1H \033[1;1Hmoveleft x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmoveleft x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 77 : //right + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] + 1 == 128)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] + 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfailedright x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] + 1; + //printf("\033[1;1H \033[1;1Hmoveright x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmoveright x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } +} + +int main() { + initialize(); + while(1) { + in = getch(); + if (in == 0 || in == 0xE0) in = getch(); //got dang ol windows makes you call functions and arrows keys twice to get the input + switch(in) { //this switch statement is kinda goofy because it only really calls moverobot() but thats got a switch statement in it right away, but now theres other buttons too so its good now + case 72 : //up + moverobot(in); + break; + case 80 : //down + moverobot(in); + break; + case 75 : //left + moverobot(in); + break; + case 77 : //right + moverobot(in); + break; + /*case 49 : //debug + printf("\033[3;1H");//print coords, debug + for (int i = 0; i < 32; i++) { + printf("\033[G \033[Gx%d y%d i%d t%d\n", x[i], y[i], i, object_text[i]); + } + getch(); + break;*/ + case 49 : //debug + kitscene(); + case 50 : //debug + printf("\033"); + break; + case 27 : //quit with prompt + printf("\033[1;1HQuit? [y/n]"); + if(getch() == 121) { + exit(0); + } else { + break; + } + default : + printf("\a"); //bell, possibly annoying + } + } +} diff --git a/everything else/kitten mirror.exe b/everything else/kitten mirror.exe new file mode 100644 index 0000000..9f6d7e3 Binary files /dev/null and b/everything else/kitten mirror.exe differ diff --git a/everything else/kitten mirror.o b/everything else/kitten mirror.o new file mode 100644 index 0000000..c90d9bc Binary files /dev/null and b/everything else/kitten mirror.o differ diff --git a/everything else/printtest.c b/everything else/printtest.c new file mode 100644 index 0000000..0888882 --- /dev/null +++ b/everything else/printtest.c @@ -0,0 +1,6 @@ +#include + +int main() { + printf("\033[0;5;33;40m8\033[0;5;30;40m8\033[0;5;33;40m@8t X\033[0;5;37;40m8\033[0;1;30;47m8\033[0;5;33;40m :\033[0;5;37;40m88\033[0;5;33;40m:\033[0;1;30;47mX\033[0;5;33;40m%.\033[0;5;37;40m88\033[0;5;33;40mt.\033[0;1;30;47m%\033[0;5;37;40m8\033[0;1;30;47mS\033[0;5;33;40m%;.\033[0;5;37;40m8\033[0;5;33;40m.. \033[0;5;37;40m8\033[0;5;33;40mX\033[0;1;30;47m@\033[0;5;30;40m8\033[0;1;30;47mS\033[0;5;33;40m.\033[0;1;37;47mXS\033[0;5;37;47m888\033[0;1;37;47m%\033[0;5;37;47m8\033[0;1;37;47mX@\033[0m\033[0;5;33;40m@S;\033[0;5;32;40mX\033[0;5;33;40mS\033[0;5;37;40m88\033[0;1;30;47mS\033[0;5;33;40mX.\033[0;1;30;47m8\033[0;5;33;40mX\033[0;1;30;47mX\033[0;1;30;43m8\033[0;5;33;40m.\033[0;5;37;40m8\033[0;5;33;40mt%t\033[0;5;37;40m8\033[0;5;33;40mt :8 .\033[0;1;30;47mX\033[0;5;33;40mt:\033[0;1;30;47m %\033[0;5;33;40mS \033[0;1;30;47mt\033[0;5;33;40m:\033[0;5;37;40m8\033[0;5;33;40m.\033[0;1;30;47m;\033[0;1;37;47mS8SS\033[0;5;37;47m88\033[0;1;37;47m%\033[0;5;37;47m888\033[0m\033[0;5;33;40m.t;.\033[0;5;37;40m8\033[0;5;33;40m% \033[0;1;30;47m:\033[0;5;33;40m;\033[0;1;30;47mS\033[0;5;33;40m%\033[0;5;37;40m8\033[0;5;33;40mX:tt @;;.\033[0;5;37;40m8\033[0;5;33;40m:\033[0;1;30;47mS\033[0;5;33;40m%\033[0;1;30;47m;X\033[0;5;33;40mS\033[0;1;30;47mX\033[0;5;33;40m;\033[0;5;37;40m88\033[0;1;30;47mX\033[0;5;33;40m:\033[0;1;37;47mtS8@8\033[0;5;37;47m8@8888888\033[0m\033[0;1;30;47m:\033[0;5;33;40mt: ttt\033[0;1;30;42m8\033[0;5;33;40m8:\033[0;1;30;47mt\033[0;1;37;47mSt\033[0;1;30;47m \033[0;5;33;40mt :%\033[0;1;30;47m@\033[0;5;33;40m;8%\033[0;1;37;47m;\033[0;1;30;47m;\033[0;1;37;47m:XX\033[0;1;30;47m@\033[0;1;37;47m:8\033[0;1;30;47m \033[0;5;37;47mS;\033[0;1;37;47m8\033[0;5;37;47mX\033[0;1;37;47m8\033[0;5;37;47m@8\033[0;5;1;33;47m8\033[0;5;37;47m8\033[0;1;37;47mt\033[0;5;1;33;47m8\033[0;5;37;47m8%S@\033[0m\033[0;5;33;40m \033[0;1;30;47m \033[0;5;33;40m:;%X\033[0;5;37;40m888\033[0;1;30;47m;\033[0;1;37;47m8\033[0;5;37;47m ;;..;\033[0;1;37;47m8t\033[0;1;30;47m \033[0;1;37;47m:8\033[0;5;37;47m88888@XXSXX\033[0;1;37;47m8\033[0;5;37;47m@t8@\033[0;5;1;33;47m8\033[0;5;37;47m888888@\033[0;5;1;33;47m@\033[0;5;37;47m8\033[0m\033[0;5;33;40m.%;t\033[0;5;37;40m8\033[0;5;33;40mS\033[0;1;30;47m8\033[0;5;33;40m%t\033[0;1;30;47m;\033[0;1;30;43m8\033[0;1;37;47mt\033[0;5;37;47mS:tt8%S\033[0;1;37;47m8\033[0;5;37;47m@88\033[0;1;37;47m%\033[0;1;33;47mS\033[0;1;37;47mt\033[0;1;33;47m%\033[0;5;37;47m888XSS\033[0;1;37;47m88\033[0;5;37;47m8t8888\033[0;5;1;33;47m8\033[0;5;37;47m888888\033[0m\033[0;5;37;40m8\033[0;5;33;40m t%\033[0;1;30;47mS\033[0;5;33;40m.\033[0;1;30;47m \033[0;5;33;40mt \033[0;1;30;47m.\033[0;5;33;40mX \033[0;1;30;47m \033[0;5;37;47m%@8%@88\033[0;1;37;47mSX\033[0;1;33;47m%\033[0;1;37;47m \033[0;5;37;47m88\033[0;1;33;47mX\033[0;1;37;47m.\033[0;5;37;47m88@X%\033[0;1;37;47m@\033[0;5;37;47m8\033[0;5;37;43m8\033[0;5;37;47m8888888\033[0;5;1;33;47m8\033[0;5;37;47m888\033[0m\033[0;1;30;47mSt\033[0;5;33;40mX:@\033[0;1;30;47mS\033[0;33;47m8\033[0;1;30;47m:\033[0;33;47m@\033[0;1;30;47mS.\033[0;33;47m@\033[0;1;30;47mX\033[0;1;30;43m8\033[0;1;30;47m8\033[0;5;37;47mX8%88\033[0;1;37;47mt\033[0;5;37;47m88\033[0;1;37;47m.\033[0;5;37;43m8\033[0;5;37;47m88\033[0;1;37;47m \033[0;1;33;47mS\033[0;5;37;47m8\033[0;1;37;47m:\033[0;5;37;47mXS8X\033[0;1;37;47m.\033[0;5;37;47m8\033[0;1;37;47m \033[0;5;37;47m8\033[0;5;1;33;47m8\033[0;5;37;47m888888\033[0;5;1;33;47m8\033[0;5;37;47m8\033[0m\033[0;5;33;40m:8 \033[0;1;30;47m:S\033[0;1;30;43m8\033[0;5;33;40m::\033[0;1;30;47mt\033[0;1;30;43m8\033[0;1;30;47m@\033[0;5;33;40m:\033[0;1;30;47m \033[0;5;33;40m \033[0;1;30;47mX\033[0;1;37;47mS\033[0;5;37;47m8\033[0;1;37;47mS\033[0;5;37;47m88\033[0;1;37;47m;\033[0;5;1;33;47m8\033[0;1;33;47mS\033[0;5;37;47m888\033[0;1;37;47m \033[0;5;37;47m8888\033[0;1;37;47m%\033[0;5;37;47mX8\033[0;1;37;47m \033[0;5;37;47m88\033[0;1;37;47m \033[0;5;37;47m8\033[0;5;1;33;47m@\033[0;5;37;47m88\033[0;5;1;33;47m8\033[0;5;37;47m888\033[0m\033[0;5;33;40m;@\033[0;1;30;47mt\033[0;1;30;43m8\033[0;5;33;40mX\033[0;5;31;40m8\033[0;5;33;40m \033[0;1;30;47m;\033[0;5;33;40m8\033[0;5;37;40m8\033[0;5;33;40m:.\033[0;33;47mX\033[0;1;30;47mX\033[0;1;30;43m8\033[0;5;37;47m8\033[0;1;37;47mS\033[0;5;37;47m8\033[0;1;37;47mt\033[0;5;37;47m88\033[0;1;37;47m \033[0;5;37;47m8888888888888\033[0;1;37;47m.\033[0;5;37;43m8\033[0;5;37;47m8\033[0;1;37;47m \033[0;5;37;47m8\033[0;1;37;47m \033[0;5;1;33;47m@\033[0;5;37;47m8\033[0;5;1;35;47m8\033[0;5;37;43m8\033[0;5;37;47m88\033[0m\033[0;5;33;40m;% % \033[0;1;30;47mX\033[0;5;33;40m; \033[0;1;30;47mS\033[0;5;33;40m:\033[0;1;30;47m%8\033[0;5;33;40m.\033[0;1;30;47m8\033[0;33;47m8\033[0;1;37;47mt\033[0;5;37;47m88\033[0;1;33;47m%\033[0;5;37;47m88\033[0;1;37;47m \033[0;5;37;43m8\033[0;5;37;47m88\033[0;1;33;47mS\033[0;5;37;47m@X888@@X888\033[0;1;35;47mS\033[0;1;37;47m \033[0;5;1;33;47m8\033[0;1;35;47mX\033[0;5;37;43m8\033[0;5;1;35;47m8\033[0;5;1;33;47m8\033[0;1;31;47mS\033[0;5;37;47m8\033[0;1;37;47m \033[0m\033[0;5;33;40m88:\033[0;1;30;47m@\033[0;5;33;40m@ \033[0;1;30;47m \033[0;33;47m@\033[0;5;33;40m:\033[0;33;47m8\033[0;5;33;40m8\033[0;5;37;40m8\033[0;33;47m@\033[0;5;33;40m;\033[0;1;30;47mS\033[0;1;37;47m;\033[0;5;37;47m888\033[0;1;33;47m@\033[0;5;37;47m88\033[0;1;35;47mS\033[0;1;33;47mS\033[0;5;37;47m88S:tXtt%@8888\033[0;1;37;47m \033[0;5;37;47m8\033[0;1;37;47m \033[0;1;31;47mX\033[0;5;37;47m8\033[0;1;37;47m \033[0;5;37;47m8\033[0;1;37;47m \033[0m\033[0;5;33;40m8\033[0;5;32;40m@\033[0;5;33;40mX:;.\033[0;1;30;47m;;\033[0;33;47m8\033[0;1;30;47m8\033[0;5;33;40m: .\033[0;33;47m@\033[0;1;37;47m \033[0;1;33;47mX\033[0;1;37;47m \033[0;5;37;47m8\033[0;1;33;47m%\033[0;5;37;47m8888\033[0;1;31;47mX\033[0;5;37;47m88S%;: 8%%S@X8\033[0;5;37;41m8\033[0;1;37;47m.\033[0;5;37;47m8\033[0;1;37;47m \033[0;1;33;47m%\033[0;1;31;47m@\033[0;1;37;47m \033[0;5;1;33;47m8\033[0;1;37;47m \033[0m\033[0;5;33;40mS; %S:SS.\033[0;1;30;47m8\033[0;1;30;43m8\033[0;5;37;40mX\033[0;1;30;43m8\033[0;1;37;47m \033[0;1;33;47mX\033[0;1;31;47m@\033[0;5;37;47m8\033[0;1;33;47mS\033[0;5;37;47m88X%\033[0;1;37;47m \033[0;5;37;47m888@St:.;.;tS88\033[0;1;37;47m:\033[0;5;37;47m8\033[0;1;33;47mS\033[0;5;37;47m8\033[0;1;31;47mS\033[0;1;33;47m%\033[0;1;31;47mS\033[0;1;37;47m \033[0;1;33;47m%\033[0;1;37;47m \033[0m\033[0;5;33;40m 8\033[0;5;31;40mS\033[0;5;33;40m \033[0;1;30;47m@\033[0;5;33;40m \033[0;1;30;43m8\033[0;5;33;40m%\033[0;5;31;40m8\033[0;1;30;47m8\033[0;1;37;47m;\033[0;1;33;47mX\033[0;1;35;47m@\033[0;1;33;47m@\033[0;1;31;47m@\033[0;1;37;47m \033[0;5;37;47m888t8888@t::;t.;;@8\033[0;1;37;47m;\033[0;5;37;47m8\033[0;1;37;47m \033[0;5;37;47m8\033[0;1;37;47m \033[0;5;37;47m8\033[0;1;33;47m%\033[0;1;31;47mS\033[0;1;37;47m \033[0;1;33;47m%\033[0;1;37;47m \033[0m\033[0;5;37;40m8\033[0;5;33;40m.\033[0;5;37;40m8\033[0;5;33;40m \033[0;1;30;47mt\033[0;5;37;40m88\033[0;5;33;40mS\033[0;1;30;47mt\033[0;5;33;40mX\033[0;1;30;47m.\033[0;1;37;47m \033[0;33;47mX\033[0;1;30;47m8\033[0;1;31;43m8\033[0;1;37;47mt \033[0;1;35;47mS\033[0;1;33;47m%\033[0;5;37;47m8888\033[0;5;37;43m8\033[0;5;37;47m88%;.;88..SS8\033[0;1;37;47m;\033[0;5;37;47m888\033[0;1;33;47mX\033[0;1;35;47mS\033[0;1;37;47m \033[0;1;33;47m%\033[0;1;31;47mS\033[0;1;33;47mS\033[0;1;37;47m \033[0m\n\033[0;5;33;40m t\033[0;5;37;40m8\033[0;1;30;47mt\033[0;1;37;47m;8X\033[0;5;33;40mS\033[0;5;37;47m8\033[0;5;33;40m8\033[0;1;37;47m \033[0;1;30;47mX\033[0;1;30;43m8\033[0;1;30;47m8\033[0;1;37;47m \033[0;1;30;47m8\033[0;1;33;47mX\033[0;1;37;47m \033[0;1;31;47mS\033[0;5;37;47m8\033[0;5;1;35;41m8\033[0;1;33;47m%\033[0;5;37;47m8%888%.:@88\033[0;1;37;47m:\033[0;5;37;47m8\033[0;1;33;47mS\033[0;1;31;47m@\033[0;1;35;47mS\033[0;5;37;43m8\033[0;1;37;47m \033[0;1;33;47mX\033[0;5;37;41m8\033[0;1;30;47m8\033[0m\n\033[0;5;33;40m8\033[0;5;37;40m8\033[0;33;47mS\033[0;1;30;43m8\033[0;1;30;47mX\033[0;1;30;43m8\033[0;1;30;47m@\033[0;5;37;40m8\033[0;5;33;40m8\033[0;5;35;40m%\033[0;1;30;41m8\033[0;5;31;40m@\033[0;1;30;47m8\033[0;1;37;47m \033[0;1;30;47m8\033[0;1;37;47m \033[0;35;47mS\033[0;33;47m@\033[0;5;37;47m888\033[0;5;37;41m8\033[0;1;31;47m@\033[0;1;37;47m \033[0;33;47mX\033[0;5;35;41m;\033[0;1;37;47m8;\033[0;35;47m8\033[0;1;37;47m \033[0;5;37;47m8S%@\033[0;1;37;47mS@X:\033[0;35;47m@\033[0;1;30;47m8\033[0;1;37;47m \033[0;1;33;47m8\033[0;1;31;45m8\033[0;1;33;47mS\033[0;1;31;47mSS\033[0;1;37;47m .\033[0m\n\033[0;5;33;40m :\033[0;1;30;47mt\033[0;5;33;40m:tX\033[0;5;37;40m8\033[0;5;33;40m%\033[0;5;30;40m@\033[0;32;40m@\033[0;5;30;40m8\033[0;5;33;40mt\033[0;5;35;40m \033[0;1;30;47m88\033[0;1;37;47m \033[0;5;37;47m888\033[0;1;37;47m: \033[0;33;47m8\033[0;1;37;47m \033[0;5;37;47m%;S\033[0;1;37;47m; \033[0;5;37;47m88\033[0;1;37;47m@%SS%\033[0;1;30;47m@\033[0;33;47m@8\033[0;35;47m8\033[0;1;30;43m8\033[0;1;37;47m \033[0;1;30;43m8\033[0;1;30;47m8\033[0;33;47m@\033[0;1;37;47m \033[0;1;33;47mS\033[0m\n\033[0;5;37;40m8\033[0;5;33;40mt%\033[0;1;30;47m8\033[0;5;33;40mt\033[0;5;37;40m@\033[0;5;33;40m%t\033[0;5;30;40m@\033[0;5;31;40mS\033[0;5;32;40mS\033[0;5;35;40m%\033[0;5;33;40mS\033[0;5;31;40m8\033[0;5;33;40m:\033[0;33;47m@\033[0;1;37;47m \033[0;1;33;47mS\033[0;1;31;47m@\033[0;1;37;47m \033[0;33;47m8\033[0;1;37;47m \033[0;35;47mS\033[0;1;37;47m:t.\033[0;1;30;47m%;:\033[0;1;37;47m :%.\033[0;5;37;40m%\033[0;1;30;47m8\033[0;5;33;40mX\033[0;1;30;41m8\033[0;5;33;40m8 \033[0;5;31;40m8\033[0;5;37;40mX\033[0;1;30;43m8\033[0;5;31;40mX\033[0;5;33;40mX\033[0;5;35;40m.\033[0m\n\033[0;5;37;40m8\033[0;1;30;47mt\033[0;5;33;40m;%;\033[0;1;30;47m8\033[0;5;33;40m:t\033[0;1;30;47m@\033[0;5;33;40m@\033[0;5;30;40mX\033[0;5;33;40m \033[0;1;30;47m8\033[0;5;33;40mS%\033[0;5;35;40mt\033[0;33;47mX\033[0;1;37;47m \033[0;1;31;47m@\033[0;1;37;47m \033[0;1;31;47m@\033[0;1;30;47m8@8\033[0;1;37;47m %.% .:\033[0;5;35;40m:\033[0;1;30;47m8\033[0;1;37;47m.\033[0;5;33;40m.8\033[0;5;31;40m@\033[0;5;33;40m%@\033[0;5;31;40mX\033[0;5;33;40m8\033[0;1;30;41m8\033[0;5;33;40mXS\033[0;5;31;40m@\033[0;31;40m8\033[0m\n\033[0;5;33;40m: \033[0;1;30;47m:\033[0;5;33;40m;%\033[0;1;37;47m;\033[0;33;47mX\033[0;5;37;40m8\033[0;5;33;40mS\033[0;1;30;47m@\033[0;5;35;40m \033[0;5;30;40m8\033[0;5;33;40mS\033[0;31;40m@\033[0;5;33;40m:8\033[0;1;30;47m8\033[0;1;37;47m \033[0;1;31;47m8\033[0;33;47m8\033[0;1;30;47m8\033[0;1;37;47m \033[0;1;30;47m888X\033[0;1;37;47mt. \033[0;1;30;47m8\033[0;5;35;40m.\033[0;5;37;40mS\033[0;30;41m8\033[0;5;33;40m.\033[0;5;37;40m8\033[0;1;37;47m8\033[0;5;33;40mt8%\033[0;5;30;40m@\033[0;5;33;40m.8\033[0;5;30;40m@\033[0;1;30;40m8\033[0;5;33;40m.\033[0;5;30;40mX\033[0;5;33;40m8\033[0m\n\033[0;5;37;40m8\033[0;1;30;47mt\033[0;1;30;43m8\033[0;5;37;40mX\033[0;5;33;40m:\033[0;1;30;47m8\033[0;1;30;43m8\033[0;5;33;40m:\033[0;1;30;47m8\033[0;5;37;40m8\033[0;1;30;47m8\033[0;5;33;40m tt%\033[0;30;41m8\033[0;1;30;47m8\033[0;33;47m@\033[0;1;30;47m88\033[0;33;47m8\033[0;35;47m@\033[0;1;33;47mS\033[0;35;47mS\033[0;33;47m8\033[0;5;35;40m:\033[0;1;30;47m8\033[0;1;37;47m.\033[0;1;30;47m8\033[0;5;35;40m \033[0;1;30;47m8\033[0;5;33;40mt\033[0;5;31;40m8\033[0;5;32;40m@\033[0;5;33;40mS@\033[0;5;32;40mS\033[0;5;33;40m%\033[0;5;37;40m8\033[0;5;33;40m%\033[0;5;32;40m@\033[0;5;30;40m@X\033[0;5;33;40m@t.88\033[0m\n\033[0;5;33;40m:\033[0;5;37;40m8\033[0;1;30;47m8\033[0;5;33;40mSX\033[0;1;30;47m@\033[0;5;33;40mSX \033[0;1;30;47m8\033[0;5;37;40m8\033[0;5;33;40mt.\033[0;1;30;47m8S\033[0;5;33;40m;:\033[0;1;30;47m8\033[0;37;43m8\033[0;1;30;47m8\033[0;33;47m8\033[0;5;33;40m:;%\033[0;5;35;40mS\033[0;1;30;47m8\033[0;5;33;40m;\033[0;1;37;47m \033[0;1;30;47m8@\033[0;5;33;40m;@\033[0;1;30;40m8\033[0;5;33;40m:\033[0;1;30;40m8\033[0;5;33;40m8\033[0;32;40mX\033[0;5;33;40m8\033[0;1;30;40m8\033[0;5;33;40m:\033[0;5;37;40m8\033[0;5;32;40mS\033[0;5;33;40m@.8\033[0;1;30;47m@\033[0;5;33;40mX \033[0m\n\033[0;1;30;47m%S8%\033[0;5;37;40mX\033[0;5;33;40m%:t%tt\033[0;1;30;47m8\033[0;5;33;40mt 8%X%\033[0;1;30;47m@\033[0;5;33;40m::X\033[0;5;35;40mt\033[0;33;47mX\033[0;5;33;40m@:t\033[0;1;30;47m8888\033[0;5;33;40mX;S\033[0;32;40m8\033[0;5;33;40mX\033[0;5;31;40mS\033[0;5;33;40mt\033[0;5;32;40mX\033[0;5;33;40m:8\033[0;5;37;40m8\033[0;5;33;40mSt:@;\033[0;1;30;47m.\033[0m\n\033[0;1;30;47mXS8\033[0;1;37;47m \033[0;1;30;47m%X\033[0;1;30;43m8\033[0;5;33;40m%%SXS \033[0;1;30;47m8%\033[0;5;33;40m%\033[0;5;37;40mSX\033[0;1;30;43m8\033[0;1;30;47m8\033[0;1;30;43m8\033[0;5;37;40mt\033[0;33;47m8\033[0;5;35;40m;\033[0;5;37;40m%\033[0;5;33;40m % \033[0;1;30;47mt\033[0;31;43m8\033[0;5;33;40m :S%X\033[0;5;32;40mXX\033[0;5;33;40m88\033[0;5;32;40mX\033[0;5;31;40mS\033[0;5;33;40m8\033[0;5;37;40mX\033[0;5;33;40m@S:.\033[0;1;30;43m8\033[0m\n\033[0;5;33;40m \033[0;1;30;47mt%X\033[0;33;47m@\033[0;1;30;47m8@\033[0;1;30;43m8\033[0;5;33;40m8 %;;\033[0;1;30;47mX\033[0;5;33;40m8.;\033[0;1;37;47m.\033[0;5;33;40m@.X@\033[0;5;37;40mS\033[0;5;33;40mtt;\033[0;1;30;47m88\033[0;5;33;40m@\033[0;1;30;47m8\033[0;5;33;40mt 8%\033[0;5;32;40mX\033[0;30;41m8\033[0;5;32;40mS\033[0;1;30;40m8\033[0;5;33;40m8\033[0;5;30;40mX\033[0;5;32;40m8\033[0;5;33;40mSt;t;;;\033[0m\n\033[0;5;33;40m:X\033[0;5;37;40mX\033[0;1;30;47m8\033[0;33;47m8\033[0;1;30;47m8\033[0;33;47m@\033[0;5;33;40m%S\033[0;5;37;40m8\033[0;5;33;40m@%88X@@8\033[0;5;31;40mX\033[0;5;33;40m8\033[0;5;31;40mX\033[0;5;33;40m8\033[0;5;31;40mX\033[0;1;30;47m8\033[0;5;33;40m:8 \033[0;1;30;47m88\033[0;5;37;40m8\033[0;5;33;40m%t%\033[0;5;32;40mX\033[0;5;31;40m@\033[0;5;33;40mtX\033[0;5;30;40m8\033[0;5;33;40mt%%8S8X\033[0;1;30;47m8\033[0;5;33;40m%\033[0;1;30;47mX\033[0m\n"); + getch(); +} diff --git a/everything else/printtest.exe b/everything else/printtest.exe new file mode 100644 index 0000000..931884a Binary files /dev/null and b/everything else/printtest.exe differ diff --git a/everything else/printtest.o b/everything else/printtest.o new file mode 100644 index 0000000..1cefbc9 Binary files /dev/null and b/everything else/printtest.o differ diff --git a/everything else/rfk with old debug.c b/everything else/rfk with old debug.c new file mode 100644 index 0000000..3095e6c --- /dev/null +++ b/everything else/rfk with old debug.c @@ -0,0 +1,428 @@ +#include +#include +#include +#include //for void hidecursor(), only required on windows + +//challenges: +//make this work on any posix machine (use them defines or whatever) +//populate, addrobot, and addkitten could all be put into one function +//add resize and kitten crushing support +//compact printf statemnets +//read texts and kitscene from file + +//"kitten printers" + +int in = 0; +int objects = 30; //0-29 are objects, 30 is kitten, 31 is robot +int x[31]; int y[31]; //int x[(objects + 2)]; int y[(objects + 2)]; the + 2 makes room for kitten and robot, but these should be excluded from for loops +char object_symbol[31]; //char object_symbol[(objects + 2)]; +int object_color[31]; //int object_color[(objects + 2)]; +int object_brightness[31]; //int object_brightness[(objects + 2)]; +int object_text[29]; //int object_text[(objects + 2)]; //kitten doesnt have text because a cutscene plays and robot doesnt have text cause you cant colide with it +int populate_stop = 1; int addrobot_stop = 1; int addkitten_stop = 1; int move_stop = 1; int text_stop = 1; //stop variables +int texts = 64; char text[64][128] = { //the text for colliding with nkos, might want to minimize this because it will get big + {"Not kitten."}, + {"Not a kitten."}, + {"A pigeon with a TCP/IP packet taped to it's leg."}, //i like this line too much not to use it + {"Deez."}, + {"The Internet, lying in a puddle on the floor"}, + {"Your mother's house."}, + {"What is it? I don't know."}, + {"That one thing. You know what thing I mean."}, + {"A magazine full of bullets... it's not the right type of magazine, though."}, + {"Someone spilled their drink here!"}, + {"Your Advanced Placement Computer Science Principles classroom."}, + {"text 11"}, + {"This brick wall is missing a brick! Oh, nevermind, it's just been replaced with a Nokia 3310."}, + {"A kitten."}, + {"A penguin using an operating system you've never seen before."}, + {"An open window shining on a computer with an entirely blue screen."}, //objectively bad //16 + {"This white apple is hooked up to a mouse, keyboard and monitor... it isn't doing anything."}, + {"A pufferfish using an operating system you've never seen before... the pufferfish is puffed up."}, + {"A copy of 'The C Programming Language'."}, + {"George (the cat)."}, + {"An analog clock running on UNIX time."}, + {"The table that you always hit your knee on."}, + {"A calendar with some classic cars on it for 2022."}, + {"Justice, finally!"}, + {"A newspaper dated December 6th, 1941... it seems like it was a good day."}, + {"Poland."}, + {"An old map of Europe... it looks more like pasta than borders."}, + {"The RWin key."}, + {"It appears to be a... oh, nevermind."}, + {"Another robot! Oh, it's just a mirror."}, + {"'Kitten's over there', it says."}, + {"A large trashcan, filled to the brim with metal chips... you can't move it."}, //32 + {"The 32-bit integer limit."}, + {"A generic car, endlessly doing donuts."}, + {"A bug, causing problems as usual."}, + {"#ff00ff"}, + {"3 pythons, squirming in place."}, + {"A sign says 'Members Only'... you can't tell what the object is."}, //"You must be a member to discover this object." + {"A segme ntation fault."}, + {"The goods."}, + {"A partridge in a pear tree."}, + {"A penguin wearing a tux."}, + {"'Mostly sunny'? What, in this void?"}, + {"\\033[1;1H"}, + {"The metric system."}, + {"h."}, + {"'Kilroy was here', says Kilroy."}, + {"The stack, don't touch it though!"}, //48 + {"A TOR node."}, + {":)"}, + {"The blue cable drive."}, + {"You Win! Oh, wait a minute... nevermind."}, + {"An external numpad... two keys are worn down."}, + {"An X server."}, + {"All of your deleted files, in a pile on the ground."}, + {"Dexterity."}, + {"A bottle of battery acid, essentially poison for robot."}, + {"Sweet, some sugar!"}, + {"A block of code."}, + {"The third dimension."}, + {"CDs stacked so high that you can't see the top... they all say something about '500 free hours'."}, + {"A computer with glasses and a fake nose... it might be spyware."}, + {"This toaster has a few forks sticking out of the top... the toaster is unplugged."}, + {"A label firmly stuck to the ground says 'PROPERTY OF THE STATE'."} //64 + }; //elegant, i know +char kitscenetext[7][21] = { + {" `/\\_____/\\ "}, //`oragne .green ,reset + {" / .o o` \\ "}, + {" ( ,== `^ ,== `) "}, + {" ) ( "}, + {" / \\ "}, + {" / / | | \\ \\ "}, + {"/__|__|___|__|__\\,"}, + }; +char kitscenerobot[7][19] = { + {" `___ "}, //`grey .red ,reset + {" |_.@`_| "}, + {" | | "}, + {" \\---|---\\ "}, + {" | | "}, + {" | "}, + {" O--O--O, "}, +}; +time_t t; + +void hidecursor() { //i hate windows, and you do too + HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); + CONSOLE_CURSOR_INFO info; + info.dwSize = 100; + info.bVisible = FALSE; + SetConsoleCursorInfo(consoleHandle, &info); +} + +void populate() { + for(int i = 0; i < objects; i++) { //initial position randomization + x[i] = (rand() % 128); + y[i] = (rand() % 64); + object_symbol[i] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[i] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[i] = ((rand() % 8) + 90); //color 90-98 + } + object_text[i] = ((rand() % texts)); //text 0-127 + } + while(populate_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[i] == x[j]) && (y[i] == y[j])) { + x[i] = (rand() % 128); + y[i] = (rand() % 64); + } else { + populate_stop = 0; + } + } + } + } + while(text_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if(object_text[i] == object_text[j]) { + object_text[i] = ((rand() % texts)); + } else { + text_stop = 0; + } + } + } + } + object_text[30] = 0; //kitten always gets 2 for some reason so im making it 0 manually for niceness + for (int i = 0; i < objects; i++) { + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[i] + 3),(x[i] + 1),object_color[i],object_symbol[i]); + } +} + +void addkitten() { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + object_symbol[30] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[30] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[30] = ((rand() % 8) + 90); //color 90-98 + } + while(addkitten_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[30] == x[j]) && (y[30] == y[j])) { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + } else { + addkitten_stop = 0; + } + } + } + } + //the kitten printer + //printf("\033[%d;%dH\033[%dm\033[107m%c\033[0m",(y[30] + 3),(x[30] + 1),object_color[30],object_symbol[30]); //debug the \033[107m gives kitten a white background for easier identification + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[30] + 3),(x[30] + 1),object_color[30],object_symbol[30]); +} + +void addrobot() { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + object_symbol[31] = 35; //robot is always a bright white # + object_color[31] = 97; + while(addrobot_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[31] == x[j]) && (y[31] == y[j])) { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + } else { + addrobot_stop = 0; + } + } + } + } + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); +} + +void initialize() { + printf("\033[?25l"); //hides cursor on linux + hidecursor(); //hides cursor on windows + srand(time(t)); + system("mode con: cols=128 lines=66"); + printf("\033]0;rfk\x1b\x5c"); //set conlse title to rfk + //47, 55, 43, 49 i think + printf("\033[8;40HYou are Robot, and your goal is to find Kitten.\033[9;36HThis is complicated by the exsistance of other objects.\033[10;42HYou must touch an object to see what it is.\033[12;39HUse the arrow keys and press any key to continue."); + getch(); + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + populate(); + addkitten(); + addrobot(); +} + +void kitscene() { //kitten cutscene, kitscene - if you will + //printf("kitte"); //the most primitive debug of the century + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + for (int i = 0; i < 39; i++) { + printf("\033[28;%dH",(8 + i));//kitten section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 21; l++) { //kitsceen is 19 characters long, including \0 //maybe not anymroe + switch(kitscenetext[j][l]) { + case '`': + printf("\033[33m"); + break; + case '.': + printf("\033[32m"); + break; + case ',': + printf("\033[0m"); + break; + default: + printf("%c", kitscenetext[j][l]); + break; + } + } + printf("\033[18D \033[B"); + } + printf("\033[28;%dH",(103 - i));//robot section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 19; l++) { //kitsceen is 19 characters long, including \0 + switch(kitscenerobot[j][l]) { + case '`': + printf("\033[90m"); + break; + case '.': + printf("\033[31m"); + break; + case ',': + printf("\033[0m"); + break; + default: + printf("%c", kitscenerobot[j][l]); + break; + } + } + printf("\033[18D\033[B"); + } + Sleep(50); //windows only, fix cross-platfrom with defiens + //printf("%d",i); //debug + } + + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HAgain? [y/n]"); + sleep(1); + int exitchoice = getch(); + while(1) { //the stuff inthe while loop make it so only y and n work, instead of arrow keys and such working too probably not the best wayof doing it but its fine for v1 + if(exitchoice == 110) { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HYeah, cause DOS is so much better..."); + getch(); + exit(0); + } else if(exitchoice == 121) { + initialize(); + return; + } + exitchoice = getch(); + } +} + +void objectcollidetext(int i) { + if (i == 30) { //if the object is kitten + kitscene(); + return; + } else { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + for(int j = 0; j < 128; j++) { + printf("%c",text[(object_text[i])][j]); + } + return; + } +} + +void moverobot(int direction) { + switch(direction) { + case 72 : //up + move_stop = 0; + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] == x[i]) && ((y[31] - 1) == y[i]))) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfailedup x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1Hcollided with %d",i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] - 1; + //printf("\033[1;1H \033[1;1Hmoveup x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmoveup x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 80 : //down + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] + 1 == 64)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if((x[31] == x[i]) && ((y[31] + 1) == y[i])) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfaileddown x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] + 1; + //printf("\033[1;1H \033[1;1Hmovedown x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmovedown x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 75 : //left + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] - 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfailedleft x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] - 1; + //printf("\033[1;1H \033[1;1Hmoveleft x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmoveleft x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 77 : //right + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] + 1 == 128)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] + 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + //printf("\033[1;1H \033[1;1Hfailedright x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] + 1; + //printf("\033[1;1H \033[1;1Hmoveright x%d y%d xcheck%d ycheck%d %d",x[31],y[31],(x[31] == x[i]),((y[31] - 1) == y[i]), i); //debug + //printf("\033[1;1H \033[1;1Hmoveright x%d y%d",x[31],y[31]); //debug + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } +} + +int main() { + initialize(); + while(1) { + in = getch(); + if (in == 0 || in == 0xE0) in = getch(); //got dang ol windows makes you call functions and arrows keys twice to get the input + switch(in) { //this switch statement is kinda goofy because it only really calls moverobot() but thats got a switch statement in it right away, but now theres other buttons too so its good now + case 72 : //up + moverobot(in); + break; + case 80 : //down + moverobot(in); + break; + case 75 : //left + moverobot(in); + break; + case 77 : //right + moverobot(in); + break; + /*case 49 : //debug + printf("\033[3;1H");//print coords, debug + for (int i = 0; i < 32; i++) { + printf("\033[G \033[Gx%d y%d i%d t%d\n", x[i], y[i], i, object_text[i]); + } + getch(); + break;*/ + /*case 49 : //debug + kitscene(); + case 50 : //debug + printf("\033"); + break;*/ + case 27 : //quit with prompt + printf("\033[1;1HQuit? [y/n]"); + if(getch() == 121) { + exit(0); + } else { + break; + } + default : + printf("\a"); //bell, possibly annoying + } + } +} diff --git a/everything else/rfk-final-video.mp4 b/everything else/rfk-final-video.mp4 new file mode 100644 index 0000000..6cf4e5f Binary files /dev/null and b/everything else/rfk-final-video.mp4 differ diff --git a/everything else/rfk-final.c b/everything else/rfk-final.c new file mode 100644 index 0000000..7663df5 --- /dev/null +++ b/everything else/rfk-final.c @@ -0,0 +1,392 @@ +#include +#include +#include +#include //for void hidecursor(), only required on windows + +//"kitten printers" + +int in = 0; +int objects = 30; //0-29 are objects, 30 is kitten, 31 is robot +int x[31]; int y[31]; //int x[(objects + 2)]; int y[(objects + 2)]; the + 2 makes room for kitten and robot, but these should be excluded from for loops +char object_symbol[31]; //char object_symbol[(objects + 2)]; +int object_color[31]; //int object_color[(objects + 2)]; +int object_brightness[31]; //int object_brightness[(objects + 2)]; +int object_text[29]; //int object_text[(objects + 2)]; //kitten doesnt have text because a cutscene plays and robot doesnt have text cause you cant colide with it +int populate_stop = 1; int addrobot_stop = 1; int addkitten_stop = 1; int move_stop = 1; int text_stop = 1; //stop variables +int texts = 64; char text[64][128] = { //the text for colliding with nkos, might want to minimize this because it will get big + {"Not kitten."}, + {"Not a kitten."}, + {"A pigeon with a TCP/IP packet taped to it's leg."}, //i like this line too much not to use it + {"Deez."}, + {"The Internet, lying in a puddle on the floor."}, + {"Your mother's house."}, + {"What is it? I don't know."}, + {"That one thing. You know what thing I mean."}, + {"A magazine full of bullets... it's not the right type of magazine, though."}, + {"Someone spilled their drink here!"}, + {"Your Advanced Placement Computer Science Principles classroom."}, + {"text 11"}, + {"This brick wall is missing a brick! Oh, nevermind, it's just been replaced with a Nokia 3310."}, + {"A kitten."}, + {"A penguin using an operating system you've never seen before."}, + {"An open window shining on a computer with an entirely blue screen."}, //objectively bad //16 + {"This white apple is hooked up to a mouse, keyboard and monitor... it isn't doing anything."}, + {"A pufferfish using an operating system you've never seen before... the pufferfish is puffed up."}, + {"A copy of 'The C Programming Language'."}, + {"George (the cat)."}, + {"An analog clock running on UNIX time."}, + {"The table that you always hit your knee on."}, + {"A calendar with some classic cars on it for 2022."}, + {"Justice, finally!"}, + {"A newspaper dated December 6th, 1941... it seems like it was a good day."}, + {"Poland."}, + {"An old map of Europe... it looks more like pasta than borders."}, + {"The RWin key."}, + {"It appears to be a... oh, nevermind."}, + {"Another robot! Oh, it's just a mirror."}, + {"'Kitten's over there', it says."}, + {"A large trashcan, filled to the brim with metal chips... you can't move it."}, //32 + {"The 32-bit integer limit."}, + {"A generic car, endlessly doing donuts."}, + {"A bug, causing problems as usual."}, + {"#ff00ff"}, + {"3 pythons, squirming in place."}, + {"A sign says 'Members Only'... you can't tell what the object is."}, //"You must be a member to discover this object." + {"A segme ntation fault."}, + {"The goods."}, + {"A partridge in a pear tree."}, + {"A penguin wearing a tux."}, + {"'Mostly sunny'? What, in this void?"}, + {"\\033[1;1H"}, + {"The metric system."}, + {"h."}, + {"'Kilroy was here', says Kilroy."}, + {"The stack, don't touch it though!"}, //48 + {"A TOR node."}, + {":)"}, + {"The blue cable drive."}, + {"You Win! Oh, wait a minute... nevermind."}, + {"An external numpad... two keys are worn down."}, + {"An X server."}, + {"All of your deleted files, in a pile on the ground."}, + {"Dexterity."}, + {"A bottle of battery acid, essentially poison for robot."}, + {"Sweet, some sugar!"}, + {"A block of code."}, + {"The third dimension."}, + {"CDs stacked so high that you can't see the top... they all say something about '500 free hours'."}, + {"A computer with glasses and a fake nose... it might be spyware."}, + {"This toaster has a few forks sticking out of the top... the toaster is unplugged."}, + {"A label firmly stuck to the ground says 'PROPERTY OF THE STATE'."} //64 + }; //elegant, i know +char kitscenetext[7][21] = { + {" `/\\_____/\\ "}, //`oragne .green ,reset + {" / .o o` \\ "}, + {" ( ,== `^ ,== `) "}, + {" ) ( "}, + {" / \\ "}, + {" / / | | \\ \\ "}, + {"/__|__|___|__|__\\,"}, + }; +char kitscenerobot[7][19] = { + {" `___ "}, //`grey .red ,reset + {" |_.@`_| "}, + {" | | "}, + {" \\---|---\\ "}, + {" | | "}, + {" | "}, + {" O--O--O, "}, +}; +time_t t; + +void hidecursor() { //i hate windows, and you do too + HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); + CONSOLE_CURSOR_INFO info; + info.dwSize = 100; + info.bVisible = FALSE; + SetConsoleCursorInfo(consoleHandle, &info); +} + +void populate() { + for(int i = 0; i < objects; i++) { //initial position randomization + x[i] = (rand() % 128); + y[i] = (rand() % 64); + object_symbol[i] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[i] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[i] = ((rand() % 8) + 90); //color 90-98 + } + object_text[i] = ((rand() % texts)); //text 0-127 + } + while(populate_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[i] == x[j]) && (y[i] == y[j])) { + x[i] = (rand() % 128); + y[i] = (rand() % 64); + } else { + populate_stop = 0; + } + } + } + } + while(text_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if(object_text[i] == object_text[j]) { + object_text[i] = ((rand() % texts)); + } else { + text_stop = 0; + } + } + } + } + object_text[30] = 0; //kitten always gets 2 for some reason so im making it 0 manually for niceness + for (int i = 0; i < objects; i++) { + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[i] + 3),(x[i] + 1),object_color[i],object_symbol[i]); + } +} + +void addkitten() { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + object_symbol[30] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[30] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[30] = ((rand() % 8) + 90); //color 90-98 + } + while(addkitten_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[30] == x[j]) && (y[30] == y[j])) { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + } else { + addkitten_stop = 0; + } + } + } + } + //the kitten printer + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[30] + 3),(x[30] + 1),object_color[30],object_symbol[30]); +} + +void addrobot() { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + object_symbol[31] = 35; //robot is always a bright white # + object_color[31] = 97; + while(addrobot_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[31] == x[j]) && (y[31] == y[j])) { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + } else { + addrobot_stop = 0; + } + } + } + } + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); +} + +void initialize() { + hidecursor(); //hides cursor on windows + srand(time(t)); + system("mode con: cols=128 lines=66"); + printf("\033]0;rfk\x1b\x5c"); //set conlse title to rfk + printf("\033[8;40HYou are Robot, and your goal is to find Kitten.\033[9;36HThis is complicated by the exsistance of other objects.\033[10;42HYou must touch an object to see what it is.\033[12;39HUse the arrow keys and press any key to continue."); + getch(); + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + populate(); + addkitten(); + addrobot(); +} + +void kitscene() { //kitten cutscene, kitscene - if you will + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + for (int i = 0; i < 39; i++) { + printf("\033[28;%dH",(8 + i));//kitten section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 21; l++) { //kitsceen is 19 characters long, including \0 //maybe not anymroe + switch(kitscenetext[j][l]) { + case '`': + printf("\033[33m"); + break; + case '.': + printf("\033[32m"); + break; + case ',': + printf("\033[0m"); + break; + default: + printf("%c", kitscenetext[j][l]); + break; + } + } + printf("\033[18D \033[B"); + } + printf("\033[28;%dH",(103 - i));//robot section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 19; l++) { //kitsceen is 19 characters long, including \0 + switch(kitscenerobot[j][l]) { + case '`': + printf("\033[90m"); + break; + case '.': + printf("\033[31m"); + break; + case ',': + printf("\033[0m"); + break; + default: + printf("%c", kitscenerobot[j][l]); + break; + } + } + printf("\033[18D\033[B"); + } + Sleep(50); //windows only, fix cross-platfrom with defiens + } + + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HAgain? [y/n]"); + sleep(1); + int exitchoice = getch(); + while(1) { //the stuff inthe while loop make it so only y and n work, instead of arrow keys and such working too probably not the best wayof doing it but its fine for v1 + if(exitchoice == 110) { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HYeah, cause DOS is so much better..."); + getch(); + exit(0); + } else if(exitchoice == 121) { + initialize(); + return; + } + exitchoice = getch(); + } +} + +void objectcollidetext(int i) { + if (i == 30) { //if the object is kitten + kitscene(); + return; + } else { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + for(int j = 0; j < 128; j++) { + printf("%c",text[(object_text[i])][j]); + } + return; + } +} + +void moverobot(int direction) { + switch(direction) { + case 72 : //up + move_stop = 0; //for all objects including kitten + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] == x[i]) && ((y[31] - 1) == y[i]))) { //trying to have same coords as an object, or go out of bounds + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] - 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 80 : //down //for all objects including kitten + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] + 1 == 64)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if((x[31] == x[i]) && ((y[31] + 1) == y[i])) { //trying to have same coords as an object, or go out of bounds + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] + 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 75 : //left //for all objects including kitten + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] - 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] - 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 77 : //right //for all objects including kitten + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] + 1 == 128)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] + 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] + 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } +} + +int main() { + initialize(); + while(1) { + in = getch(); + if (in == 0 || in == 0xE0) in = getch(); //dang ol windows makes you call functions and arrows keys twice to get the input + switch(in) { //this switch statement is kinda goofy because it only really calls moverobot() but thats got a switch statement in it right away, but now theres other buttons too so its good now + case 72 : //up + moverobot(in); + break; + case 80 : //down + moverobot(in); + break; + case 75 : //left + moverobot(in); + break; + case 77 : //right + moverobot(in); + break; + case 27 : //quit with prompt //esc + printf("\033[1;1H \033[1;1HQuit? [y/n]"); + if(getch() == 121) { + exit(0); + } else { + printf("\033[1;1H "); //clear the quit dialog + break; + } + case 113 : //quit with prompt //q + printf("\033[1;1H \033[1;1HQuit? [y/n]"); + if(getch() == 121) { + exit(0); + } else { + printf("\033[1;1H "); //clear the quit dialog + break; + } + default : + printf("\a"); //bell, possibly annoying + } + } +} diff --git a/everything else/rfk-final.exe b/everything else/rfk-final.exe new file mode 100644 index 0000000..2ed94bf Binary files /dev/null and b/everything else/rfk-final.exe differ diff --git a/everything else/rfk-final.o b/everything else/rfk-final.o new file mode 100644 index 0000000..760910d Binary files /dev/null and b/everything else/rfk-final.o differ diff --git a/everything else/rfk-final.pdf b/everything else/rfk-final.pdf new file mode 100644 index 0000000..f127d79 Binary files /dev/null and b/everything else/rfk-final.pdf differ diff --git a/everything else/rfk-final.txt b/everything else/rfk-final.txt new file mode 100644 index 0000000..7663df5 --- /dev/null +++ b/everything else/rfk-final.txt @@ -0,0 +1,392 @@ +#include +#include +#include +#include //for void hidecursor(), only required on windows + +//"kitten printers" + +int in = 0; +int objects = 30; //0-29 are objects, 30 is kitten, 31 is robot +int x[31]; int y[31]; //int x[(objects + 2)]; int y[(objects + 2)]; the + 2 makes room for kitten and robot, but these should be excluded from for loops +char object_symbol[31]; //char object_symbol[(objects + 2)]; +int object_color[31]; //int object_color[(objects + 2)]; +int object_brightness[31]; //int object_brightness[(objects + 2)]; +int object_text[29]; //int object_text[(objects + 2)]; //kitten doesnt have text because a cutscene plays and robot doesnt have text cause you cant colide with it +int populate_stop = 1; int addrobot_stop = 1; int addkitten_stop = 1; int move_stop = 1; int text_stop = 1; //stop variables +int texts = 64; char text[64][128] = { //the text for colliding with nkos, might want to minimize this because it will get big + {"Not kitten."}, + {"Not a kitten."}, + {"A pigeon with a TCP/IP packet taped to it's leg."}, //i like this line too much not to use it + {"Deez."}, + {"The Internet, lying in a puddle on the floor."}, + {"Your mother's house."}, + {"What is it? I don't know."}, + {"That one thing. You know what thing I mean."}, + {"A magazine full of bullets... it's not the right type of magazine, though."}, + {"Someone spilled their drink here!"}, + {"Your Advanced Placement Computer Science Principles classroom."}, + {"text 11"}, + {"This brick wall is missing a brick! Oh, nevermind, it's just been replaced with a Nokia 3310."}, + {"A kitten."}, + {"A penguin using an operating system you've never seen before."}, + {"An open window shining on a computer with an entirely blue screen."}, //objectively bad //16 + {"This white apple is hooked up to a mouse, keyboard and monitor... it isn't doing anything."}, + {"A pufferfish using an operating system you've never seen before... the pufferfish is puffed up."}, + {"A copy of 'The C Programming Language'."}, + {"George (the cat)."}, + {"An analog clock running on UNIX time."}, + {"The table that you always hit your knee on."}, + {"A calendar with some classic cars on it for 2022."}, + {"Justice, finally!"}, + {"A newspaper dated December 6th, 1941... it seems like it was a good day."}, + {"Poland."}, + {"An old map of Europe... it looks more like pasta than borders."}, + {"The RWin key."}, + {"It appears to be a... oh, nevermind."}, + {"Another robot! Oh, it's just a mirror."}, + {"'Kitten's over there', it says."}, + {"A large trashcan, filled to the brim with metal chips... you can't move it."}, //32 + {"The 32-bit integer limit."}, + {"A generic car, endlessly doing donuts."}, + {"A bug, causing problems as usual."}, + {"#ff00ff"}, + {"3 pythons, squirming in place."}, + {"A sign says 'Members Only'... you can't tell what the object is."}, //"You must be a member to discover this object." + {"A segme ntation fault."}, + {"The goods."}, + {"A partridge in a pear tree."}, + {"A penguin wearing a tux."}, + {"'Mostly sunny'? What, in this void?"}, + {"\\033[1;1H"}, + {"The metric system."}, + {"h."}, + {"'Kilroy was here', says Kilroy."}, + {"The stack, don't touch it though!"}, //48 + {"A TOR node."}, + {":)"}, + {"The blue cable drive."}, + {"You Win! Oh, wait a minute... nevermind."}, + {"An external numpad... two keys are worn down."}, + {"An X server."}, + {"All of your deleted files, in a pile on the ground."}, + {"Dexterity."}, + {"A bottle of battery acid, essentially poison for robot."}, + {"Sweet, some sugar!"}, + {"A block of code."}, + {"The third dimension."}, + {"CDs stacked so high that you can't see the top... they all say something about '500 free hours'."}, + {"A computer with glasses and a fake nose... it might be spyware."}, + {"This toaster has a few forks sticking out of the top... the toaster is unplugged."}, + {"A label firmly stuck to the ground says 'PROPERTY OF THE STATE'."} //64 + }; //elegant, i know +char kitscenetext[7][21] = { + {" `/\\_____/\\ "}, //`oragne .green ,reset + {" / .o o` \\ "}, + {" ( ,== `^ ,== `) "}, + {" ) ( "}, + {" / \\ "}, + {" / / | | \\ \\ "}, + {"/__|__|___|__|__\\,"}, + }; +char kitscenerobot[7][19] = { + {" `___ "}, //`grey .red ,reset + {" |_.@`_| "}, + {" | | "}, + {" \\---|---\\ "}, + {" | | "}, + {" | "}, + {" O--O--O, "}, +}; +time_t t; + +void hidecursor() { //i hate windows, and you do too + HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); + CONSOLE_CURSOR_INFO info; + info.dwSize = 100; + info.bVisible = FALSE; + SetConsoleCursorInfo(consoleHandle, &info); +} + +void populate() { + for(int i = 0; i < objects; i++) { //initial position randomization + x[i] = (rand() % 128); + y[i] = (rand() % 64); + object_symbol[i] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[i] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[i] = ((rand() % 8) + 90); //color 90-98 + } + object_text[i] = ((rand() % texts)); //text 0-127 + } + while(populate_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[i] == x[j]) && (y[i] == y[j])) { + x[i] = (rand() % 128); + y[i] = (rand() % 64); + } else { + populate_stop = 0; + } + } + } + } + while(text_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if(object_text[i] == object_text[j]) { + object_text[i] = ((rand() % texts)); + } else { + text_stop = 0; + } + } + } + } + object_text[30] = 0; //kitten always gets 2 for some reason so im making it 0 manually for niceness + for (int i = 0; i < objects; i++) { + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[i] + 3),(x[i] + 1),object_color[i],object_symbol[i]); + } +} + +void addkitten() { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + object_symbol[30] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[30] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[30] = ((rand() % 8) + 90); //color 90-98 + } + while(addkitten_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[30] == x[j]) && (y[30] == y[j])) { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + } else { + addkitten_stop = 0; + } + } + } + } + //the kitten printer + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[30] + 3),(x[30] + 1),object_color[30],object_symbol[30]); +} + +void addrobot() { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + object_symbol[31] = 35; //robot is always a bright white # + object_color[31] = 97; + while(addrobot_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[31] == x[j]) && (y[31] == y[j])) { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + } else { + addrobot_stop = 0; + } + } + } + } + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); +} + +void initialize() { + hidecursor(); //hides cursor on windows + srand(time(t)); + system("mode con: cols=128 lines=66"); + printf("\033]0;rfk\x1b\x5c"); //set conlse title to rfk + printf("\033[8;40HYou are Robot, and your goal is to find Kitten.\033[9;36HThis is complicated by the exsistance of other objects.\033[10;42HYou must touch an object to see what it is.\033[12;39HUse the arrow keys and press any key to continue."); + getch(); + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + populate(); + addkitten(); + addrobot(); +} + +void kitscene() { //kitten cutscene, kitscene - if you will + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + for (int i = 0; i < 39; i++) { + printf("\033[28;%dH",(8 + i));//kitten section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 21; l++) { //kitsceen is 19 characters long, including \0 //maybe not anymroe + switch(kitscenetext[j][l]) { + case '`': + printf("\033[33m"); + break; + case '.': + printf("\033[32m"); + break; + case ',': + printf("\033[0m"); + break; + default: + printf("%c", kitscenetext[j][l]); + break; + } + } + printf("\033[18D \033[B"); + } + printf("\033[28;%dH",(103 - i));//robot section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 19; l++) { //kitsceen is 19 characters long, including \0 + switch(kitscenerobot[j][l]) { + case '`': + printf("\033[90m"); + break; + case '.': + printf("\033[31m"); + break; + case ',': + printf("\033[0m"); + break; + default: + printf("%c", kitscenerobot[j][l]); + break; + } + } + printf("\033[18D\033[B"); + } + Sleep(50); //windows only, fix cross-platfrom with defiens + } + + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HAgain? [y/n]"); + sleep(1); + int exitchoice = getch(); + while(1) { //the stuff inthe while loop make it so only y and n work, instead of arrow keys and such working too probably not the best wayof doing it but its fine for v1 + if(exitchoice == 110) { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HYeah, cause DOS is so much better..."); + getch(); + exit(0); + } else if(exitchoice == 121) { + initialize(); + return; + } + exitchoice = getch(); + } +} + +void objectcollidetext(int i) { + if (i == 30) { //if the object is kitten + kitscene(); + return; + } else { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + for(int j = 0; j < 128; j++) { + printf("%c",text[(object_text[i])][j]); + } + return; + } +} + +void moverobot(int direction) { + switch(direction) { + case 72 : //up + move_stop = 0; //for all objects including kitten + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] == x[i]) && ((y[31] - 1) == y[i]))) { //trying to have same coords as an object, or go out of bounds + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] - 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 80 : //down //for all objects including kitten + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] + 1 == 64)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if((x[31] == x[i]) && ((y[31] + 1) == y[i])) { //trying to have same coords as an object, or go out of bounds + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] + 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 75 : //left //for all objects including kitten + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] - 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] - 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 77 : //right //for all objects including kitten + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] + 1 == 128)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] + 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] + 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } +} + +int main() { + initialize(); + while(1) { + in = getch(); + if (in == 0 || in == 0xE0) in = getch(); //dang ol windows makes you call functions and arrows keys twice to get the input + switch(in) { //this switch statement is kinda goofy because it only really calls moverobot() but thats got a switch statement in it right away, but now theres other buttons too so its good now + case 72 : //up + moverobot(in); + break; + case 80 : //down + moverobot(in); + break; + case 75 : //left + moverobot(in); + break; + case 77 : //right + moverobot(in); + break; + case 27 : //quit with prompt //esc + printf("\033[1;1H \033[1;1HQuit? [y/n]"); + if(getch() == 121) { + exit(0); + } else { + printf("\033[1;1H "); //clear the quit dialog + break; + } + case 113 : //quit with prompt //q + printf("\033[1;1H \033[1;1HQuit? [y/n]"); + if(getch() == 121) { + exit(0); + } else { + printf("\033[1;1H "); //clear the quit dialog + break; + } + default : + printf("\a"); //bell, possibly annoying + } + } +} diff --git a/everything else/rfk.bat b/everything else/rfk.bat new file mode 100644 index 0000000..f8efdbf --- /dev/null +++ b/everything else/rfk.bat @@ -0,0 +1,2 @@ +rfk.exe +pause \ No newline at end of file diff --git a/everything else/rfk_pad.c b/everything else/rfk_pad.c new file mode 100644 index 0000000..630a537 --- /dev/null +++ b/everything else/rfk_pad.c @@ -0,0 +1,11 @@ +#include + +int main() {//prints +char text[64][128] = { + {"fuckin balls"}, + }; +for (int i = 0; i < 128; i++) { + printf("%c",text[0][i]); +} +getch(); +} diff --git a/everything else/rfk_pad.exe b/everything else/rfk_pad.exe new file mode 100644 index 0000000..24ee33a Binary files /dev/null and b/everything else/rfk_pad.exe differ diff --git a/everything else/rfk_pad.o b/everything else/rfk_pad.o new file mode 100644 index 0000000..13e0906 Binary files /dev/null and b/everything else/rfk_pad.o differ diff --git a/everything else/scantest.bat b/everything else/scantest.bat new file mode 100644 index 0000000..ea6bbdf --- /dev/null +++ b/everything else/scantest.bat @@ -0,0 +1,2 @@ +scantest.exe +pause \ No newline at end of file diff --git a/everything else/scantest.c b/everything else/scantest.c new file mode 100644 index 0000000..95e8576 --- /dev/null +++ b/everything else/scantest.c @@ -0,0 +1,101 @@ +#include +#include +//#include + +int main() { + int textline = 0; + int textchar = 0; + char text[512][127]; + char textstore[512]; + int *textp; textp = &textstore; + FILE *texts; + texts = fopen("texts.rfk", "r"); + if (texts == NULL) { + exit(1); + } else { + textp = fgets(textp, (512 * 128), texts); + } + for (int i = 0; i < (512 * 128); i++) { + if (textstore[i] == '\0') { + break; + } else { + printf("%c", textstore[i]); + } + } + printf("\n---------------------------------------\n"); + /*for (int i = 0; i < (512 * 128); i++) { + if (textstore[i] == '\0') { + break; + } else if (textstore[i] == ';') { + text[textline][textchar] = '\0'; + textline++; + textchar = 0; + } else { + text[textline][textchar] = textstore[i]; + //textline++; + textchar++; + } + printf("%d %d ", textchar, textline); + } + printf("\n---------------------------------------\n"); + for (int i = 0; i < 32; i++) { + for (int j = 0; j < 127; j++) { + printf("%c",text[i][j]); + } + printf("\n"); + } + printf("\n---------------------------------------\n"); + /*for (int balls = 0; balls < 3; balls++) { + for (int i = 0; i < (512 * 128); i++) { + if (textstore[i] != ';') { + //textstore[i] = '\0'; + textstore[i - 1] = textstore[i]; + } else { + break; + } + } + }*/ + /*//for (int i = 0; i < (512 * 128); i++) { + int deadcount = 0; + for (int j = 0; j < (512 * 128); j++) { + if (deadcount) { + break; + } else { + if (textstore[i] != ';') { + textstore[i] = '\0'; + } else { + break; + } + } + } + for (int j = 0; j < 127; j++) { + if (textstore[i] != ';') { + printf("%c",textstore[i]); + } else { + break; + } + } + //}*/ + int deadcount = 0; + for (int i = 0; i < (512 * 128); i++) { + if (textstore[i] == ';') { + textstore[i] = '\0'; + deadcount = deadcount + 1; + //break; + } else { + textstore[i] = '\0'; + } + //printf("%d, %d ",deadcount, i); + if (deadcount == 32) { + for (int j = 0; j < 127; j++) { + if (textstore[j] == ';') { + break; + } + if (textstore[j] != '\0') { + printf("%c",textstore[j]); + } + } + break; + } + } +} diff --git a/everything else/scantest.exe b/everything else/scantest.exe new file mode 100644 index 0000000..3f62b9a Binary files /dev/null and b/everything else/scantest.exe differ diff --git a/everything else/scantest.o b/everything else/scantest.o new file mode 100644 index 0000000..d60bdc4 Binary files /dev/null and b/everything else/scantest.o differ diff --git a/everything else/spooky_rfk.c b/everything else/spooky_rfk.c new file mode 100644 index 0000000..5b24301 --- /dev/null +++ b/everything else/spooky_rfk.c @@ -0,0 +1,199 @@ +#include +#include +#include + +//todo: +//add robot + +//challenges: +//populate, addrobot, and addkitten could all be put into one function + +int in = 0; +int objects = 30; //1-30 are objects, 31 is kitten, 32 is robot +int x[32]; int y[32]; //int x[(objects + 2)]; int y[(objects + 2)]; the + 2 makes room for kitten and robot, but these should be excluded from for loops +char object_symbol[32]; //char object_symbol[(objects + 2)]; +int object_color[32]; //int object_color[(objects + 2)]; +int object_brightness[32]; //int object_brightness[(objects + 2)]; +int populate_stop = 1; +int addrobot_stop = 1; +int addkitten_stop = 1; +time_t t; +//30 objects, kitten, and robot +//\033[%d;%dH move cursor to spot +//\033[%dm color text +void populate() { + for(int i = 0; i < objects; i++) { //initial position randomization + x[i] = (rand() % 128); + y[i] = (rand() % 64); + object_symbol[i] = ((rand() % 93) + 32); //ansi 33-126 + object_color[i] = ((rand() % 8) + 29); //ansi escape code color 30-37 + object_brightness[i] = (rand() % 2); //brightness for color value + } + while(populate_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[i] == x[j]) && (y[i] == y[j])) { + x[i] = (rand() % 128); + y[i] = (rand() % 64); + } else { + populate_stop = 0; + } + } + } + } + for (int i = 0; i < objects; i++) { //move cursor to screen position and place object + if (object_brightness) { + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[i] + 3),(x[i] + 1),object_color[i],(object_symbol[i])); + } else { + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[i] + 3),(x[i] + 1),object_color[i],(object_symbol[i])); + } + } +} + +void addkitten() { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + object_symbol[31] = ((rand() % 93) + 32); //ansi 33-126 + object_color[31] = ((rand() % 8) + 29); //ansi escape code color 30-37 + object_brightness[31] = (rand() % 2); //brightness for color value + while(addkitten_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[31] == x[j]) && (y[31] == y[j])) { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + } else { + addkitten_stop = 0; + } + } + } + } + if (object_brightness) { //debug these kitten printers have a white background (;47) + printf("\033[%d;%dH\033[%d;47;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + } else { + printf("\033[%d;%dH\033[%d;47m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + } +} + +void addrobot() { + x[32] = (rand() % 128); + y[32] = (rand() % 64); + object_symbol[32] = 35; //robot is always a bright white # + object_color[32] = 37; + object_brightness[32] = 1; + while(addrobot_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[32] == x[j]) && (y[32] == y[j])) { + x[32] = (rand() % 128); + y[32] = (rand() % 64); + } else { + addrobot_stop = 0; + } + } + } + } + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[32] + 3),(x[32] + 1),object_color[32],(object_symbol[32])); +} + +void moverobot(int direction) { + switch(direction) { + case 72 : //up + printf("\033[%d;%dH ",(y[32] + 3),(x[32] + 1)); //clear robot position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[32] == x[i]) && ((y[32] - 1) == y[i])) { //trying to have same coords as an object + wprintf("\033[d\033[%d;1m%c\033[0m",object_color[32],object_symbol[32]); //move cursor back one space and then place robot + break; + } else { + wprintf("\033[d\033[a\033[%d;1m%c\033[0m",object_color[32],object_symbol[32]); //move cursor back and up one space and then place robot + break; + } + } + case 80 : //down + printf("\033[%d;%dH ",(y[32] + 3),(x[32] + 1)); //clear robot position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[32] == x[i]) && ((y[32] - 1) == y[i])) { //trying to have same coords as an object + wprintf("\033[d\033[%d;1m%c\033[0m",object_color[32],object_symbol[32]); //move cursor back one space and then place robot + break; + } else { + wprintf("\033[d\033[b\033[%d;1m%c\033[0m",object_color[32],object_symbol[32]); //move cursor back and up one space and then place robot + break; + } + } + case 75 : //left + printf("\033[%d;%dH ",(y[32] + 3),(x[32] + 1)); //clear robot position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[32] == x[i]) && ((y[32] - 1) == y[i])) { //trying to have same coords as an object + wprintf("\033[d\033[%d;1m%c\033[0m",object_color[32],object_symbol[32]); //move cursor back one space and then place robot + break; + } else { + wprintf("\033[d\033[d\033[%d;1m%c\033[0m",object_color[32],object_symbol[32]); //move cursor back and up one space and then place robot + break; + } + } + case 77 : //right + printf("\033[%d;%dH ",(y[32] + 3),(x[32] + 1)); //clear robot position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[32] == x[i]) && ((y[32] - 1) == y[i])) { //trying to have same coords as an object + wprintf("\033[d\033[%d;1m%c\033[0m",object_color[32],object_symbol[32]); //move cursor back one space and then place robot + break; + } else { + wprintf("\033[d\033[c\033[%d;1m%c\033[0m",object_color[32],object_symbol[32]); //move cursor back and up one space and then place robot + break; + } + } + /*printf("\033[%d;%dH ",(y[32] + 3),(x[32] + 1)); + //for all objects including kitten + //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if(((x[32] + 1) == x[i]) && (y[32] == y[i])) { //trying to have same coords as an object + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[32]),(x[32]),object_color[32],(object_symbol[32])); + break; + } else { + x[32] = x[32] + 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[32] + 3),(x[32] + 1),object_color[32],(object_symbol[32])); + break; + } + }*/ + } +} + +int main() { + { //initialization + srand(time(t)); + system("mode con: cols=128 lines=66"); + } + { //start screen + printf("\033[8;8Hb\033[9;8Hr\033[10;8Hu\033[12;8Hh"); + getch(); + system("cls"); + } + { //initial population + printf("\033[1;1Hinitialization"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + populate(); + addkitten(); + addrobot(); + } + + while(in != 27) { + in = getch(); + if (in == 0 || in == 0xE0) in = getch(); //got dang ol windows makes you call functions and arrows keys twice to get the input + switch(in) { + case 72 : //up + moverobot(in); + + case 80 : //down + moverobot(in); + + case 75 : //left + moverobot(in); + + case 77 : //right + moverobot(in); + + /*default : + printf("pizdec");*/ + } + } +} diff --git a/everything else/spooky_rfk.exe b/everything else/spooky_rfk.exe new file mode 100644 index 0000000..79c92b2 Binary files /dev/null and b/everything else/spooky_rfk.exe differ diff --git a/everything else/spooky_rfk.o b/everything else/spooky_rfk.o new file mode 100644 index 0000000..ecc6471 Binary files /dev/null and b/everything else/spooky_rfk.o differ diff --git a/everything else/texts.rfk b/everything else/texts.rfk new file mode 100644 index 0000000..6f406c0 --- /dev/null +++ b/everything else/texts.rfk @@ -0,0 +1 @@ +Not kitten.;Not a kitten.;A pigeon with a TCP/IP packet taped to it's leg.;Deez.;The Internet, lying in a puddle on the floor.;Your mother's house.;What is it? I don't know.;That one thing. You know what thing I mean.;A magazine full of bullets... it's not the right type of magazine, though.;Someone spilled their drink here!;Your Advanced Placement Computer Science Principles classroom.;text 11;This brick wall is missing a brick! Oh, nevermind, it's just been replaced with a Nokia 3310.;A kitten.;A penguin using an operating system you've never seen before.;An open window shining on a computer with an entirely blue screen.;This white apple is hooked up to a mouse, keyboard and monitor... it isn't doing anything.;A pufferfish using an operating system you've never seen before... the pufferfish is puffed up.;A copy of 'The C Programming Language'.;George (the cat).;An analog clock running on UNIX time.;The table that you always hit your knee on.;A calendar with some classic cars on it for 2022.;Justice, finally!;A newspaper dated December 6th, 1941... it seems like it was a good day.;Poland.;An old map of Europe... it looks more like pasta than borders.;The RWin key.;It appears to be a... oh, nevermind.;Another robot! Oh, it's just a mirror.;'Kitten's over there', it says.;A large trashcan, filled to the brim with metal chips... you can't move it.;The 32-bit integer limit.;A generic car, endlessly doing donuts.;A bug, causing problems as usual.;#ff00ff;3 pythons, squirming in place.;A sign says 'Members Only'... you can't tell what the object is.;A segme ntation fault.;The goods.;A partridge in a pear tree.;A penguin wearing a tux.;'Mostly sunny'? What, in this void?;\033[H;The metric system.;h.;'Kilroy was here', says Kilroy.;The stack, don't touch it though!;A TOR node.;:);The blue cable drive.;You Win! Oh, wait a minute... nevermind.;An external numpad... two keys are worn down.;An X server.;All of your deleted files, in a pile on the ground.;Dexterity.;A bottle of battery acid, essentially poison for robot.;Sweet, some sugar!;A block of code.;The third dimension.;CDs stacked so high that you can't see the top... they all say something about '500 free hours'.;A computer with glasses and a fake nose... it might be spyware.;This toaster has a few forks sticking out of the top... the toaster is unplugged.;A label firmly stuck to the ground says 'PROPERTY OF THE STATE'. \ No newline at end of file diff --git a/everything else/texts.rfk.save-failed b/everything else/texts.rfk.save-failed new file mode 100644 index 0000000..1f6ba37 --- /dev/null +++ b/everything else/texts.rfk.save-failed @@ -0,0 +1 @@ +Not kitten.;Not a kitten.;A pigeon with a TCP/IP packet taped to it's leg.;Deez.;The Internet, lying in a puddle on the floor.;Your mother's house.;What is it? I don't know.;That one thing. You know what thing I mean.;A magazine full of bullets... it's not the right type of magazine, though.;Someone spilled their drink here!;Your Advanced Placement Computer Science Principles classroom.;text 11;This brick wall is missing a brick! Oh, nevermind, it's just been replaced with a Nokia 3310.;A kitten.;A penguin using an operating system you've never seen before.;An open window shining on a computer with an entirely blue screen.;This white apple is hooked up to a mouse, keyboard and monitor... it isn't doing anything.;A pufferfish using an operating system you've never seen before... the pufferfish is puffed up.;A copy of 'The C Programming Language'.;George (the cat).;An analog clock running on UNIX time.;The table that you always hit your knee on.;A calendar with some classic cars on it for 2022.;Justice, finally!;A newspaper dated December 6th, 1941... it seems like it was a good day.;Poland.;An old map of Europe... it looks more like pasta than borders.;The RWin key.;It appears to be a... oh, nevermind.;Another robot! Oh, it's just a mirror.;'Kitten's over there', it says.;A large trashcan, filled to the brim with metal chips... you can't move it.;The 32-bit integer limit.;A generic car, endlessly doing donuts.;A bug, causing problems as usual.;#ff00ff;3 pythons, squirming in place.;A sign says 'Members Only'... you can't tell what the object is.;A segme ntation fault.;The goods.;A partridge in a pear tree.;A penguin wearing a tux.;'Mostly sunny'? What, in this void?;\\033[1;1H;The metric system.;h.;'Kilroy was here', says Kilroy.;The stack, don't touch it though!;A TOR node.;:);The blue cable drive.;You Win! Oh, wait a minute... nevermind.;An external numpad... two keys are worn down.;An X server.;All of your deleted files, in a pile on the ground.;Dexterity.;A bottle of battery acid, essentially poison for robot.;Sweet, some sugar!;A block of code.;The third dimension.;CDs stacked so high that you can't see the top... they all say something about '500 free hours'.;A computer with glasses and a fake nose... it might be spyware.;This toaster has a few forks sticking out of the top... the toaster is unplugged.;A label firmly stuck to the ground says 'PROPERTY OF THE STATE'. \ No newline at end of file diff --git a/rfk/rfk.c b/rfk/rfk.c new file mode 100644 index 0000000..7663df5 --- /dev/null +++ b/rfk/rfk.c @@ -0,0 +1,392 @@ +#include +#include +#include +#include //for void hidecursor(), only required on windows + +//"kitten printers" + +int in = 0; +int objects = 30; //0-29 are objects, 30 is kitten, 31 is robot +int x[31]; int y[31]; //int x[(objects + 2)]; int y[(objects + 2)]; the + 2 makes room for kitten and robot, but these should be excluded from for loops +char object_symbol[31]; //char object_symbol[(objects + 2)]; +int object_color[31]; //int object_color[(objects + 2)]; +int object_brightness[31]; //int object_brightness[(objects + 2)]; +int object_text[29]; //int object_text[(objects + 2)]; //kitten doesnt have text because a cutscene plays and robot doesnt have text cause you cant colide with it +int populate_stop = 1; int addrobot_stop = 1; int addkitten_stop = 1; int move_stop = 1; int text_stop = 1; //stop variables +int texts = 64; char text[64][128] = { //the text for colliding with nkos, might want to minimize this because it will get big + {"Not kitten."}, + {"Not a kitten."}, + {"A pigeon with a TCP/IP packet taped to it's leg."}, //i like this line too much not to use it + {"Deez."}, + {"The Internet, lying in a puddle on the floor."}, + {"Your mother's house."}, + {"What is it? I don't know."}, + {"That one thing. You know what thing I mean."}, + {"A magazine full of bullets... it's not the right type of magazine, though."}, + {"Someone spilled their drink here!"}, + {"Your Advanced Placement Computer Science Principles classroom."}, + {"text 11"}, + {"This brick wall is missing a brick! Oh, nevermind, it's just been replaced with a Nokia 3310."}, + {"A kitten."}, + {"A penguin using an operating system you've never seen before."}, + {"An open window shining on a computer with an entirely blue screen."}, //objectively bad //16 + {"This white apple is hooked up to a mouse, keyboard and monitor... it isn't doing anything."}, + {"A pufferfish using an operating system you've never seen before... the pufferfish is puffed up."}, + {"A copy of 'The C Programming Language'."}, + {"George (the cat)."}, + {"An analog clock running on UNIX time."}, + {"The table that you always hit your knee on."}, + {"A calendar with some classic cars on it for 2022."}, + {"Justice, finally!"}, + {"A newspaper dated December 6th, 1941... it seems like it was a good day."}, + {"Poland."}, + {"An old map of Europe... it looks more like pasta than borders."}, + {"The RWin key."}, + {"It appears to be a... oh, nevermind."}, + {"Another robot! Oh, it's just a mirror."}, + {"'Kitten's over there', it says."}, + {"A large trashcan, filled to the brim with metal chips... you can't move it."}, //32 + {"The 32-bit integer limit."}, + {"A generic car, endlessly doing donuts."}, + {"A bug, causing problems as usual."}, + {"#ff00ff"}, + {"3 pythons, squirming in place."}, + {"A sign says 'Members Only'... you can't tell what the object is."}, //"You must be a member to discover this object." + {"A segme ntation fault."}, + {"The goods."}, + {"A partridge in a pear tree."}, + {"A penguin wearing a tux."}, + {"'Mostly sunny'? What, in this void?"}, + {"\\033[1;1H"}, + {"The metric system."}, + {"h."}, + {"'Kilroy was here', says Kilroy."}, + {"The stack, don't touch it though!"}, //48 + {"A TOR node."}, + {":)"}, + {"The blue cable drive."}, + {"You Win! Oh, wait a minute... nevermind."}, + {"An external numpad... two keys are worn down."}, + {"An X server."}, + {"All of your deleted files, in a pile on the ground."}, + {"Dexterity."}, + {"A bottle of battery acid, essentially poison for robot."}, + {"Sweet, some sugar!"}, + {"A block of code."}, + {"The third dimension."}, + {"CDs stacked so high that you can't see the top... they all say something about '500 free hours'."}, + {"A computer with glasses and a fake nose... it might be spyware."}, + {"This toaster has a few forks sticking out of the top... the toaster is unplugged."}, + {"A label firmly stuck to the ground says 'PROPERTY OF THE STATE'."} //64 + }; //elegant, i know +char kitscenetext[7][21] = { + {" `/\\_____/\\ "}, //`oragne .green ,reset + {" / .o o` \\ "}, + {" ( ,== `^ ,== `) "}, + {" ) ( "}, + {" / \\ "}, + {" / / | | \\ \\ "}, + {"/__|__|___|__|__\\,"}, + }; +char kitscenerobot[7][19] = { + {" `___ "}, //`grey .red ,reset + {" |_.@`_| "}, + {" | | "}, + {" \\---|---\\ "}, + {" | | "}, + {" | "}, + {" O--O--O, "}, +}; +time_t t; + +void hidecursor() { //i hate windows, and you do too + HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); + CONSOLE_CURSOR_INFO info; + info.dwSize = 100; + info.bVisible = FALSE; + SetConsoleCursorInfo(consoleHandle, &info); +} + +void populate() { + for(int i = 0; i < objects; i++) { //initial position randomization + x[i] = (rand() % 128); + y[i] = (rand() % 64); + object_symbol[i] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[i] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[i] = ((rand() % 8) + 90); //color 90-98 + } + object_text[i] = ((rand() % texts)); //text 0-127 + } + while(populate_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[i] == x[j]) && (y[i] == y[j])) { + x[i] = (rand() % 128); + y[i] = (rand() % 64); + } else { + populate_stop = 0; + } + } + } + } + while(text_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if(object_text[i] == object_text[j]) { + object_text[i] = ((rand() % texts)); + } else { + text_stop = 0; + } + } + } + } + object_text[30] = 0; //kitten always gets 2 for some reason so im making it 0 manually for niceness + for (int i = 0; i < objects; i++) { + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[i] + 3),(x[i] + 1),object_color[i],object_symbol[i]); + } +} + +void addkitten() { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + object_symbol[30] = ((rand() % 93) + 32); //ansi 33-126 + if (rand() % 2) { //picks between the top or bottom 8 colors + object_color[30] = ((rand() % 8) + 31); //color 31-38, 30 is excluded because the background is black and the character would be invisible + } else { + object_color[30] = ((rand() % 8) + 90); //color 90-98 + } + while(addkitten_stop) { //check if multiple positions are the same, if so then re-randomize those positions + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[30] == x[j]) && (y[30] == y[j])) { + x[30] = (rand() % 128); + y[30] = (rand() % 64); + } else { + addkitten_stop = 0; + } + } + } + } + //the kitten printer + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[30] + 3),(x[30] + 1),object_color[30],object_symbol[30]); +} + +void addrobot() { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + object_symbol[31] = 35; //robot is always a bright white # + object_color[31] = 97; + while(addrobot_stop) { + for(int i = 0; i < objects; i++) { + for(int j = 0; j < objects; j++) { + if((x[31] == x[j]) && (y[31] == y[j])) { + x[31] = (rand() % 128); + y[31] = (rand() % 64); + } else { + addrobot_stop = 0; + } + } + } + } + printf("\033[%d;%dH\033[%dm%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); +} + +void initialize() { + hidecursor(); //hides cursor on windows + srand(time(t)); + system("mode con: cols=128 lines=66"); + printf("\033]0;rfk\x1b\x5c"); //set conlse title to rfk + printf("\033[8;40HYou are Robot, and your goal is to find Kitten.\033[9;36HThis is complicated by the exsistance of other objects.\033[10;42HYou must touch an object to see what it is.\033[12;39HUse the arrow keys and press any key to continue."); + getch(); + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + populate(); + addkitten(); + addrobot(); +} + +void kitscene() { //kitten cutscene, kitscene - if you will + system("cls"); + printf("\033[2;1H--------------------------------------------------------------------------------------------------------------------------------"); + for (int i = 0; i < 39; i++) { + printf("\033[28;%dH",(8 + i));//kitten section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 21; l++) { //kitsceen is 19 characters long, including \0 //maybe not anymroe + switch(kitscenetext[j][l]) { + case '`': + printf("\033[33m"); + break; + case '.': + printf("\033[32m"); + break; + case ',': + printf("\033[0m"); + break; + default: + printf("%c", kitscenetext[j][l]); + break; + } + } + printf("\033[18D \033[B"); + } + printf("\033[28;%dH",(103 - i));//robot section + for (int j = 0; j < 7; j++) { //kitsceen is 7 characters tall + for (int l = 0; l < 19; l++) { //kitsceen is 19 characters long, including \0 + switch(kitscenerobot[j][l]) { + case '`': + printf("\033[90m"); + break; + case '.': + printf("\033[31m"); + break; + case ',': + printf("\033[0m"); + break; + default: + printf("%c", kitscenerobot[j][l]); + break; + } + } + printf("\033[18D\033[B"); + } + Sleep(50); //windows only, fix cross-platfrom with defiens + } + + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HAgain? [y/n]"); + sleep(1); + int exitchoice = getch(); + while(1) { //the stuff inthe while loop make it so only y and n work, instead of arrow keys and such working too probably not the best wayof doing it but its fine for v1 + if(exitchoice == 110) { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + printf("\033[1;1HYeah, cause DOS is so much better..."); + getch(); + exit(0); + } else if(exitchoice == 121) { + initialize(); + return; + } + exitchoice = getch(); + } +} + +void objectcollidetext(int i) { + if (i == 30) { //if the object is kitten + kitscene(); + return; + } else { + printf("\033[1;1H \033[1;1H"); //clear line manually because windwos termina lis crap + for(int j = 0; j < 128; j++) { + printf("%c",text[(object_text[i])][j]); + } + return; + } +} + +void moverobot(int direction) { + switch(direction) { + case 72 : //up + move_stop = 0; //for all objects including kitten + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] == x[i]) && ((y[31] - 1) == y[i]))) { //trying to have same coords as an object, or go out of bounds + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] - 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 80 : //down //for all objects including kitten + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((y[31] + 1 == 64)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if((x[31] == x[i]) && ((y[31] + 1) == y[i])) { //trying to have same coords as an object, or go out of bounds + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + y[31] = y[31] + 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 75 : //left //for all objects including kitten + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] - 1 == (-1))) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] - 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] - 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + case 77 : //right //for all objects including kitten + printf("\033[%d;%dH ",(y[31] + 3),(x[31] + 1)); //if robot coords + 1 in wahatever direction equal the coords of something else then dont move, otherwise set the coods to that position + for(int i = 0; i < (objects + 1); i++) { //objects + 1 to account for kitten + if((x[31] + 1 == 128)) { //if collided with a wall, dont do the text/kitten check because otherwise it will return the text of object 0 + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } else if(((x[31] + 1) == x[i]) && (y[31] == y[i])) { //trying to have same coords as an object, or go out of bounds + objectcollidetext(i); + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } + } + x[31] = x[31] + 1; + printf("\033[%d;%dH\033[%d;1m%c\033[0m",(y[31] + 3),(x[31] + 1),object_color[31],(object_symbol[31])); + return; + } +} + +int main() { + initialize(); + while(1) { + in = getch(); + if (in == 0 || in == 0xE0) in = getch(); //dang ol windows makes you call functions and arrows keys twice to get the input + switch(in) { //this switch statement is kinda goofy because it only really calls moverobot() but thats got a switch statement in it right away, but now theres other buttons too so its good now + case 72 : //up + moverobot(in); + break; + case 80 : //down + moverobot(in); + break; + case 75 : //left + moverobot(in); + break; + case 77 : //right + moverobot(in); + break; + case 27 : //quit with prompt //esc + printf("\033[1;1H \033[1;1HQuit? [y/n]"); + if(getch() == 121) { + exit(0); + } else { + printf("\033[1;1H "); //clear the quit dialog + break; + } + case 113 : //quit with prompt //q + printf("\033[1;1H \033[1;1HQuit? [y/n]"); + if(getch() == 121) { + exit(0); + } else { + printf("\033[1;1H "); //clear the quit dialog + break; + } + default : + printf("\a"); //bell, possibly annoying + } + } +} diff --git a/rfk/rfk.exe b/rfk/rfk.exe new file mode 100644 index 0000000..a724570 Binary files /dev/null and b/rfk/rfk.exe differ diff --git a/rfk/rfk.o b/rfk/rfk.o new file mode 100644 index 0000000..1b41527 Binary files /dev/null and b/rfk/rfk.o differ