Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    45

    [C++] Aiuto per costruzione di un semaforo

    Salve a tutti. Avrei un problema.
    Premetto che sono all'inizio con la programmazione... In poche parole sto provando a progettare un semaforo con Dev-C++.
    Con l'aiuto dei cicli, del gotoxy e con l'uso degli asterischi ho realizzato la struttura del semaforo. Ecco uno screenshot,

    http://prntscr.com/63i52

    Per il rosso, il verde e il giallo non ho riscontrato alcun problema, i problemi sorgono quando devo fare il giallo lampeggiante... Avete suggerimenti? Eccovi il codice:
    (infondo al codice trovare il download per il conio.c, un include<> che ho "rubato" da scuola che serve per attivare il gotoxy(); e il textcolor(); )


    #include <iostream>
    #include <conio.c>
    using namespace std;
    int main (){
    //Dichiarazione
    int i,scelta;
    //Struttura Semaforo
    gotoxy(55,1);
    cout<<"*****************";
    cout<<endl;
    gotoxy(55,8);
    cout<<"*****************";
    cout<<endl;
    gotoxy(55,16);
    cout<<"*****************";
    cout<<endl;
    gotoxy(55,23);
    cout<<"*****************";
    cout<<endl;
    for (i=1;i<23;i++) {
    gotoxy(55,i);
    cout<<"*";}
    for (i=1;i<24;i++) {
    gotoxy(72,i);
    cout<<"*";}

    //Titolo
    gotoxy(0,0);
    textcolor(15);
    cout<<"Il semaforo"<<endl;
    cout<<endl;
    //Colore Semaforo
    do {
    textcolor(8);
    cout<<"1. Rosso\n";
    cout<<"2. Giallo\n";
    cout<<"3. Verde\n";
    cout<<"4. Guasto (Giallo Intermittente)\n";
    cout<<"0. Chiudi il semaforo!\n";
    cout<<endl;
    cout<<"Scegli colore semaforo."<<endl;
    cin>>scelta;
    cout<<endl;
    switch (scelta) {
    case 1://Rosso
    for (i=2;i<8;i++) {
    textcolor(68);
    gotoxy(56,i);
    cout<<"****************"<<endl;
    }
    break;

    case 2://Giallo
    for (i=9;i<16;i++) {
    textcolor(102);
    gotoxy(56,i);
    cout<<"****************"<<endl;
    }
    break;

    case 3://Verde
    for (i=17;i<23;i++) {
    textcolor(34);
    gotoxy(56,i);
    cout<<"****************"<<endl;
    }
    break;

    case 4://Guasto
    do {

    textcolor(102);
    gotoxy(56,9);
    cout<<"****************"<<endl;
    gotoxy(56,10);
    cout<<"****************"<<endl;
    gotoxy(56,11);
    cout<<"****************"<<endl;
    gotoxy(56,12);
    cout<<"****************"<<endl;
    gotoxy(56,13);
    cout<<"****************"<<endl;
    gotoxy(56,14);
    cout<<"****************"<<endl;
    gotoxy(56,15);
    cout<<"****************"<<endl;

    }
    while (i!=0);

    break;



    default:
    cout<<"La scelta del colore semaforo e' errata.\n";
    cout<<endl;
    break;

    }
    }
    while (scelta!=0);
    return 0;

    cout<<endl;
    system("pause");
    }



    http://www.mediafire.com/?4614sqd4b36qayb

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: [C++] Aiuto per costruzione di un semaforo

    Originariamente inviato da Chunky2
    i problemi sorgono quando devo fare il giallo lampeggiante... Avete suggerimenti?
    Quali problemi?

    Devi visualizzare il colore, attendere un po' di tempo, cancellare il colore, attendere un po' di tempo e di nuovo in un ciclo ... Devi permettere di uscire dal ciclo in base alla pressione di un tasto.

    conio.c
    Non è un file include ma è il codice che implementa le due funzioni gotoxy e textcolor con le API di Windows. Non dovrebbe essere "incluso" in quel modo ma compilato in un progetto insieme al tuo file.c.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    45

    Ti dispiacerebbe dirmi la codifica in C++? Soltanto del case 4, grazie.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    No ... niente codifica ... non ho tanto tempo, ma se ci provi tu possiamo vedere gli errori ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    45
    Il problema è che non saprei appunto come cancellare il colore... Se faccio clrscr(); cancella tutto e non solo il colore, c'è un comando specifico?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Se usi il colore dello sfondo e visualizzi degli spazi?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    45
    Sei un genio

    Ecco qui, funziona alla perfezione, ti ringrazio

    case 4://Guasto
    do {
    for(i=0;i<99999999;i++);{
    textcolor(102);
    for(i=9;i<16;i++){
    gotoxy(56,i);
    cout<<"****************"<<endl;}}
    for(i=0;i<99999999;i++);{
    textcolor(0);
    for(i=9;i<16;i++){
    gotoxy(56,i);
    cout<<"****************"<<endl;}}
    }
    while (i!=0);

    break;

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Chunky2
    Ecco qui, funziona alla perfezione, ti ringrazio
    Di nulla ... era un tipo di codice che si usava quando avevo la tua giovane età, con il Commodore VIC20 ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    45
    Anche se ci sarebbe un dubbio che vaga nella mia testa... Quando io premo 1, e subito dopo 2, rimane acceso sia il rosso e sia il giallo... Come posso alla fine di ogni case riportare il programma alla fase iniziale? Ringrazio anticipatamente

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Prepara una funzione con il codice usato per preparare il semaforo e chiamala quando ti serve.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.