Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.92 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include "p3.h"
  5.  
  6. void improperArgument()
  7. {
  8.    cout << "Improper arguments." << endl;
  9.    exit(EXIT_FAILURE);
  10. }
  11.  
  12. bool argumentTest(int argc, char *argv[])
  13. {
  14.    string y ("yes");
  15.    string n ("no");
  16.    ifstream boardstm (argv[1]);
  17.    ifstream deckstm (argv[2]);
  18.    
  19.    if (argc != 6)
  20.       improperArgument();
  21.    
  22.    if (boardstm.bad()==true)
  23.       improperArgument();
  24.    
  25.    if (deckstm.bad()==true)
  26.       improperArgument();
  27.    
  28.    if ((*argv[3]) < 1)
  29.       improperArgument();
  30.    
  31.    if (atoi(argv[4]) < 1 || atoi(argv[4]) > 1000)
  32.       improperArgument();
  33.    
  34.    if (y.compare(argv[5]) && n.compare(argv[5]))
  35.       improperArgument();
  36.  
  37.    return true;
  38. }
  39.    
  40. void initBoard(Game &game, char *argv[])
  41. {
  42.    string line, num, role, color;
  43.    int sqr;
  44.    ifstream boardstm ( argv[1] );
  45.    
  46.    for (int i=0; i<game.board.numSquares; i++) {
  47.       game.board.squares[ i ].slide.kind = REGULAR;
  48.       game.board.squares[ i ].slide.color = NONE;
  49.    }
  50.    
  51.    if ( boardstm.is_open() )
  52.    {
  53.       getline (boardstm,line, ' ');
  54.       getline (boardstm,line);
  55.       game.board.numSquares = atoi( line.c_str() );
  56.      
  57.       while ( boardstm.good() )
  58.       {
  59.          getline (boardstm, num, ' ');
  60.          sqr = atoi( num.c_str() );
  61.          getline (boardstm, role, ' ');
  62.          getline (boardstm, color);
  63.        
  64.          if ( role.compare( "BEGIN" ) == 0 )
  65.             game.board.squares[ sqr ].slide.kind = BEGIN;
  66.          else if ( role.compare( "END" ) == 0 )
  67.             game.board.squares[ sqr ].slide.kind = END;
  68.          else if ( role.compare( "STARTSQ" ) == 0 )
  69.             game.board.squares[ sqr ].slide.kind = STARTSQ;
  70.          else if ( role.compare( "HOMESQ" ) == 0 )
  71.             game.board.squares[ sqr ].slide.kind = HOMESQ;
  72.          
  73.          
  74.          if ( color.compare( "BLUE" ) == 0 )
  75.             game.board.squares[ sqr ].slide.color = BLUE;
  76.          else if ( color.compare( "YELLOW" ) == 0 )
  77.             game.board.squares[ sqr ].slide.color = YELLOW;
  78.          else if ( color.compare( "GREEN" ) == 0 )
  79.             game.board.squares[ sqr ].slide.color = GREEN;
  80.          else if ( color.compare( "RED" ) == 0 )
  81.             game.board.squares[ sqr ].slide.color = RED;
  82.  
  83.       }
  84.    }
  85.    
  86. }
  87.    
  88.  
  89. void initDeck(Game &game, char *argv[])
  90. {
  91.    string num, type;
  92.    int n = 0;
  93.    ifstream deckstm ( argv[2] );
  94.    
  95.    if ( deckstm.is_open() )
  96.    {
  97.       getline (deckstm,num);
  98.       game.deck.numCards = atoi( num.c_str() );
  99.      
  100.       while ( deckstm.eof()==false )
  101.       {
  102.          int i = 0;
  103.          
  104.          getline (deckstm,type,' ');
  105.          getline (deckstm,num);
  106.          n = atoi( num.c_str() );
  107.          
  108.          game.deck.cards[ i ].value = n;
  109.          
  110.          
  111.          if ( type.compare( "START") == 0 )
  112.             game.deck.cards[ i ].type = START;
  113.          else if ( type.compare( "FORWARD") == 0)
  114.             game.deck.cards[ i ].type = FORWARD;
  115.          else if ( type.compare( "BACKWARD") == 0)
  116.             game.deck.cards[ i ].type = BACKWARD;
  117.          else if ( type.compare( "SWAP") == 0)
  118.             game.deck.cards[ i ].type = SWAP;
  119.          else if ( type.compare( "SORRY") == 0)
  120.             game.deck.cards[ i ].type = SORRY;
  121.          
  122.          cout << game.deck.cards[i].value << endl;
  123.          i++;
  124.       }
  125.    }
  126. }
  127.  
  128. bool initGame(Game &game, int argc, char *argv[])
  129. {
  130.    string y = ("yes");
  131.    game.numPlayers = atoi( argv[3] );
  132.    game.rounds = atoi ( argv[4] );
  133.    
  134.    if( y.compare( argv[5] ) )
  135.       game.shuffle = true;
  136.    else
  137.       game.shuffle = false;
  138.  
  139.    
  140.    initBoard(game, argv);
  141.    initDeck(game, argv);
  142.    
  143.  //  for( int i = 0; i < 10; i++)
  144.    //   cout << game.deck.cards[i].value << endl;
  145.  
  146.    return true;
  147. }
  148.      
  149. int myMain(int argc, char *argv[])
  150. {
  151.    Game game;
  152.    
  153.    argumentTest(argc, argv);
  154.    initGame(game, argc, argv);
  155.    return 0;
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement