逐步放慢循环速度



我一直在试图找到一种方法,可以为我想要编写的骰子程序逐步减慢循环速度。获取一个随机数并显示/比较它并不困难。我的问题是试图弄清楚如何显示随机数字,就像骰子在滚动一样,速度越来越慢,直到我想显示生成的兰特数。

我曾想过在另一个for循环中做一个for环路,并用第一个循环数减去第二个循环数。我不知道是否有更好的方法。所有的seraching都会出现关于程序如何因为没有分配内存而变慢的serachich。

for (int i = 5; i > 0; i--)
{
    for (int j = 1000; j > 0; j -= i)
    {
        cout << randNumGen();
    }
}
#include <thread>
#include <chrono>
:::
for (int i = 5; i > 0; i--)
{
    for (int j = 1000; j > 0; j -= i)
    {
        cout << randNumGen();
        std::this_thread::sleep_for(
             std::chrono::milliseconds(j));
    }
}

http://en.cppreference.com/w/cpp/thread/sleep_for

http://en.cppreference.com/w/cpp/chrono

这可能也值得你去看看C++11随机数,它更像是一种跨平台生成随机数的C++方式。

std::uniform_int_distribution<int> distribution(1, 6); //dice values
std::mt19937 engine; // Mersenne twister MT19937
int random = distribution(engine);

http://en.cppreference.com/w/cpp/numeric/random

#include <thread>
#include <chrono>
#include <random>
#include <iostream>
:::
std::random_device rd;
std::uniform_int_distribution<int> dist(1, 6); //dice values
std::mt19937 mt(rd()); // Mersenne twister MT19937
for (int i = 5; i > 0; i--) //i don't really get what your loops mean
{
    for (int j = 1000; j > 0; j -= i)
    {
        cout << dist(mt);
        std::this_thread::sleep_for(
             std::chrono::milliseconds(j));
    }
}

您需要使用对gcc和clang的c++11支持进行编译,这是-std=c++0x

相关内容

  • 没有找到相关文章

最新更新