From bf2edd9fc20eed8fc4eed4a5dbb40fcde137ac22 Mon Sep 17 00:00:00 2001 From: VissaMoutafis Date: Fri, 21 Feb 2020 14:47:46 +0200 Subject: [PATCH] Controller ready, Input methods ready, Board Ready, Snake collision events to be made and Snack class to be implemented --- .vscode/.easycpp | 1 + .vscode/launch.json | 26 ++++++++ .vscode/settings.json | 6 ++ .vscode/tasks.json | 26 ++++++++ Makefile | 23 +++++++ bin/main | Bin 0 -> 199024 bytes include/Controller.h | 20 ++++++ include/Game.h | 0 include/Graphics.h | 20 ++++++ include/Player.h | 0 include/Point.h | 26 ++++++++ include/Snake.h | 31 +++++++++ src/Controller.cpp | 50 ++++++++++++++ src/Graphics.cpp | 72 ++++++++++++++++++++ src/PointClassImpl.cpp | 62 +++++++++++++++++ src/SnakeImpl.cpp | 148 +++++++++++++++++++++++++++++++++++++++++ src/a.out | Bin 0 -> 17512 bytes src/main.cpp | 20 ++++++ 18 files changed, 531 insertions(+) create mode 100755 .vscode/.easycpp create mode 100755 .vscode/launch.json create mode 100755 .vscode/settings.json create mode 100755 .vscode/tasks.json create mode 100755 Makefile create mode 100755 bin/main create mode 100644 include/Controller.h create mode 100755 include/Game.h create mode 100644 include/Graphics.h create mode 100755 include/Player.h create mode 100755 include/Point.h create mode 100755 include/Snake.h create mode 100644 src/Controller.cpp create mode 100644 src/Graphics.cpp create mode 100755 src/PointClassImpl.cpp create mode 100755 src/SnakeImpl.cpp create mode 100755 src/a.out create mode 100755 src/main.cpp diff --git a/.vscode/.easycpp b/.vscode/.easycpp new file mode 100755 index 0000000..15aa62c --- /dev/null +++ b/.vscode/.easycpp @@ -0,0 +1 @@ +This file is created by Easy C++ Projects, please ignore and do not delete it \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100755 index 0000000..7a19006 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,26 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "C++ Debug (gdb)", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/bin/main", + "preLaunchTask": "Build C++ project", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": true, + "MIMode": "gdb", + "miDebuggerPath": "/usr/bin/gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100755 index 0000000..f4aa9e6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "files.associations": { + "*.tpp": "cpp" + }, + "terminal.integrated.shell.windows": "cmd.exe" +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100755 index 0000000..f4ebfa7 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,26 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Build C++ project", + "type": "shell", + "group": { + "kind": "build", + "isDefault": true + }, + "command": "make", + }, + { + "label": "Build & run C++ project", + "type": "shell", + "group": { + "kind": "test", + "isDefault": true + }, + "command": "make", + "args": [ + "run" + ] + } + ] +} \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100755 index 0000000..bbd3780 --- /dev/null +++ b/Makefile @@ -0,0 +1,23 @@ +CXX := g++ +CXX_FLAGS := -Wall -Wextra -std=c++11 -ggdb + +BIN := bin +SRC := src +INCLUDE := include +LIB := lib + +LIBRARIES := -lncurses +EXECUTABLE := main + + +all: $(BIN)/$(EXECUTABLE) + +run: clean all + clear + ./$(BIN)/$(EXECUTABLE) + +$(BIN)/$(EXECUTABLE): $(SRC)/*.cpp + $(CXX) $(CXX_FLAGS) -I$(INCLUDE) -L$(LIB) $^ -o $@ $(LIBRARIES) + +clean: + -rm $(BIN)/* diff --git a/bin/main b/bin/main new file mode 100755 index 0000000000000000000000000000000000000000..54f26364c6da5644eff4f8769a5186422523c07c GIT binary patch literal 199024 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­L=5xqfkSnEdN=TZN5I8#O>tpk}S+ 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 literal 0 HcmV?d00001 diff --git a/include/Controller.h b/include/Controller.h new file mode 100644 index 0000000..723254c --- /dev/null +++ b/include/Controller.h @@ -0,0 +1,20 @@ +#pragma once + +#include "Graphics.h" +#include "Snake.h" + +class Controller{ +private: + Snake *snake; //the figure the controler controls + graphics_input inpt; +public: + Controller(Snake* _snake); + Controller(); + ~Controller(); //default destructor + + graphics_input readInput(void); //basic input methods: sets inpt to what it read if i tread something + + void act(void); //basic act method: acts like a joystick + + bool wantsToQuit(void); //returns true of the user wants to quit +}; \ No newline at end of file diff --git a/include/Game.h b/include/Game.h new file mode 100755 index 0000000..e69de29 diff --git a/include/Graphics.h b/include/Graphics.h new file mode 100644 index 0000000..7379cfa --- /dev/null +++ b/include/Graphics.h @@ -0,0 +1,20 @@ +#pragma once + +#include //include library for terminal graphics + +#define UP KEY_UP +#define DOWN KEY_DOWN +#define LEFT KEY_LEFT +#define RIGHT KEY_RIGHT +#define EXIT_GAME 'q' +typedef int graphics_input; //the type of the graphics input + + + +void initializeGraphics(void); +void endGraphics(void); +void refreshScreen(void); +void printChar(int y, int x, graphics_input img); +void printMsg(int y, int x, char *str); +char readChar(int y, int x); +int readInpt(); \ No newline at end of file diff --git a/include/Player.h b/include/Player.h new file mode 100755 index 0000000..e69de29 diff --git a/include/Point.h b/include/Point.h new file mode 100755 index 0000000..bee87c3 --- /dev/null +++ b/include/Point.h @@ -0,0 +1,26 @@ +#pragma once + +#include "Graphics.h" + +class Point{ +private: + int x; + int y; + graphics_input img; +public: + Point(); + Point(int y = 10, int x = 10, graphics_input img = '*'); + ~Point(); + void setPoint(int y, int x); + int getX(); + int getY(); + void moveUp(); + void moveDown(); + void moveLeft(); + void moveRight(); + graphics_input getImg(); + void setImg(graphics_input image); + void printImg(); + void erase(); + void randomize(); +}; \ No newline at end of file diff --git a/include/Snake.h b/include/Snake.h new file mode 100755 index 0000000..ccd2dd2 --- /dev/null +++ b/include/Snake.h @@ -0,0 +1,31 @@ +#pragma once + +#include + +#include "Point.h" //the library we need to implement the snake +#define SNACK '*' +#define BODY 'o' +class Snake{ +private: + std::list snake; //the snake will be implemented as a list of points where the first element is the head + graphics_input direction; + void updateHead(void); + void printSnake(void); +public: + Snake(int headY = LINES/2, int headX = COLS/2); //default constructor + ~Snake(); //destructor + + //basic move functions + void moveUp(void); + void moveDown(void); + void moveLeft(void); + void moveRight(void); + + bool isBitten(void); //function to check if the snake bit its self + bool hasBitSnack(int snackY, int snackX);//checks if the snake has bitten a snack + + int getSize(void); //get the current length + void incSize(void); //function to increase the length + + void move(void); //function to refresh the image of the snake +}; diff --git a/src/Controller.cpp b/src/Controller.cpp new file mode 100644 index 0000000..7bfa8eb --- /dev/null +++ b/src/Controller.cpp @@ -0,0 +1,50 @@ +#include "Controller.h" +#include +#include +using namespace std; + +Controller::Controller() +:inpt{0} +{ + snake = new Snake(); +} + +Controller::Controller(Snake *_snake) +: snake{_snake}, inpt{0} { + + assert(this->snake != NULL); +} + +Controller::~Controller(){} + +void Controller::act(void){ + switch (this->inpt) + { + case UP: + snake->moveUp(); + break; + case DOWN: + snake->moveDown(); + break; + case LEFT: + snake->moveLeft(); + break; + case RIGHT: + snake->moveRight(); + break; + default: + snake->move(); + break; + } + refreshScreen(); +} + +graphics_input Controller::readInput(void){ + this->inpt = readInpt(); + refreshScreen(); + return inpt; +} + +bool Controller::wantsToQuit(void){ + return this->inpt == EXIT_GAME; +} \ No newline at end of file diff --git a/src/Graphics.cpp b/src/Graphics.cpp new file mode 100644 index 0000000..4e271af --- /dev/null +++ b/src/Graphics.cpp @@ -0,0 +1,72 @@ +#include "Graphics.h" +#include +#include +///Utillities for the graphics +unsigned int sleepTime = 50000000; +static WINDOW *_box = NULL; + +static void createBox(void){ + _box = newwin(LINES-2, COLS, 2, 0); + box(_box, 0, 0); + wrefresh(_box); +} +static void destroyBox(void){ + wborder(_box, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '); + wrefresh(_box); + delwin(_box); +} +//Initialization function +void initializeGraphics(void){ + initscr(); //initialize curses + cbreak(); //set line buffering to false + noecho(); //set input echo to false + keypad(stdscr, TRUE); //this step enables the use of arrow keys and other function keys + nodelay(stdscr, true); + //We must clear the screen from unecessary garbage + clear(); + //Print the title + mvprintw(0, (COLS/2) - 12, "~Snake Game by VissaM~"); + refresh(); + + //create the game box + createBox(); +} + +//Exit function +void endGraphics(void){ + destroyBox(); + endwin(); +} + +//Typical refresh function (ease the eye with a custom function instead of the actual one) +void refreshScreen(void){ + using namespace std::this_thread; // sleep_for, sleep_until + using namespace std::chrono; // nanoseconds, system_clock, seconds + sleep_for(nanoseconds(sleepTime)); + + refresh(); // just use the curses version ;p + wrefresh(_box); +} + +void printChar(int y, int x, graphics_input img){ + mvwaddch(_box, y, x, img); + refresh(); + wrefresh(_box); +} + +void printMsg(int y, int x, char* str){ + mvwaddstr(_box, y, x, str); + refresh(); + wrefresh(_box); +} + +char readChar(int y, int x){ + mvwgetch(_box, y, x); + refresh(); + wrefresh(_box); +} + +int readInpt(){ + return getch(); +} + diff --git a/src/PointClassImpl.cpp b/src/PointClassImpl.cpp new file mode 100755 index 0000000..25d9b92 --- /dev/null +++ b/src/PointClassImpl.cpp @@ -0,0 +1,62 @@ +#include +#include +#include "Point.h" + +/*snake will be an array of points*/ + +using namespace std; +Point::Point(int y, int x, graphics_input img) +: x {x}, y{y}, img{img} +{} +//delegating the previous constructor +Point::Point() +:Point(10, 10, '*') +{ + +} + +Point::~Point(){ + /*No need to do something */ +} + +void Point::setPoint(int y, int x){ + this->x = x; + this->y = y; +} + +int Point::getX(void){ + return this->x; +} + +int Point::getY(void){ + return this->y; +} + +void Point::moveUp(void){ + y--; +} + +void Point::moveDown(void){ + y++; +} + +void Point::moveLeft(void){ + x--; +} + +void Point::moveRight(void){ + x++; +} + +graphics_input Point::getImg(){ + return this->img; +} +void Point::setImg(graphics_input image){ + this->img = image; +} +void Point::printImg(){ + printChar(this->y, this->x, this->img); +} +void Point::erase(void){ + this->img = ' '; +} \ No newline at end of file diff --git a/src/SnakeImpl.cpp b/src/SnakeImpl.cpp new file mode 100755 index 0000000..2e2fc68 --- /dev/null +++ b/src/SnakeImpl.cpp @@ -0,0 +1,148 @@ +#include "Snake.h" +#include +using namespace std; + +Snake::Snake(int headY, int headX) +:direction{LEFT} +{ + snake.push_back(Point{headY, headX, '>'}); //add the head of the snake + for(int i=1; i<=3; i++) + snake.push_back(Point{headY, headX+i, BODY}); + this->printSnake(); +} + +Snake::~Snake(){} + +bool Snake::isBitten(void){ + Point head = *snake.begin(); + + list::iterator body_part = snake.begin(); + body_part++; + while(body_part != snake.end()){ + if(body_part->getX() == head.getX() && body_part->getY() == head.getY()) + return true; + } + + return false; +} + +bool Snake::hasBitSnack(int snackY, int snackX){ + return readChar(snackY, snackX) == SNACK; +} + +int Snake::getSize(void){ + return snake.size(); +} + +void Snake::incSize(void){ + auto tail = snake.end(); + //since list::end() returns one element past the actual last one we will decrease by one the tail iterator + tail--; //now we actually pointing to the tail + int tailX = tail->getX(); + int tailY = tail->getY(); + + //now we must determine the direction which is easy by just fiding the coordinates of the previous to tail element + auto prev = --tail; + int prevX = prev->getX(); + int prevY = prev->getY(); + + if(prevY == tailY){ + //if the 2 part are on the same 'height' + if (prevX < tailX) //if the tail continues to the left: + snake.push_back(Point{tailY, tailX + 1, BODY}); // add one part to the right of the tail + else if(prevX > tailX) //if the tail continues to the right: + snake.push_back(Point{tailY, tailX - 1, BODY}); // add one part to the left of the tail + }else{ + if (prevY < tailY) //if the tail continues to the upper side: + snake.push_back(Point{tailY + 1, tailX, BODY}); // add one part facing down + else if (prevY > tailY) //if the tail continues to the lower side: + snake.push_back(Point{tailY - 1, tailX, BODY}); // add one part facing up + } +} + +void Snake::updateHead(void){ + auto head = snake.begin(); + switch (this->direction) + { + case UP: + head->moveUp(); + break; + + case DOWN: + head->moveDown(); + break; + + case LEFT: + head->moveLeft(); + break; + + case RIGHT: + head->moveRight(); + break; + } +} + +void Snake::printSnake(void){ + //We print each element of the snake-list + for(auto bodyPart : snake){ + bodyPart.printImg(); + } + + refreshScreen(); //finally call the previously implemented function at Graphics.cpp + //to update the screen so the changes become noticed +} + +void Snake::move(void){ + //now delete the tail print since teh snake moves forward + auto tail = snake.end(); + tail--; + printChar(tail->getY(), tail->getX(), ' '); + + //and now we have to update all the other nodes of the body + + auto bodyP1 = tail; + auto bodyP2 = --tail; + + while(bodyP2 != snake.begin()){ + *bodyP1 = *bodyP2; + bodyP1--; + bodyP2--; + } + + //update the previous to head node + auto headPrev = snake.begin(); + headPrev++; + *headPrev = *snake.begin(); + headPrev->setImg(BODY); + + //based on direction, update the head + this->updateHead(); + + this->printSnake(); // print the snake and update the screen +} + +//Move Functions: +//For the move functions we must change +void Snake::moveUp(void){ + snake.begin()->setImg('v'); + this->direction = UP; + this->move(); +} + +void Snake::moveDown(void){ + snake.begin()->setImg('^'); + this->direction = DOWN; + this->move(); +} + +void Snake::moveLeft(void){ + snake.begin()->setImg('>'); + this->direction = LEFT; + this->move(); +} + +void Snake::moveRight(void){ + snake.begin()->setImg('<'); + this->direction = RIGHT; + this->move(); +} \ No newline at end of file diff --git a/src/a.out b/src/a.out new file mode 100755 index 0000000000000000000000000000000000000000..f23747fb3c6c69c79632236c657fa3621dec4735 GIT binary patch literal 17512 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 TDbCr7+wZ#8&{%9Uu(9I5e=Cmz literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp new file mode 100755 index 0000000..15a3386 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,20 @@ + +#include +#include +#include "Controller.h" +using namespace std; + +int main() { + initializeGraphics(); + Controller c; + /* CODE TO BE WRITTEN... */ + graphics_input in; + while(c.wantsToQuit() == false){ + c.readInput(); + c.act(); + + } + endGraphics(); + return 0; + +} \ No newline at end of file