Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Comando in c++.

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    16

    Comando in c++.

    Io in pratica dovrei scrivere un comando in c++ chiamato quit. se si scrive nel compiler quit dovrebbe uscire scritto uscire scritto Thanks for playing, bye!\n. Questo servirebbe per uscire dal gioco Tower Defense. In pratica dovrebbe terminare il programma.
    Ultima modifica di dany94; 06-04-2014 a 12:13

  2. #2
    Nel "compiler"? suppongo tu intenda nella console...
    Comunque, come fare esattamente dipende da come è strutturato il programma, hai già un punto in cui si attendono comandi da tastiera? Cosa hai provato a fare?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    16
    per adesso ho patto solo questo
    codice:
    #ifndef QUIT_H_INCLUDED
    #define QUIT_H_INCLUDED
    #include "Command.h"
    #include <sstream>
    #include <string>
    #include <iostring>
    
    
    
    
    class QUIT: public command 
    {
          public
          Quit();
          Quit(std::string name);
          virtual int execute (Game & board, std::vector<std::string>&params);
          virtual ~ Quit();
    };
    #endif
    in pratica il comando quit deve terminare il programma e dare come output "Thanks for playing, bye!\n"
    Ultima modifica di MItaly; 06-04-2014 a 22:13

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    16
    ci sono stati dati questi file
    codice:
     
    #ifndef COMMAND_H_INCLUDED
    #define COMMAND_H_INCLUDED
    
    #include <string>
    #include <vector>
    
    class Game;
    
    class Command
    {
      private:
        //--------------------------------------------------------------------------
        // Private copy constructor
    
        Command(const Command& original);
    
        //--------------------------------------------------------------------------
        // Private assignment operator
    
        Command& operator=(const Command& original);
        
        //--------------------------------------------------------------------------
        /// Name of this command
        std::string command_name_;
    
      public:
        //--------------------------------------------------------------------------
        // Consturctor
    
        Command(std::string name);
    
        //--------------------------------------------------------------------------
        // Destructor
    
        virtual ~Command();
    
        //--------------------------------------------------------------------------
        // Executes the command.
        // @param board The board where action should be performed on
        // @param params Possible parameters neede for the execution
        // @return Integer representing the success of the action
    
        virtual int execute(Game& board, std::vector<std::string>& params) = 0;
        
        //--------------------------------------------------------------------------
        // Getter Methods
        const std::string& getName() const;
    };
    
    #endif //COMMAND_H_INCLUDED
    poi questo

    codice:
    #include "Command.h"
    
    
    //------------------------------------------------------------------------------
    Command::Command(std::string name) : command_name_(name)
    {
    }
    
    //------------------------------------------------------------------------------
    Command::~Command()
    {
    }
    
    //------------------------------------------------------------------------------
    const std::string &Command::getName() const
    {
      return command_name_;
    }
    e questo
    codice:
    #include "Game.h"
    #include "Monster.h"
    #include "Tower.h"
    #include "SpeedRatio.h"
    
    //------------------------------------------------------------------------------
    int main()
    {
      Game game( 1000, 20, 5, 3 );
    
      game.addTower( new Tower("Arrow", 1, 3, SpeedRatio(1, 1), &game ) );
      game.addTower( new Tower("Cannon", 3, 3, SpeedRatio(1, 3), &game ) );
    
      game.addMonster( new Monster("Slime", 1, 1, 0, SpeedRatio(1, 2), &game ) );
      game.addMonster( new Monster("Rat", 1, 2, 0, SpeedRatio(1, 1), &game ) );
    
      game.run();
    
      return 0;
    }
    Ultima modifica di MItaly; 06-04-2014 a 22:19

  5. #5
    Be', mi pare abbastanza chiaro... i "comandi" di gioco sono classi che derivano dalla classe command, che richiamano il costruttore della classe base passandoci il nome del comando; l'unico metodo virtuale da reimplementare nel tuo caso execute, che viene richiamato quando l'utente esegue il tuo comando, riceve i vari parametri e restituisce il codice di uscita.

    Nel tuo caso, all'interno della execute ti basterà stampare la stringa che hai riportato sopra e richiamare la funzione C exit() per uscire dal programma (oppure qualcosa di meno brutale, dipende da come è fatto il resto del programma).

    Suppongo poi che il tuo comando andrà registrato in qualche maniera (dovrai istanziare la tua classe e registrarla in qualche maniera all'oggetto game - magari c'è un metodo addCommand).

    P.S.: il codice va inserito tra tag [CODE] ... [/CODE], altrimenti perde l'indentazione; ora li ho aggiunti io, in futuro ricordatene.
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.