From f0a14c33b9248bea67409ec8bfe80b370415b08f Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 11 Sep 2018 22:08:08 +0300 Subject: [PATCH 1/4] fix snake class --- back-end/head.cpp | 34 ++++++++++++++-------------------- back-end/head.h | 12 ++++++------ back-end/snake.cpp | 36 +++++++++++++++++++----------------- back-end/snake.h | 11 +++++------ 4 files changed, 44 insertions(+), 49 deletions(-) diff --git a/back-end/head.cpp b/back-end/head.cpp index 8658300..43e5b6d 100644 --- a/back-end/head.cpp +++ b/back-end/head.cpp @@ -3,48 +3,42 @@ #include double Head::getAngle() const { - return angle; + return _angle; } void Head::setAngle(double angle) { - this->angle = angle; + _angle = angle; } double Head::getY() const { - return y; + return _y; } void Head::setY(double y) { - this->y = y; + _y = y; } double Head::getX() const { - return x; + return _x; } void Head::setX(double x) { - this->x = x; + _x = x; } void Head::render(){ - qint64 tempTime = QDateTime::currentMSecsSinceEpoch() - time; - double my = y + *speed * sin(angle * TO_RADIAN); - y += (my - y) / 1000 * tempTime; - time = QDateTime::currentMSecsSinceEpoch(); + qint64 tempTime = QDateTime::currentMSecsSinceEpoch() - _time; + double my = _y + *_speed * sin(_angle * TO_RADIAN); + _y += (my - _y) / 1000 * tempTime; + _time = QDateTime::currentMSecsSinceEpoch(); } -double *Head::getSpeed() const -{ - return speed; +double Head::getSpeed() const { + return *_speed; } -void Head::setSpeed(double *speed) -{ - this->speed = speed; -} - -Head::Head() { - +Head::Head(double *spead) { + _speed = spead; } Head::~Head() { diff --git a/back-end/head.h b/back-end/head.h index ae10fc3..2415281 100644 --- a/back-end/head.h +++ b/back-end/head.h @@ -9,12 +9,12 @@ class Head : BaseClass { private: - double x, y, angle; - QString texture; - qint64 time; - double *speed; + double _x, _y, _angle; + QString _texture; + qint64 _time; + double *_speed; public: - Head(); + Head(double *spead); double getAngle() const; void setAngle(double angle); @@ -24,7 +24,7 @@ public: double getX() const; void setX(double x); - double *getSpeed() const; + double getSpeed() const; void setSpeed(double *value); void render(); diff --git a/back-end/snake.cpp b/back-end/snake.cpp index d897c1d..493760b 100644 --- a/back-end/snake.cpp +++ b/back-end/snake.cpp @@ -1,23 +1,25 @@ #include "snake.h" -void Snake::setItems(const QVector &value) -{ - items = value; -} - -QVector Snake::getItems() const -{ - return items; -} - -void Snake::setSpeedHead(){ - for(int i = 0;i < getItems().size(); ++i){ - getItems().at(i)->setSpeed(&speed); - } +const QVector &Snake::getItems() const { + return _items; } Snake::Snake() : - speed(SPEEDSNAKE) -{ - setSpeedHead(); + _speed(SPEEDSNAKE){ +} + +bool Snake::init(int size, double spead) { + + if (size < 0 || spead <= 0) { + return false; + } + + _speed = spead; + + for ( int i = size; i >= 0; --i ) { + _items.push_back( new Head(&_speed)); + } + + return true; + } diff --git a/back-end/snake.h b/back-end/snake.h index a2ad9b1..6e15c18 100644 --- a/back-end/snake.h +++ b/back-end/snake.h @@ -8,14 +8,13 @@ class Snake { private: - QVector items; - double speed; - bool isClick; + QVector _items; + double _speed; + bool _isClick; public: Snake(); - bool init(int size, bool click); - void setItems(const QVector &value); - QVector getItems() const; + bool init(int size, double spead); + const QVector& getItems() const; void setSpeedHead (void); }; From c61d639da6fea4b2abe44a337e87d76d59372781 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 11 Sep 2018 22:15:30 +0300 Subject: [PATCH 2/4] fix snake class v2 --- back-end/snake.cpp | 20 ++++++++++++++++++-- back-end/snake.h | 6 +++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/back-end/snake.cpp b/back-end/snake.cpp index 493760b..724cc69 100644 --- a/back-end/snake.cpp +++ b/back-end/snake.cpp @@ -1,11 +1,19 @@ #include "snake.h" + +Snake::Snake() : + _speed(SPEEDSNAKE){ +} + const QVector &Snake::getItems() const { return _items; } -Snake::Snake() : - _speed(SPEEDSNAKE){ +void Snake::render() { +// зздесь должна быть реализация рендера змейки +// for (auto i : _items) { +// i->render(); +// } } bool Snake::init(int size, double spead) { @@ -23,3 +31,11 @@ bool Snake::init(int size, double spead) { return true; } + +Snake::~Snake() { + for (auto i : _items) { + delete i; + } + _items.clear(); + +} diff --git a/back-end/snake.h b/back-end/snake.h index 6e15c18..60c64fc 100644 --- a/back-end/snake.h +++ b/back-end/snake.h @@ -5,7 +5,9 @@ #include #include "head.h" -class Snake +#include "baseclass.h" + +class Snake : public BaseClass { private: QVector _items; @@ -13,6 +15,8 @@ private: bool _isClick; public: Snake(); + ~Snake() override; + void render() override; bool init(int size, double spead); const QVector& getItems() const; void setSpeedHead (void); From 13f2ab45db4175cc414a6ab74a7ff8501f72bbc7 Mon Sep 17 00:00:00 2001 From: usermeme Date: Tue, 11 Sep 2018 22:28:03 +0300 Subject: [PATCH 3/4] Update head.cpp --- back-end/head.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/back-end/head.cpp b/back-end/head.cpp index 43e5b6d..ed07114 100644 --- a/back-end/head.cpp +++ b/back-end/head.cpp @@ -3,42 +3,42 @@ #include double Head::getAngle() const { - return _angle; + return angle; } void Head::setAngle(double angle) { - _angle = angle; + this->angle = angle; } double Head::getY() const { - return _y; + return y; } void Head::setY(double y) { - _y = y; + this->y = y; } double Head::getX() const { - return _x; + return x; } void Head::setX(double x) { - _x = x; + this->x = x; } void Head::render(){ - qint64 tempTime = QDateTime::currentMSecsSinceEpoch() - _time; - double my = _y + *_speed * sin(_angle * TO_RADIAN); - _y += (my - _y) / 1000 * tempTime; - _time = QDateTime::currentMSecsSinceEpoch(); + qint64 tempTime = QDateTime::currentMSecsSinceEpoch() - time; + double my = y + *speed * sin(angle * TO_RADIAN); + y += (my - y) / 1000 * tempTime; + time = QDateTime::currentMSecsSinceEpoch(); } double Head::getSpeed() const { - return *_speed; + return *speed; } Head::Head(double *spead) { - _speed = spead; + this->speed = spead; } Head::~Head() { From ebab446d47b30bdc54bcd6f111c936e3363ac5f3 Mon Sep 17 00:00:00 2001 From: usermeme Date: Tue, 11 Sep 2018 22:28:44 +0300 Subject: [PATCH 4/4] Update head.h --- back-end/head.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/back-end/head.h b/back-end/head.h index 2415281..93c3fe6 100644 --- a/back-end/head.h +++ b/back-end/head.h @@ -9,12 +9,12 @@ class Head : BaseClass { private: - double _x, _y, _angle; - QString _texture; - qint64 _time; - double *_speed; + double x, y, angle; + QString texture; + qint64 time; + double *speed; public: - Head(double *spead); + Head(double *speed); double getAngle() const; void setAngle(double angle);