Commit 786fdc58 authored by Yann Boucher's avatar Yann Boucher
Browse files
parents 5140c806 c2d21c8e
Pipeline #79689 passed with stages
in 17 seconds
......@@ -93,6 +93,13 @@
<layout class="QVBoxLayout" name="simSpeedLayout_3">
<item>
<layout class="QHBoxLayout" name="simSpeedLabLayout_2">
<item>
<widget class="QLabel" name="simStatusLabel">
<property name="text">
<string>Status :</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="simSpeedLabel">
<property name="text">
......@@ -601,7 +608,7 @@ pattern recorded :</string>
<x>0</x>
<y>0</y>
<width>1068</width>
<height>25</height>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="menuFichier">
......
......@@ -103,7 +103,10 @@ public:
}
}
}
//! \brief Recopie de la grille
Grid& operator=(const Grid& g);
//! \brief Vérifie si deux grilles sont identiques
bool operator==(const Grid&);
//! \brief Retourne une structure représentant le contenu non-nul de la Grid (les cellules d'état != 0), pour un enregistrement dans un fichier par exemple.
......
......@@ -13,6 +13,7 @@ Cette classe représente un automate cellulaire dans le temps.
#include "grid.h"
#include "automaton.hpp"
//! \brief Cette classe représente un automate cellulaire dans le temps.
class Simulation {
private:
bool canRun;
......@@ -81,6 +82,10 @@ public:
//! \return vrai si la simulation peut tourner
bool runnable() {return canRun;}
//! \brief Indique si la simulation est gelée
//! \return vrai si le nouvel état est le même que le dernier
bool frozen() {return hist.topGrid()==automaton.getGrid();}
//! \brief Donne la période de la simulation
//!
//! Si elle n'est pas encore obtenue : vaut 0
......
......@@ -944,6 +944,9 @@ void MainWindow::on_nextButton_clicked()
ui->grid_view->copy_grid(simulation.getGrid());
ui->stepsPeriodLabel->setText(QString::number(simulation.getPeriod())+" steps");
ui->nbStepsLabel->setText(QString::number(simulation.getTime())+" steps");
if(simulation.frozen()) {
ui->simStatusLabel->setText("Status : frozen");
}
}
void MainWindow::on_prevButton_clicked()
......@@ -960,10 +963,12 @@ void MainWindow::on_playPauseButton_clicked()
if(timer->isActive()) {
//Pause
ui->playPauseButton->setText("Play");
ui->simStatusLabel->setText("Status : inactive");
timer->stop();
} else {
//Play
ui->playPauseButton->setText("Pause");
ui->simStatusLabel->setText("Status : active");
int frequence = ui->simSpeedSpinbox->value();
if(frequence == 0) {
QMessageBox::critical(this, "Unable to start", "Speed needs to be nonzero.");
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment