jack.cpp

来自「压缩包里有教材<<C++模式设计-基于QT4开源跨平台开发框架&gt」· C++ 代码 · 共 61 行

CPP
61
字号
#include "jack.h"#include <stdlib.h>   // for random function#include <QDebug>#include <QStringList>#include <QInputDialog>#include <logger.h>Jack::Jack() :  m_Delay(1000), m_BeanstalkChopped(false) {    m_Stuff << "magic harp" << "goose that lays golden eggs"           << "magic hamster" << "killer rabbit" << "singing fly" ;}void Jack::setDelay(int newdelay) {    m_Delay = newdelay;}void Jack::killGiant() {    if (!m_BeanstalkChopped) {        m_BeanstalkChopped = true;        Logger* l = Logger::getLogger("jack");        m_Stuff.clear();        m_Fifo.clear();        l->info("(Chopping down the beanstalk...)");        emit chopBeanstalk();//        l->info(QString("Say good night, giant!"));    }}void Jack::run() {    Logger* l = Logger::getLogger("jack");    int q = 4;  // for setting probability of finding an item.    srandom(time(0));   // seed the random function    int i(0);    l->info("Wow! I'm in the giant's house. I can steal his stuff.");    msleep(2 * m_Delay);      while (m_Stuff.count()) {        msleep(m_Delay);                if (m_Fifo.isEmpty()) {            msleep(m_Delay*2);            i = 0;            foreach (QString s, m_Stuff)                m_Fifo << s;            continue;        }        QString item = m_Fifo.dequeue();        if (random() < RAND_MAX/q) {            i = m_Stuff.indexOf(item);            m_Stuff.removeAt(i);            item = "I FOUND the " + item + "!!";        }        else            item = "(searching for the " + item + " ...)";        l->info(item);        msleep(2);    }    killGiant();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?