Prima volta poster e part-time perl noobie.Come fermare l'input in Perl?
Sto facendo un gioco di riflessi. Ecco l'output -
__________________________________________________________________________
Reflex game initiated. Press ENTER to begin the game, and then press ENTER
after the asterisks are printed to measure your reflexes!.
*************************
Your result: 0.285606 seconds.
logout
[Process completed]
__________________________________________________________________________
C'è un piccolo problema però - C'è 0-10 secondi (sulla base di una variabile casuale) dopo aver premuto Invio per avviare il gioco e prima che le stelle sono stampati. Durante quel tempo, se il giocatore preme ENTER, viene registrato come il tempo riflesso. Quindi ho bisogno di un modo per impedire al mio codice di leggere il loro pulsante ENTER prima che le stelle vengano stampate. Il codice -
#!/usr/bin/perl
use Time::HiRes qw(sleep);
use Time::HiRes qw(gettimeofday);
#random delay variable
$random_number = rand();
print "Reflex game initiated. Press ENTER to begin the game, and then press ENTER after the asterisks are printed to measure your reflexes!.\n";
#begin button
$begin = <>;
#waits x milliseconds
sleep(10*$random_number);
#pre-game
$start = [ Time::HiRes::gettimeofday() ];
print "\n****************************\n";
#user presses enter
$stop = <>;
#post game
$elapsed = Time::HiRes::tv_interval($start);
#delay time print
print "Your result: ".$elapsed." seconds.\n";
le stelle non sono state stampate nell'output, mi dispiace. sono proprio tra i "tuoi relexes" e "stampati per misurare i tuoi riflessi". – user1472747
possibile duplicato di [Flushing Perl STDIN buffer] (http://stackoverflow.com/questions/7602861/flushing-perl-stdin-buffer) – pilcrow