Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "square.h"
- #include <qwidget.h>
- #include <qpainter.h>
- #include <QMouseEvent>
- #include <iostream>
- #include <QGraphicsEllipseItem>
- #include <Rect.h>
- using namespace std;
- Rect r;
- /**
- * Square
- * parent - pointer to Widget
- *
- * Square main constructor
- */
- Square::Square(QWidget *parent) : QWidget(parent)
- {
- r.init_rects();
- int i = 0;
- int j = 0;
- for (i = 0; i < 8; i++)
- {
- for (j = 0; j < 8 ; j++)
- {
- field[i][j] = EMPTY;
- fields[i][j].checked = false;
- }
- j = 0;
- }
- }
- /**
- * ~Square
- *
- * Square destructor
- */
- Square::~Square()
- {
- }
- /**
- * paintEvent
- *
- * Square paint event
- */
- void Square::paintEvent(QPaintEvent *)
- {
- int i = 0;
- int j = 0;
- QPainter painter(this);
- painter.setPen(QPen(Qt::black));
- painter.setBrush(QBrush(Qt::gray));
- QPainter painter_elipse(this);
- painter_elipse.setPen(QPen(Qt::transparent));
- for (i = 0; i < 8; i++)
- {
- for (j = 0; j < 8; j++)
- {
- switch (field[i][j])
- {
- case EMPTY:
- {
- painter_elipse.setBrush(QBrush(Qt::transparent));
- break;
- }
- case WHITE:
- {
- painter_elipse.setBrush(QBrush(Qt::white));
- break;
- }
- case BLACK:
- {
- painter_elipse.setBrush(QBrush(Qt::black));
- break;
- }
- }
- painter.drawRect(fields[i][j]);
- painter_elipse.drawEllipse(fields[i][j]);
- }
- j = 0;
- painter.drawRect(fields[i][j]);
- painter_elipse.drawEllipse(fields[i][j]);
- }
- }
- /**
- * dim
- *
- * Default settings
- */
- void Square::dim()
- {
- for (int i = 0; i < 8; i++)
- for (int j = 0; j < 8; j++)
- {
- field[i][j] = EMPTY;
- fields[i][j].checked = false;
- }
- }
- /**
- * reset
- *
- * Start new game
- */
- void Square::reset()
- {
- dim();
- field[4][4]=field[3][3]=BLACK;
- field[4][3]=field[3][4]=WHITE;
- repaint();
- }
- /**
- * mousePressEvent
- * e - pointer to QMouseEvent
- *
- * mouse pressing event
- */
- void Square::mousePressEvent(QMouseEvent *e)
- {
- if (e->button() == Qt::LeftButton)
- {
- int x = 0;
- int y = 0;
- x = (int)(e->y() / 40);
- y = (int)(e->x() / 40);
- field[x][y] = BLACK;
- cout <<x;
- cout <<y;
- repaint();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement