Added code

This commit is contained in:
2018-02-06 01:44:42 +02:00
parent 16996e538a
commit d70c0ccf20
120 changed files with 25302 additions and 0 deletions

77
Domain/Array2.cpp Normal file
View File

@ -0,0 +1,77 @@
/*
* Array2.cpp
*
* Created on: May 5, 2013
* Author: chibi_000
*/
#include "Array2.h"
#include <cstring>
Array2::Array2(int w, int h)
{
this->w = w;
this->h = h;
this->data = new int[w * h];
memset(this->data, 0, w * h * sizeof(int));
}
Array2::Array2(int w, int h, const int* vals)
{
this->w = w;
this->h = h;
this->data = new int[w * h];
memcpy(this->data, vals, w * h * sizeof(int));
}
Array2::Array2(const Array2& a)
{
this->w = a.w;
this->h = a.h;
this->data = new int[w * h];
memcpy(this->data, a.data, w * h * sizeof(int));
}
Array2& Array2::operator= (const Array2& a)
{
if (this != &a)
{
delete this->data;
this->w = a.w;
this->h = a.h;
this->data = new int[w * h];
memcpy(this->data, a.data, w * h * sizeof(int));
}
return *this;
}
Array2::~Array2()
{
delete this->data;
}
int Array2::get(int x, int y) const
{
return this->data[y * this->w + x];
}
void Array2::set(int x, int y, int value)
{
this->data[y * this->w + x] = value;
}
int Array2::getWidth() const
{
return this->w;
}
int Array2::getHeight() const
{
return this->h;
}

37
Domain/Array2.h Normal file
View File

@ -0,0 +1,37 @@
/*
* Array2.h
*
* Created on: May 5, 2013
* Author: chibi_000
*/
#ifndef ARRAY2_H_
#define ARRAY2_H_
class Array2 {
private:
int* data;
int w, h;
public:
// Constructors
Array2(int w, int h);
Array2(int w, int h, const int* vals);
Array2(const Array2&);
virtual ~Array2();
// Getters
int get(int x, int y) const;
int getWidth() const;
int getHeight() const;
// Setters
void set(int x, int y, int value);
// Assignment operator
Array2& operator= (const Array2& a);
};
#endif /* ARRAY2_H_ */

45
Domain/Piece.cpp Normal file
View File

@ -0,0 +1,45 @@
/*
* Piece.cpp
*
* Created on: May 5, 2013
* Author: chibi_000
*/
#include "Piece.h"
// Constructors
Piece::Piece() : Array2(1, 1)
{
}
Piece::Piece(int w, int h) : Array2(w, h)
{
}
Piece::Piece(int w, int h, const int* vals) : Array2(w, h, vals)
{
}
Piece::Piece(const Piece& p) : Array2(p)
{
}
Piece::~Piece()
{
}
// Rotate
Piece Piece::rotate() const
{
// Create a new piece
Piece dest(getHeight(), getWidth());
// Rotate 90 degrees
for (int x = 0; x < getWidth(); x++)
for (int y = 0; y < getHeight(); y++)
dest.set(getHeight() - y - 1, x, get(x, y));
// Return new piece
return dest;
}

27
Domain/Piece.h Normal file
View File

@ -0,0 +1,27 @@
/*
* Piece.h
*
* Created on: May 5, 2013
* Author: chibi_000
*/
#ifndef PIECE_H_
#define PIECE_H_
#include "Array2.h"
class Piece : public Array2 {
public:
// Constructors
Piece();
Piece(int w, int h);
Piece(int w, int h, const int* vals);
Piece(const Piece& p);
virtual ~Piece();
// Rotate
Piece rotate() const;
};
#endif /* PIECE_H_ */