别小看任何人,越不起眼的人往往会做些让人想不到的事。
你画我猜
你来比划我来猜
规则:一局游戏180s,答对得分+1,题目数+1;答错题目+1,不加分;显示得分
原型图
代码细节
#include "widget.h"
#include "ui_widget.h"
#include <QTimer>
#include <QString>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//连接开始游戏槽函数,隐藏对,错按钮,隐藏题目数,得分数
connect(ui->start_btn,SIGNAL(clicked(bool)),this,SLOT(timer()));
ui->false_btn->hide();
ui->true_btn->hide();
ui->num->hide();
ui->sum->hide();
//连接对按钮槽函数,实现题目数+1,得分+1
connect(ui->true_btn,SIGNAL(clicked(bool)),this,SLOT(true_ti()));
//连接错按钮槽函数,实现题目数+1,得分+0
connect(ui->false_btn,SIGNAL(clicked(bool)),this,SLOT(false_ti()));
}
Widget::~Widget()
{
delete ui;
}
void Widget::timer()
{
timerid = new QTimer(this);
timerid->start(1000);
connect(timerid,&QTimer::timeout,this,&Widget::setTimetext);
//间隔时间
ui->false_btn->show();
ui->true_btn->show();
ui->start_btn->hide();
ui->num->show();
ui->sum->show();
//开始答题,显示题目,显示答题数
ui->ti_label->setText(chengyu[rand() % 14]);
QString question = "第题";
question.insert(1,QString::number(nums));
ui->num->setText(question);
}
void Widget::setTimetext()
{
static int ti = 180;
ti--;
if(ti <= 0)
{
//停止定时器,显示成绩
timerid->stop();
QString defen = "得分:";
defen.append(QString::number(sums));
ui->ti_label->setText(defen);
//显示开始按钮,隐藏对,错按钮
ui->start_btn->show();
ui->false_btn->hide();
ui->true_btn->hide();
//题目数清零,得分清零,倒计时回退
ti = 180;
nums = 1;
sums = 0;
QString question = "第题";
question.insert(1,QString::number(nums));
ui->num->setText(question);
ui->sum->setText("得分:");
}
ui->jishi->setText(QString::number(ti));
}
void Widget::true_ti()
{
nums++;
ui->num->setText(QString::number(nums));
sums++;
ui->sum->setText(QString::number(sums));
//更换题目,更新答题数,更新得分数
QString question = "第题";
question.insert(1,QString::number(nums));
ui->num->setText(question);
ui->ti_label->setText(chengyu[rand() % 14]);
QString defen = "得分:";
defen.insert(3,QString::number(sums));
ui->sum->setText(defen);
}
void Widget::false_ti()
{
nums++;
ui->num->setText(QString::number(nums));
//答错之后更换题目
QString question = "第题";
question.insert(1,QString::number(nums));
ui->num->setText(question);
ui->ti_label->setText(chengyu[rand() % 14]);
ui->ti_label->setText(chengyu[rand() % 14]);
}
头文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPushButton>
#include <QString>
#include <QTimer>
#include "stdlib.h"
#include "time.h"
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
QTimer* timerid;
int nums=1;
int sums=0;
QString chengyu[14]={"唯我独尊","天下第一","如火如荼","一席之地","日新月异","天马行空","未雨绸缪","人山人海","心血来潮","雪上加霜","雪中送炭","天衣无缝","发扬光大","风云人物"};
public slots:
void timer();
void setTimetext();
void true_ti();
void false_ti();
};
#endif // WIDGET_H
效果图
点名器
原型图
代码
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowTitle("点名器");
srand(time(NULL));
timerid = new QTimer(this);
ui->zhanting->hide();
connect(timerid,SIGNAL(timeout()),this,SLOT(mingname()));
connect(ui->kaishi,SIGNAL(clicked(bool)),this,SLOT(start()));
connect(ui->zhanting,SIGNAL(clicked(bool)),this,SLOT(stoptime()));
}
Widget::~Widget()
{
delete ui;
}
void Widget::start()
{
timerid->start(60);
ui->kaishi->hide();
ui->zhanting->show();
}
void Widget::stoptime()
{
timerid->stop();
ui->kaishi->show();
ui->zhanting->hide();
}
void Widget::mingname()
{
QString name[11]={"x","xx","xx","#","##","###","@","@@","@@@","$","$$"};
int x=rand() % 11;
ui->mingdan->setText(name[x]);
}
头文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPushButton>
#include <stdlib.h>
#include <time.h>
#include <QTimer>
#include <QString>
#include <QDebug>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
QTimer *timerid;
private:
Ui::Widget *ui;
public slots:
void start();
void stoptime();
void mingname();
};
#endif // WIDGET_H