diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..0ef5aef --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,23 @@ +name: Build C++ + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + install: + runs-on: ubuntu-latest + steps: + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y -f build-essential g++ cmake + build: + needs: install + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Build project + run: g++ GameDie.cpp -std=c++17 -Wall -Wextra -Werror -o test diff --git a/GameDie.cpp b/GameDie.cpp index d512405..7361a1b 100644 --- a/GameDie.cpp +++ b/GameDie.cpp @@ -44,3 +44,26 @@ int GameDie::roll() vector GameDie::get_distribution(){ return counter; } +vector GameDie::get_percentages(){ + int rolls = 0; + vector pVector; + for (int i = 0; i < (int)counter.size(); i++) + { + rolls += counter[i]; + } + //check if rolls is 0, fill vector with 0s if true + if( rolls == 0) + { + for(int i = 0; i < FACES; i++){ + pVector.push_back(0);} + }//otherwise get percentage and pushback onto pVector + else + { + for(int i = 0; i < FACES; i++) + { + pVector.push_back((double)counter[i] / (double)rolls); + } + } + + return pVector; +} diff --git a/GameDie.h b/GameDie.h index 54d69ba..3cb5d6b 100644 --- a/GameDie.h +++ b/GameDie.h @@ -11,9 +11,11 @@ class GameDie GameDie(unsigned int); int roll(); vector get_distribution(); + vector get_percentages(); private: vector counter; + vector pVector; const static int FACES = 6; }; diff --git a/README.md b/README.md index 9a8fe2c..2c43cb6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +Status Badge: [![Build C++](https://github.com/aalfaro5/GameDie/actions/workflows/main.yml/badge.svg)](https://github.com/aalfaro5/GameDie/actions/workflows/main.yml) + # GameDie This repository provides a class that represents a game die, such as the @@ -23,4 +25,4 @@ Once built, run the image: ...or run it with a bind mount to the current source code: -`docker run --mount type=bind,source="$(pwd)",target=/usr/src -it cpp-container` \ No newline at end of file +`docker run --mount type=bind,source="$(pwd)",target=/usr/src -it cpp-container`