Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include "p3.h"
- void improperArgument()
- {
- cout << "Improper arguments." << endl;
- exit(EXIT_FAILURE);
- }
- bool argumentTest(int argc, char *argv[])
- {
- string y ("yes");
- string n ("no");
- ifstream boardstm (argv[1]);
- ifstream deckstm (argv[2]);
- if (argc != 6)
- improperArgument();
- if (boardstm.bad()==true)
- improperArgument();
- if (deckstm.bad()==true)
- improperArgument();
- if ((*argv[3]) < 1)
- improperArgument();
- if (atoi(argv[4]) < 1 || atoi(argv[4]) > 1000)
- improperArgument();
- if (y.compare(argv[5]) && n.compare(argv[5]))
- improperArgument();
- return true;
- }
- void initBoard(Game &game, char *argv[])
- {
- string line, num, role, color;
- int sqr;
- ifstream boardstm ( argv[1] );
- for (int i=0; i<game.board.numSquares; i++) {
- game.board.squares[ i ].slide.kind = REGULAR;
- game.board.squares[ i ].slide.color = NONE;
- }
- if ( boardstm.is_open() )
- {
- getline (boardstm,line, ' ');
- getline (boardstm,line);
- game.board.numSquares = atoi( line.c_str() );
- while ( boardstm.good() )
- {
- getline (boardstm, num, ' ');
- sqr = atoi( num.c_str() );
- getline (boardstm, role, ' ');
- getline (boardstm, color);
- if ( role.compare( "BEGIN" ) == 0 )
- game.board.squares[ sqr ].slide.kind = BEGIN;
- else if ( role.compare( "END" ) == 0 )
- game.board.squares[ sqr ].slide.kind = END;
- else if ( role.compare( "STARTSQ" ) == 0 )
- game.board.squares[ sqr ].slide.kind = STARTSQ;
- else if ( role.compare( "HOMESQ" ) == 0 )
- game.board.squares[ sqr ].slide.kind = HOMESQ;
- if ( color.compare( "BLUE" ) == 0 )
- game.board.squares[ sqr ].slide.color = BLUE;
- else if ( color.compare( "YELLOW" ) == 0 )
- game.board.squares[ sqr ].slide.color = YELLOW;
- else if ( color.compare( "GREEN" ) == 0 )
- game.board.squares[ sqr ].slide.color = GREEN;
- else if ( color.compare( "RED" ) == 0 )
- game.board.squares[ sqr ].slide.color = RED;
- }
- }
- }
- void initDeck(Game &game, char *argv[])
- {
- string num, type;
- int n = 0;
- ifstream deckstm ( argv[2] );
- if ( deckstm.is_open() )
- {
- getline (deckstm,num);
- game.deck.numCards = atoi( num.c_str() );
- while ( deckstm.eof()==false )
- {
- int i = 0;
- getline (deckstm,type,' ');
- getline (deckstm,num);
- n = atoi( num.c_str() );
- game.deck.cards[ i ].value = n;
- if ( type.compare( "START") == 0 )
- game.deck.cards[ i ].type = START;
- else if ( type.compare( "FORWARD") == 0)
- game.deck.cards[ i ].type = FORWARD;
- else if ( type.compare( "BACKWARD") == 0)
- game.deck.cards[ i ].type = BACKWARD;
- else if ( type.compare( "SWAP") == 0)
- game.deck.cards[ i ].type = SWAP;
- else if ( type.compare( "SORRY") == 0)
- game.deck.cards[ i ].type = SORRY;
- cout << game.deck.cards[i].value << endl;
- i++;
- }
- }
- }
- bool initGame(Game &game, int argc, char *argv[])
- {
- string y = ("yes");
- game.numPlayers = atoi( argv[3] );
- game.rounds = atoi ( argv[4] );
- if( y.compare( argv[5] ) )
- game.shuffle = true;
- else
- game.shuffle = false;
- initBoard(game, argv);
- initDeck(game, argv);
- // for( int i = 0; i < 10; i++)
- // cout << game.deck.cards[i].value << endl;
- return true;
- }
- int myMain(int argc, char *argv[])
- {
- Game game;
- argumentTest(argc, argv);
- initGame(game, argc, argv);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement