Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
pigs: Game.o Die.o Player.o Main.o

Main.o: main.cpp game.h die.h player.h
g++ -c main.cpp

Game.o: game.cpp game.h die.h player.h
g++ -c game.cpp

Die.o: die.cpp die.h
g++ -c die.cpp

Player.o: player.cpp player.h
g++ -c player.cpp
21 changes: 21 additions & 0 deletions die.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/*
* die.cpp
* date - 9/9/2015
*/
#include "die.h"
#include<iostream>
#include<cstdlib>
#include<ctime>


Die::Die()
{
}

int Die::roll()
{
//srand(time(0)); //needs to be called in main once
//and not in a loop
die_result = (rand() % 6 + 1);
return die_result;
}
19 changes: 19 additions & 0 deletions die.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#ifndef DIE_H
#define DIE_H
#include<iostream>
using namespace std;

class Die
{
public:

int roll(); // returns a random number from 1-6
Die(); // Die ctor


private:

int die_result; // actual die roll value

};
#endif
42 changes: 42 additions & 0 deletions game.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#include <iostream>
#include "game.h"

using namespace std;

Game::Game()
{
}

void Game::turn(Player current_player)
{
bool player_keeps_playing;
string userInput;
int roll;
Die *test = new Die();

while (player_keeps_playing)
{
cout << "Would you like to roll again? (yes or no)" << endl;
cin >> userInput;
if (userInput == "yes")
{
player_keeps_playing = true;
roll = test->roll();
turn_score += roll;
}
else
{
current_player.update_score(current_player, turn_score);
player_keeps_playing = false;
}
if (roll == 1)
{
turn_score = 0;
player_keeps_playing = false;
}
else if (current_player.update_score(current_player, turn_score) == true)
{
return;
}
}
}
21 changes: 21 additions & 0 deletions game.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#ifndef GAME_H
#define GAME_H

#include "player.h"
#include "die.h"

#include <string>
using namespace std;

class Game
{
public:
Game();
void turn(Player current_player);

private:
int turn_score;

};

#endif
28 changes: 28 additions & 0 deletions main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#include "game.h"
#include "player.h"

using namespace std;

int main()
{
Game game;

Player *player = new Player();
Player *computer = new Player();
Player *current_player = player;

while (player->get_score() < 100 || computer->get_score() < 100)
{
if (current_player == player)
current_player = computer;
else
current_player = player;
game.turn(current_player);
}
if (current_player == computer)
cout << "Game over! Computer beat you!" << endl;
else
cout << "Game over! You beat a computer, you should be proud of yourself." << endl;

return 0;
}
23 changes: 23 additions & 0 deletions player.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#include"player.h"
using namespace std;

Player::Player()
{
m_score = 0;
}

bool Player::update_score(Player &current_player, int turn_score)
{
m_score = m_score + turn_score;

if(current_player.get_score() >= 100)
return true;
else
return false;
}

int Player::get_score()
{
return m_score;
}

14 changes: 14 additions & 0 deletions player.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#ifndef PLAYER_H
#define PLAYER_H

class Player
{
public:
Player();
bool update_score(Player &current_player, int turn_score);
int get_score();
private:
int m_score;
};

#endif