Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.54 KB | None | 0 0
  1. #include "square.h"
  2.  
  3. #include <qwidget.h>
  4. #include <qpainter.h>
  5. #include <QMouseEvent>
  6. #include <iostream>
  7.  
  8. #include <QGraphicsEllipseItem>
  9. #include <Rect.h>
  10.  
  11. using namespace std;
  12.  
  13. Rect r;
  14.  
  15. /**
  16.  * Square
  17.  * parent - pointer to Widget
  18.  *
  19.  * Square main constructor
  20.  */
  21. Square::Square(QWidget *parent) : QWidget(parent)
  22. {
  23.   r.init_rects();
  24.  
  25.   int i = 0;
  26.   int j = 0;
  27.  
  28.   for (i = 0; i < 8; i++)
  29.   {
  30.       for (j = 0; j < 8 ; j++)
  31.       {
  32.          field[i][j] = EMPTY;
  33.          fields[i][j].checked = false;
  34.       }
  35.       j = 0;
  36.   }
  37.  }
  38.  
  39. /**
  40.  * ~Square
  41.  *
  42.  * Square destructor
  43.  */
  44. Square::~Square()
  45. {
  46. }
  47.  
  48. /**
  49.  * paintEvent
  50.  *
  51.  * Square paint event
  52.  */
  53. void Square::paintEvent(QPaintEvent *)
  54. {
  55.     int i = 0;
  56.     int j = 0;
  57.  
  58.     QPainter painter(this);
  59.     painter.setPen(QPen(Qt::black));
  60.     painter.setBrush(QBrush(Qt::gray));
  61.  
  62.     QPainter painter_elipse(this);
  63.     painter_elipse.setPen(QPen(Qt::transparent));
  64.  
  65.     for (i = 0; i < 8; i++)
  66.     {
  67.         for (j = 0; j < 8; j++)
  68.         {
  69.             switch (field[i][j])
  70.             {
  71.                case EMPTY:
  72.                {
  73.                  painter_elipse.setBrush(QBrush(Qt::transparent));
  74.                  break;
  75.                }
  76.  
  77.                case WHITE:
  78.                {
  79.                  painter_elipse.setBrush(QBrush(Qt::white));
  80.                  break;
  81.                }
  82.  
  83.                case BLACK:
  84.                {
  85.                  painter_elipse.setBrush(QBrush(Qt::black));
  86.                  break;
  87.                }
  88.             }
  89.             painter.drawRect(fields[i][j]);
  90.             painter_elipse.drawEllipse(fields[i][j]);
  91.         }
  92.  
  93.         j = 0;
  94.  
  95.         painter.drawRect(fields[i][j]);
  96.         painter_elipse.drawEllipse(fields[i][j]);
  97.     }
  98. }
  99.  
  100. /**
  101.  * dim
  102.  *
  103.  * Default settings
  104.  */
  105. void Square::dim()
  106. {
  107.    for (int i = 0; i < 8; i++)
  108.       for (int j = 0; j < 8; j++)
  109.       {
  110.          field[i][j] = EMPTY;
  111.          fields[i][j].checked = false;
  112.       }
  113. }
  114.  
  115. /**
  116.  * reset
  117.  *
  118.  * Start new game
  119.  */
  120. void Square::reset()
  121. {
  122.    dim();
  123.    field[4][4]=field[3][3]=BLACK;
  124.    field[4][3]=field[3][4]=WHITE;
  125.    repaint();
  126. }
  127.  
  128. /**
  129.  * mousePressEvent
  130.  * e - pointer to QMouseEvent
  131.  *
  132.  * mouse pressing event
  133.  */
  134. void Square::mousePressEvent(QMouseEvent *e)
  135. {
  136.     if (e->button() == Qt::LeftButton)
  137.     {
  138.         int x = 0;
  139.         int y = 0;
  140.  
  141.         x = (int)(e->y() / 40);
  142.         y = (int)(e->x() / 40);
  143.  
  144.         field[x][y] = BLACK;
  145.         cout <<x;
  146.         cout <<y;
  147.         repaint();
  148.     }
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement