すみません、始めたばっかでよく分からないんですが、
3桁程度をランダム表示させて一定時間経つごとに1桁ずつ数字を確定するみたいな事がしたいです。(な○でも鑑定団の結果出たときみたいな数字の出し方がしたいです。)
コードを教えていただきたいです。
よろしくお願いします。
数字をドゥルルルルルルってするみたいなやつ
Re: 数字をドゥルルルルルルってするみたいなやつ
コンパイラは何ですか?
#include <stdio.h> // putchar, fflush
#include <stdlib.h> // rand, srand
#include <time.h> // time
#if defined(__GNUC__)
#include <unistd.h> // usleep
#define SLEEP(msec) usleep(msec * 1000)
#else
#include <windows.h> // Sleep
#define SLEEP(msec) Sleep(msec)
#endif
#define N 8
void display(void)
{
int i, j, k, a[N];
srand(time(0));
for (i = N; i > 0; i--) {
for (j = 0; j < 6; j++) {
putchar('\r');
for (k = 0; k < i; k++) putchar(a[k] = rand() % 10 + '0');
for (k = i; k < N; k++) putchar(a[k]);
putchar('\a');
fflush(stdout);
SLEEP(100);
}
}
putchar('\n');
}
int main(void)
{
char buf[256];
do {
display();
printf("once again? (y/n) ");
} while (fgets(buf, sizeof buf, stdin) && buf[0] == 'y');
}
Re: 数字をドゥルルルルルルってするみたいなやつ
コードありがとうございます。試してみたところ、ちゃんと動きました。
とても参考になります。
1つご質問させていただきます。
SLEEPだと処理停止してしまうので、スムーズに動くような処理ってどうすればいいでしょうか?
自分の今作ってるコードに組み込みたいので、よろしくお願いします。
とても参考になります。
1つご質問させていただきます。
SLEEPだと処理停止してしまうので、スムーズに動くような処理ってどうすればいいでしょうか?
自分の今作ってるコードに組み込みたいので、よろしくお願いします。
Re: 数字をドゥルルルルルルってするみたいなやつ
情報不足のため、よろしくお願いされません。
停止してしまう処理とはどんなものですか?
今作っているコードとはどんなものですか?
OS は何ですか? Windows それとも Linux?
言語は C++ だそうですが、
コンパイラは何ですか? VC++ それとも gcc?
何かライブラリを使っていますか? DXライブラリ それとも OpenCV?
Windows 10 で Visual Studio 2017 で DXライブラリの例です。
#include "DxLib.h"
void update(char *str, const char *s, int k)
{
for (int i = 0; i < k; i++)
str[i] = GetRand(9) + '0';
for (int i = k; i < 8; i++)
str[i] = s[i];
str[8] = '\0';
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK);
int y = 40, t = 0, k = 8;
char str[9];
unsigned c1 = GetColor(0, 255, 0), c2 = GetColor(0, 255, 255);
while (!ScreenFlip() && !ProcessMessage() && !ClearDrawScreen()) {
int t1 = t % 120 - 60;
y = 40 + 0.1 * t1 * t1;
DrawBox(300, y, 300 + 40, y + 30, c1, TRUE);
if (t % 6 == 0) update(str, "12345678", k);
if (k > 0 && t % 30 == 0) k--;
DrawString(100, 100, str, c2);
if (CheckHitKey(KEY_INPUT_ESCAPE)) k = 8;
t++;
}
DxLib_End();
return 0;
}