#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void place (int r, int s, int i, int k);
void setup ();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
const int m = 8;
const int n = 2*m+1;
void MainWindow::place (int r, int s, int i, int k)
{
QTableWidgetItem * item = new QTableWidgetItem;
ui->tableWidget->setItem (r, s, item);
item->setText (QString::number (i));
QColor c = QColor::fromHsv ((k*45)%360, 255, 255);
item->setBackgroundColor(c);
}
void MainWindow::setup ()
{
ui->tableWidget->setColumnCount (n);
ui->tableWidget->setRowCount (n);
int h = ui->tableWidget->rowHeight (0) * 3 /2;
for (int c = 0; c<n; c++)
ui->tableWidget->setColumnWidth (c, h);
int i = 1;
int r = m; // stred je (r,s), cislovany od 0
int s = m;
place (r, s, i++, 1); // jednicka
s++;
for (int k = 2; k <= 2; k++)
{
int j;
for (j = 1; j<=k; j++) place (r++, s, i++, k); // dolu
r--; s--;
for (j = 1; j<=2*k-2; j++) place (r, s--, i++, k); // vlevo
s++; r--;
for (j = 1; j<=2*k-2; j++) place (r--, s, i++, k); // nahoru
r++; s++;
for (j = 1; j<=2*k-2; j++) place (r, s++, i++, k); // vpravo
s--;r++;
for (j = 1; j<=k-2; j++) place (r, s++, i++, k); // dolu
s++;r--;
}
for (int k = 3; k <= m+1; k++)
{
int j;
for (j = 1; j<=2*k-2; j++) place (r++, s, i++, k); // dolu
r--; s--;
for (j = 1; j<=2*k-2; j++) place (r, s--, i++, k); // vlevo
s++; r--;
for (j = 1; j<=2*k-2; j++) place (r--, s, i++, k); // nahoru
r++; s++;
for (j = 1; j<=2*k-2; j++) place (r, s++, i++, k); // vpravo
}
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setup ();
}
MainWindow::~MainWindow()
{
delete ui;
}