From ba34360e1b33b3d9f88fc0792f7d2e8660225290 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Ryb=C3=A1rsky?= Date: Sun, 29 May 2022 10:14:34 +0200 Subject: [PATCH] init --- .vscode/configurationCache.log | 1 + .vscode/dryrun.log | 7 + .vscode/launch.json | 25 +++ .vscode/settings.json | 6 + .vscode/targets.log | 368 +++++++++++++++++++++++++++++++++ .vscode/tasks | Bin 0 -> 28776 bytes .vscode/tasks.json | 38 ++++ main | Bin 0 -> 29192 bytes main.c | 317 ++++++++++++++++++++++++++++ main.c.old | 211 +++++++++++++++++++ 10 files changed, 973 insertions(+) create mode 100644 .vscode/configurationCache.log create mode 100644 .vscode/dryrun.log create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/targets.log create mode 100755 .vscode/tasks create mode 100644 .vscode/tasks.json create mode 100755 main create mode 100644 main.c create mode 100644 main.c.old diff --git a/.vscode/configurationCache.log b/.vscode/configurationCache.log new file mode 100644 index 0000000..bab9054 --- /dev/null +++ b/.vscode/configurationCache.log @@ -0,0 +1 @@ +{"buildTargets":[],"launchTargets":[],"customConfigurationProvider":{"workspaceBrowse":{"browsePath":[],"compilerArgs":[]},"fileIndex":[]}} \ No newline at end of file diff --git a/.vscode/dryrun.log b/.vscode/dryrun.log new file mode 100644 index 0000000..6b7f15d --- /dev/null +++ b/.vscode/dryrun.log @@ -0,0 +1,7 @@ +make --dry-run --always-make --keep-going --print-directory +make: Entering directory '/home/bruno/Documents/programming/projects/mazegame' + +make: *** No targets specified and no makefile found. Stop. + +make: Leaving directory '/home/bruno/Documents/programming/projects/mazegame' + diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..aad82ab --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,25 @@ +{ + "configurations": [ + { + "name": "Run", + "type": "cppdbg", + "request": "launch", + "program": "${fileDirname}/${fileBasenameNoExtension}", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "preLaunchTask": "Builder", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ], + "miDebuggerPath": "/usr/bin/gdb" + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3c4888e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "files.associations": { + "unistd.h": "c", + "main.h": "c" + } +} \ No newline at end of file diff --git a/.vscode/targets.log b/.vscode/targets.log new file mode 100644 index 0000000..555c4ad --- /dev/null +++ b/.vscode/targets.log @@ -0,0 +1,368 @@ +make all --print-data-base --no-builtin-variables --no-builtin-rules --question +make: *** No rule to make target 'all'. Stop. + +# GNU Make 4.3 + +# Built for x86_64-pc-linux-gnu + +# Copyright (C) 1988-2020 Free Software Foundation, Inc. + +# License GPLv3+: GNU GPL version 3 or later + +# This is free software: you are free to change and redistribute it. + +# There is NO WARRANTY, to the extent permitted by law. + + + +# Make data base, printed on Sun May 29 07:50:20 2022 + + +# Variables + + + +# environment + +GDK_BACKEND = x11 + +# environment + +LC_ALL = C + +# environment + +GTK_RC_FILES = /etc/gtk/gtkrc:/home/bruno/.gtkrc:/home/bruno/.config/gtkrc + +# environment + +VSCODE_IPC_HOOK_EXTHOST = /run/user/1000/vscode-ipc-2b05d98b-4ba5-4baf-bada-1bada4dc3354.sock + +# environment + +MANDATORY_PATH = /usr/share/gconf/plasma.mandatory.path + +# environment + +LC_NAME = sk_SK.UTF-8 + +# environment + +LC_NUMERIC = sk_SK.UTF-8 + +# environment + +VSCODE_CWD = /home/bruno + +# environment + +LESS_TERMCAP_me =  + +# environment +LC_ADDRESS = sk_SK.UTF-8 +# default +MAKE_COMMAND := make +# environment +FPATH = /home/bruno/.oh-my-zsh/plugins/golang:/home/bruno/.oh-my-zsh/custom/plugins/aliases:/home/bruno/.oh-my-zsh/plugins/safe-paste:/home/bruno/.oh-my-zsh/plugins/screen:/home/bruno/.oh-my-zsh/plugins/ssh-agent:/home/bruno/.oh-my-zsh/plugins/python:/home/bruno/.oh-my-zsh/plugins/nmap:/home/bruno/.oh-my-zsh/plugins/gnu-utils:/home/bruno/.oh-my-zsh/plugins/git-prompt:/home/bruno/.oh-my-zsh/plugins/github:/home/bruno/.oh-my-zsh/plugins/git-lfs:/home/bruno/.oh-my-zsh/plugins/git-auto-fetch:/home/bruno/.oh-my-zsh/plugins/command-not-found:/home/bruno/.oh-my-zsh/plugins/docker-compose:/home/bruno/.oh-my-zsh/plugins/docker:/home/bruno/.oh-my-zsh/plugins/git:/home/bruno/.oh-my-zsh/functions:/home/bruno/.oh-my-zsh/completions:/home/bruno/.oh-my-zsh/cache/completions:/usr/local/share/zsh/functions:/usr/local/share/zsh/site-functions:/usr/share/zsh/vendor-functions:/usr/share/zsh/vendor-completions:/usr/share/zsh/functions/Calendar:/usr/share/zsh/functions/Chpwd:/usr/share/zsh/functions/Completion:/usr/share/zsh/functions/Completion/AIX:/usr/share/zsh/functions/Completion/BSD:/usr/share/zsh/functions/Completion/Base:/usr/share/zsh/functions/Completion/Cygwin:/usr/share/zsh/functions/Completion/Darwin:/usr/share/zsh/functions/Completion/Debian:/usr/share/zsh/functions/Completion/Linux:/usr/share/zsh/functions/Completion/Mandriva:/usr/share/zsh/functions/Completion/Redhat:/usr/share/zsh/functions/Completion/Solaris:/usr/share/zsh/functions/Completion/Unix:/usr/share/zsh/functions/Completion/X:/usr/share/zsh/functions/Completion/Zsh:/usr/share/zsh/functions/Completion/openSUSE:/usr/share/zsh/functions/Exceptions:/usr/share/zsh/functions/MIME:/usr/share/zsh/functions/Math:/usr/share/zsh/functions/Misc:/usr/share/zsh/functions/Newuser:/usr/share/zsh/functions/Prompts:/usr/share/zsh/functions/TCP:/usr/share/zsh/functions/VCS_Info:/usr/share/zsh/functions/VCS_Info/Backends:/usr/share/zsh/functions/Zftp:/usr/share/zsh/functions/Zle +# environment +QT_ACCESSIBILITY = 1 +# environment +GOPATH = /home/bruno/golang +# automatic +@D = $(patsubst %/,%,$(dir $@)) +# environment +VSCODE_HANDLES_UNCAUGHT_ERRORS = true +# default +.VARIABLES := +# environment +PWD = /home/bruno/Documents/programming/projects/mazegame +# automatic +%D = $(patsubst %/,%,$(dir $%)) +# environment +LSCOLORS = Gxfxcxdxbxegedabagacad +# environment +XDG_DATA_DIRS = /usr/share/plasma:/home/bruno/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share +# environment +OLDPWD = /home/bruno +# automatic +^D = $(patsubst %/,%,$(dir $^)) +# environment +VSCODE_LOG_STACK = true +# automatic +%F = $(notdir $%) +# environment +VSCODE_CODE_CACHE_PATH = /home/bruno/.config/Code - Insiders/CachedData/6428d0fc7dae5801cdaf2d160ac39a3dfc8f0c06 +# environment +XDG_SESSION_PATH = /org/freedesktop/DisplayManager/Session1 +# environment +LANG = C +# environment +XAUTHORITY = /home/bruno/.Xauthority +# default +.LOADED := +# environment +LESS_TERMCAP_md =  +# default +.INCLUDE_DIRS = /usr/local/include /usr/include /usr/include +# makefile +MAKEFLAGS = pqrR +# environment +LESS_TERMCAP_so =  +# makefile +CURDIR := /home/bruno/Documents/programming/projects/mazegame +# environment +VSCODE_PIPE_LOGGING = true +# environment +APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL = true +# automatic +*D = $(patsubst %/,%,$(dir $*)) +# environment +LESS_TERMCAP_ue =  +# environment +PAM_KWALLET5_LOGIN = /run/user/1000/kwallet5.socket +# environment +MFLAGS = -pqrR +# environment +SSH_AUTH_SOCK = /tmp/ssh-XXXXXXpjLt6J/agent.6830 +# default +.SHELLFLAGS := -c +# environment +XDG_CONFIG_DIRS = /home/bruno/.config/kdedefaults:/etc/xdg/xdg-plasma:/etc/xdg:/usr/share/kubuntu-default-settings/kf5-settings +# automatic ++D = $(patsubst %/,%,$(dir $+)) +# environment +XCURSOR_THEME = breeze_cursors +# environment +XDG_SESSION_DESKTOP = KDE +# makefile +MAKEFILE_LIST := +# automatic +@F = $(notdir $@) +# environment +ZSH = /home/bruno/.oh-my-zsh +# environment +VSCODE_VERBOSE_LOGGING = true +# environment +VSCODE_PID = 6725 +# environment +XDG_SESSION_TYPE = x11 +# automatic +?D = $(patsubst %/,%,$(dir $?)) +# environment +SESSION_MANAGER = local/bruno-ThinkPad-T460s:@/tmp/.ICE-unix/3297,unix/bruno-ThinkPad-T460s:/tmp/.ICE-unix/3297 +# environment +PROMPT_EOL_MARK = +# automatic +*F = $(notdir $*) +# environment +CHROME_DESKTOP = code-insiders-url-handler.desktop +# environment +DBUS_SESSION_BUS_ADDRESS = unix:path=/run/user/1000/bus +# automatic +rJ+L^TBe<}1FiEVElEgASQ^dm+~xV{VRxNB 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 literal 0 HcmV?d00001 diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..27968b4 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,38 @@ +{ + "tasks": [ + { + "type": "shell", + "label": "Clean", + "command": "rm -f ${fileDirname}/out" + }, + { + "type": "cppbuild", + "label": "Builder", + "dependsOn": [ + "Clean" + ], + "command": "/usr/bin/gcc", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${workspaceFolder}/main.c", + "-o", + //include ncurses + "${fileDirname}/${fileBasenameNoExtension}", + "-lncurses" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/main b/main new file mode 100755 index 0000000000000000000000000000000000000000..b4fcaf491f4760aa52383233a7b6df450ecfbea4 GIT binary patch literal 29192 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 iBQ4~ +#include +#include +#include +#include +#include +#include +uint16_t Hole_Div = 40; +uint16_t SCR_X; +uint16_t SCR_Y; +#define FPS (60) +char blank_char = 32; +char wall_char = 35; +char goal_char = 71; +char player_char = 80; +char bullet_char = 120; +char inchar = ' '; +uint16_t blank_color = 0; +uint16_t wall_color = 1; +uint16_t goal_color = 2; +uint16_t player_color = 3; +uint16_t border_color = 4; +uint16_t bullet1_color = 5; +uint16_t bullet2_color = 5; +char letter = ' '; +struct Object { + uint16_t x; + uint16_t y; + char letter; + uint16_t color; + uint8_t dir; +}; +struct Bullet { + uint16_t x; + uint16_t y; + uint8_t dir; + uint8_t color; +}; +uint16_t bulletptr = 0; +uint16_t player_x = 0; +uint16_t player_y = 0; +uint16_t goal_x = 0; +uint16_t goal_y = 0; +uint16_t rng_tmp = 0; +uint16_t orient = 0; +uint16_t inputs_tmp = 0; + +struct Object *rendered; +struct Bullet *bullets; +char *playfield; + + +int randomInt(int lower, int upper) { + return rand() % (upper - lower + 1) + lower; +} + +void generate_maze(){ + //fill playfield with blank + for (uint16_t y = 0; y < SCR_Y; y++) { + for (uint16_t x = 0; x < SCR_X; x++) { + //playfield[y][x] = blank_char; + //do it in one dimension + playfield[y*SCR_X + x] = blank_char; + } + } + //fill every other row with walls + for (uint16_t y = 0; y < SCR_Y; y += 2) { + for (uint16_t x = 0; x < SCR_X; x++) { + //playfield[y][x] = wall_char; + //do it in one dimension + playfield[y*SCR_X + x] = wall_char; + } + } + //punch holes in the walls + for (uint16_t y = 0; y < SCR_Y; y++) { + //punch holes in the walls depending on the SCR_X + for (uint16_t ix = 0; ix < ((SCR_X-(SCR_X%Hole_Div))/Hole_Div); ix += 1) { + rng_tmp = randomInt(1, SCR_X); + //playfield[y][rng_tmp] = blank_char; + //do it in one dimension + playfield[y*SCR_X + rng_tmp] = blank_char; + } + if (orient == 0) { + if(y == 0){ + //playfield[y][rng_tmp] = goal_char; + //do it in one dimension + playfield[y*SCR_X + rng_tmp] = goal_char; + goal_x = rng_tmp; + goal_y = y; + } + if (y == SCR_Y -1){ + //playfield[y][rng_tmp] = player_char; + //do it in one dimension + playfield[y*SCR_X + rng_tmp] = player_char; + player_x = rng_tmp; + player_y = y; + } + } else { + if(y == SCR_Y -1){ + //playfield[y][rng_tmp] = goal_char; + //do it in one dimension + playfield[y*SCR_X + rng_tmp] = goal_char; + goal_x = rng_tmp; + goal_y = y; + } + if (y == 0){ + //playfield[y][rng_tmp] = player_char; + //do it in one dimension + playfield[y*SCR_X + rng_tmp] = player_char; + player_x = rng_tmp; + player_y = y; + } + } + } + +} + +void render_maze(){ + //fill rendered with blank + for (uint16_t y = 0; y < SCR_Y; y++) { + for (uint16_t x = 0; x < SCR_X; x++) { + //rendered[y][x] = blank_char; + //do it in one dimension + rendered[y*SCR_X + x].letter = blank_char; + rendered[y*SCR_X + x].color = blank_color; + rendered[y*SCR_X + x].x = x; + rendered[y*SCR_X + x].y = y; + } + } + for (uint16_t y = 0; y < SCR_Y; y++) { + for (uint16_t x = 0; x < SCR_X; x++) { + //letter = playfield[y - 1][x- 1]; + //do it in one dimension + letter = playfield[(y)*SCR_X + (x)]; + //rendered[x][y].letter = letter; + //do it in one dimension + rendered[(y)*SCR_X + (x)].letter = letter; + //rendered[x][y].x = x; + //do it in one dimension + rendered[(y)*SCR_X + (x)].x = x; + //rendered[x][y].y = y; + //do it in one dimension + rendered[(y)*SCR_X + (x)].y = y; + if (letter == goal_char){ + //rendered[x][y].color = goal_color; + //do it in one dimension + rendered[(y)*SCR_X + (x)].color = goal_color; + } + else if (letter == player_char){ + //rendered[x][y].color = player_color; + //do it in one dimension + rendered[(y)*SCR_X + (x)].color = player_color; + } + else if (letter == blank_char){ + //rendered[x][y].color = blank_color; + //do it in one dimension + rendered[(y)*SCR_X + (x)].color = blank_color; + } + else if (letter == wall_char){ + //rendered[x][y].color = wall_color; + //do it in one dimension + rendered[(y)*SCR_X + (x)].color = wall_color; + } + } + } +} + +void draw_maze(){ + //FILE *fp; + //fp = fopen("logx", "w"); + for (uint16_t y = 0; y < SCR_Y; y++) { + for (uint16_t x = 0; x < SCR_X; x++) { + //attron(COLOR_PAIR(rendered[x][y].color)); + //do it in one dimension + attron(COLOR_PAIR(rendered[(y)*SCR_X + (x)].color)); + //mvaddch(y, x, rendered[x][y].letter); + //do it in one dimension + mvaddch(y, x, rendered[(y)*SCR_X + (x)].letter); + //fprintf(fp, "%c, x:%d y:%d\n", rendered[(y)*SCR_X + (x)].letter, rendered[(y)*SCR_X + (x)].x, rendered[(y)*SCR_X + (x)].y); + //attroff(COLOR_PAIR(rendered[x][y].color)); + //do it in one dimension + attroff(COLOR_PAIR(rendered[(y)*SCR_X + (x)].color)); + } + } + //fclose(fp); + refresh(); +} + +void init(){ + initscr(); + //get screen size + getmaxyx(stdscr, SCR_Y, SCR_X); + playfield = malloc(sizeof(char) * SCR_Y * SCR_X); + rendered = malloc(sizeof(struct Object) * (SCR_X) * (SCR_Y)); + bullets = malloc(sizeof(struct Bullet) * (SCR_X) * (SCR_Y)); + noecho(); + nodelay(stdscr, TRUE); + start_color(); + init_pair(blank_color, COLOR_WHITE, COLOR_WHITE); + init_pair(wall_color, COLOR_BLACK, COLOR_RED); + init_pair(goal_color, COLOR_BLACK, COLOR_GREEN); + init_pair(player_color, COLOR_BLACK, COLOR_YELLOW); + init_pair(border_color, COLOR_WHITE, COLOR_BLUE); + init_pair(bullet1_color, COLOR_BLACK, COLOR_YELLOW); + init_pair(bullet2_color, COLOR_BLACK, COLOR_GREEN); + attron(COLOR_PAIR(blank_color)); + clear(); + srand(time(NULL)); +} + +int keyinput(){ + inchar = getch(); + if (inchar == 'q'){ + return 1; + } + if (inchar == 'w'){ + //if (playfield[player_y - 1][player_x] == blank_char){ + if (player_y > 0&&playfield[(player_y-1)*SCR_X + player_x] == blank_char){ + //playfield[player_y][player_x] = blank_char; + //do it in one dimension + playfield[(player_y)*SCR_X + player_x] = blank_char; + player_y--; + //playfield[player_y][player_x] = player_char; + //do it in one dimension + playfield[(player_y)*SCR_X + player_x] = player_char; + //}else if (playfield[player_y - 1][player_x] == goal_char){ + }else if (playfield[(player_y-1)*SCR_X + player_x] == goal_char){ + return 2; + } + } + if (inchar == 'a'){ + //if (playfield[player_y][player_x - 1] == blank_char){ + if (player_x > 0 &&playfield[(player_y)*SCR_X + (player_x-1)] == blank_char){ + //playfield[player_y][player_x] = blank_char; + //do it in one dimension + playfield[(player_y)*SCR_X + player_x] = blank_char; + player_x--; + //playfield[player_y][player_x] = player_char; + //do it in one dimension + playfield[(player_y)*SCR_X + player_x] = player_char; + } + //else if (playfield[player_y][player_x - 1] == goal_char){ + else if (playfield[(player_y)*SCR_X + (player_x-1)] == goal_char){ + return 2; + } + } + if (inchar == 's'){ + //if (playfield[player_y + 1][player_x] == blank_char){ + if (player_x < SCR_X - 1 &&playfield[(player_y+1)*SCR_X + player_x] == blank_char){ + // playfield[player_y][player_x] = blank_char; + playfield[(player_y)*SCR_X + player_x] = blank_char; + player_y++; + // playfield[player_y][player_x] = player_char; + playfield[(player_y)*SCR_X + player_x] = player_char; + // }else if (playfield[player_y + 1][player_x] == goal_char){ + }else if (playfield[(player_y+1)*SCR_X + player_x] == goal_char){ + return 2; + } + + } + if (inchar == 'd'){ + // if (playfield[player_y][player_x + 1] == blank_char){ + if (player_x < SCR_X - 1 &&playfield[(player_y)*SCR_X + (player_x+1)] == blank_char){ + //playfield[player_y][player_x] = blank_char; + playfield[(player_y)*SCR_X + player_x] = blank_char; + player_x++; + //playfield[player_y][player_x] = player_char; + playfield[(player_y)*SCR_X + player_x] = player_char; + } + //else if (playfield[player_y][player_x + 1] == goal_char){ + else if (playfield[(player_y)*SCR_X + (player_x+1)] == goal_char){ + return 2; + } + } +} + +int main(int argc, char *argv[]){ + init(); + //parse the command line arguments for width and height + if (argc == 3){ + SCR_X = atoi(argv[1]); + SCR_Y = atoi(argv[2]); + } + if (argc == 2){ + Hole_Div = atoi(argv[1]); + } + if (argc == 4){ + SCR_X = atoi(argv[1]); + SCR_Y = atoi(argv[2]); + Hole_Div = atoi(argv[3]); + } + generate_maze(); + render_maze(); + draw_maze(); + while (1) + { + inputs_tmp = keyinput(); + if (inputs_tmp == 1){ + break; + } + if (inputs_tmp == 2){ + if (orient == 0){ + orient = 1; + } else { + orient = 0; + } + generate_maze(); + } + render_maze(); + draw_maze(); + usleep(round(1000000/FPS)); + } + endwin(); + free(playfield); + free(rendered); + return 0; +} \ No newline at end of file diff --git a/main.c.old b/main.c.old new file mode 100644 index 0000000..e3cc43a --- /dev/null +++ b/main.c.old @@ -0,0 +1,211 @@ +#include +#include +#include +#include +#include + +#define SCR_X 80 +#define SCR_Y 80 + +char inchar = ' '; +char readchar(uint8_t x, uint8_t y); +void applybuffer(); +void cls(); +void setchar(uint8_t x, uint8_t y, char letter); +int rng(int lower, int upper); +void generate_maze(); +int up(); +void down(); +void left(); +void right(); +void keyinput(); +void init(); + +char scrbuf[SCR_X + 1]; + +struct Object { + uint8_t x; + uint8_t y; + char letter; +}; + +struct Game { + uint16_t level; + char blank; + char wall; + uint8_t cols; + uint8_t rows; + char screen[SCR_X + 1][SCR_Y]; +}; + +struct Game game = {.level = 0, .blank = ' ', .wall = '|'}; +struct Object player = {.x = 0, .y = 0, .letter = 'P'}; +struct Object goal = {.x = 0, .y = 0, .letter = 'P'}; + +/* void applybuffer(){ + for (uint8_t y = 0;y