時間をスリープさせて動くプログラムをつくりたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
keiko

時間をスリープさせて動くプログラムをつくりたい

#1

投稿記事 by keiko » 15年前

今晩は、宜しくお願いします。
 ランダムに*を発生させて、動いているようなプログラムをつくりたいと思って、下のようなコードをかいて時間をスリープさせてやりましたが、何故か単に表示が遅くなるだけで、実際に*がRand関数
により発生して、ゆれるような表示ができません.
 どこをどのように修正してやればよいのでしょうか。

宜しくご教示お願い致します。
=============================================================

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
char str[20] ;
int pos = 10 ;
int j ;
srand( time( NULL ) ) ;
do
{
Sleep(500);
for(j = 1 ; j < pos ; j ++ )
{
putchar(' ');
}
putchar('*');
putchar('\n');
switch ( rand() %3 )
{
case 0:
continue ;
break;
case 1:
pos = pos + 1 ;
break; default :
pos = pos - 1 ;
break;
}
} while(pos > 0 && pos < 1000 );
return 0 ;
}

softya

Re:時間をスリープさせて動くプログラムをつくりたい

#2

投稿記事 by softya » 15年前

どこが、問題なのでしょうか?
Sleep(500);
と書かれていますので、0.5秒周期で画面が更新されます。
これは意図されて書かれたものでは無いのでしょうか?
それと*自身は左右に揺れて表示されますので、意図通り動いているみたいなのですが。

toyo

Re:時間をスリープさせて動くプログラムをつくりたい

#3

投稿記事 by toyo » 15年前

時間をスリープ == 表示が遅く
ですがスリープに期待している動作は何でしょうか
あと実行環境は何でしょう(OSやコンパイラー等)

たかぎ

Re:時間をスリープさせて動くプログラムをつくりたい

#4

投稿記事 by たかぎ » 15年前

必要な情報を出さなければ、どこで質問しても同じです。
http://oshiete1.goo.ne.jp/qa5357892.html

Re:時間をスリープさせて動くプログラムをつくりたい

#5

投稿記事 by » 15年前

0.5秒置きに表示されて、揺れているように思いますよ。
とりあえず#include <Windows.h>を

lbfuvab

Re:時間をスリープさせて動くプログラムをつくりたい

#6

投稿記事 by lbfuvab » 15年前

こういう事がしたかったのかな?

環境はVC++ 2008 Exp Edition で WinXP Proと仮定しています。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<string.h>
#include<windows.h>

#define MAX (1000)

int main(){
    int pos=10,i;
    
    srand((unsigned)time(NULL));

    while(pos> 0 && pos< MAX){
        system("cls");
        for(i=0;i<MAX;i++)
            putchar((i==pos)?'*':' ');
        
        pos += rand()%3 - 1;

        Sleep(500); 
    }
    return 0;
}

閉鎖

“C言語何でも質問掲示板” へ戻る