33,311
社区成员
发帖
与我相关
我的任务
分享
#ifndef LIFEOFGAME_H
#define LIFEOFGAME_H
#include <QWidget>
#include <QPainter>
class QPushButton;
class LifeOfGame : public QWidget
{
Q_OBJECT
public:
LifeOfGame(QWidget *parent = 0);
protected slots:
void random();
void automatic();
void stop();
void generate();
void clear();
protected:
void paintEvent(QPaintEvent *event);
void mousePressEvent(QMouseEvent *event);
private:
void setPixel(const QPoint &pos, bool flag); // 编辑当前位置状态
int countAliveCell(int i, int j); // 统计当前位置周围有多少活细胞
void updateNext(); // 更新下一状态
void updateCurrent(); // 更新当前状态
QPushButton *randomButton;
QPushButton *automaticButton;
QPushButton *stopButton;
QPushButton *clearButton;
QPushButton *generateButton;
QPushButton *quitButton;
QTimer *timer; // 控制自动更新
int currentState[20][20]; // 记录当前状态
int nextState[20][20]; // 记录下一状态
};
#endif // LIFEOFGAME_H
lifeoftime.cpp
#include <QApplication>
#include <QTranslator>
#include "lifeofgame.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QApplication::setStyle("plastique");
QTranslator qtTranslator;
qtTranslator.load("lifeofgame.qm");
a.installTranslator(&qtTranslator);
LifeOfGame w;
w.show();
return a.exec();
}
main.cpp
#include <QApplication>
#include <QTranslator>
#include "lifeofgame.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QApplication::setStyle("plastique");
QTranslator qtTranslator;
qtTranslator.load("lifeofgame.qm");
a.installTranslator(&qtTranslator);
LifeOfGame w;
w.show();
return a.exec();
}