|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2000
Città: Verona
Messaggi: 176
|
[Principiante] Countdown Timer
Mi serve un aiuto per capire come programmare un semplice timer countdown senza interfaccia grafica e senza fronzoli.
Dovrebbe iniziare il conto alla rovescia quando si preme invio, e se arriva a zero esegue un suono .wav, e deve funzionare usando qualsiasi altro programma. Con quale linguaggio è più facile programmarlo tra java e c++? Esiste già? E' complesso/Servono parecchie linee di codice? Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Ciao,
ovviamente in C puoi trovare praticamente qualsiasi cosa, ed anche delle librerie per fare questo timer. Naturalmente dovrai cercare quella adatta alla tua piattaforma (Win? Linux? Unix? ...). In Java esistono i timer (anzi, ne esiste piu' di uno) e sono gestiti in maniera standard. I piu' utilizzati sono: java.util.Timer e javax.swing.Timer Quest'ultimo prevede che ci sia un'interfaccia grafica. Con questa premessa e' estremamente semplice da usare (ti basta implementare la ActionListener), comunque anche l'altro ha caratteristiche di semplicita' (dovrai estendere TimerTask). High Flying Sottovento |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2000
Città: Verona
Messaggi: 176
|
Grazie!
Altra domanda, una volta finito il programma è sicuro che funziona mentre sono in esecuzione giochi, office o altro? Oppure bisogna scrivere del codice apposito? |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Facci vedere come l'hai implementato...l'importante è che non ci sia un'attesa attiva...
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Oct 2000
Città: Verona
Messaggi: 176
|
Sono ancora in alto mare, il compilatore mi dice
"[Linker error] undefined reference to `PlaySoundA@12' " a parte questo non ho idea di come far partire il countdown premendo il tasto "enter".. cmq per adesso il codice è questo: /* Conto alla rovescia */ #include <stdio.h> #include <time.h> #include <windows.h> #include <mmsystem.h> void aspetta ( int seconds ) { clock_t fine; fine = clock () + seconds * CLK_TCK ; while (clock() < fine) {} } int main () { int n; printf ("Inizio conto alla rovescia...\n"); for (n=10; n>0; n--) { printf ("%d\n",n); aspetta (1); } PlaySound("esplosione.wav",NULL,SND_FILENAME|SND_ASYNC); return 0; } Help Ultima modifica di duobutch : 20-12-2005 alle 13:45. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Devi linkarti al file winmm.lib o libwinmm.a dalle impostazioni del tuo progetto
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Codice:
/* Conto alla rovescia */
#include <stdio.h>
#include <time.h>
#include <windows.h>
#include <mmsystem.h>
void aspetta ( int seconds )
{
clock_t fine;
fine = clock () + seconds * CLK_TCK ;
while (clock() < fine) { Sleep(50);}
}
int main ()
{
int n;
printf ("Inizio conto alla rovescia...\n");
for (n=10; n>0; n--)
{
printf ("%d\n",n);
aspetta (1);
}
PlaySound("esplosione.wav",NULL,SND_FILENAME|SND_ASYNC);
return 0;
}
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Oct 2000
Città: Verona
Messaggi: 176
|
Detto fatto, così funziona, grazie!
Il problema principale ora è farlo funzionare non in una finestra dos (che mi rallenta notevolmente il pc, il processore diventa occupato al 100% Ci sto lavorando sopra, cmq se arrivano suggerimenti tanto meglio Ultima modifica di duobutch : 21-12-2005 alle 13:17. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:29.



















