Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed 4DGL-uLCD-SE PinDetect
die.cpp
- Committer:
- klin315
- Date:
- 2021-10-26
- Revision:
- 0:8ee41d0deef7
- Child:
- 1:3cd6e5938144
File content as of revision 0:8ee41d0deef7:
#include "die.h"
//Constructors
Die::Die(){
value = 1;
}
Die::Die(int val){
value = val;
}
void Die::setValue(int val){
value = val;
}
int Die::getValue(){
return value;
}
//Public Methods
void Die::rollDie(){
value = rand()%6+1;
}
void Die::displayOneDice(int pos, uLCD_4DGL& screen){
int yPos = 42*(((pos-1)/3)+1)-21;
int xPos = 42*(((pos-1)%3)+1)-21;
int width = 20;
screen.filled_rectangle(xPos-width, yPos-width, xPos+width, yPos+width, WHITE);
screen.filled_circle(xPos ,yPos, 5, BLACK);
}
void Die::displayTwoDice(int pos, uLCD_4DGL& screen){
int yPos = 42*(((pos-1)/3)+1)-21;
int xPos = 42*(((pos-1)%3)+1)-21;
int width = 20;
screen.filled_rectangle(xPos-width, yPos-width, xPos+width, yPos+width, WHITE);
screen.filled_circle(xPos+12,yPos+12,5,BLACK);
screen.filled_circle(xPos-12,yPos-12,5,BLACK);
}
void Die::displayThreeDice(int pos, uLCD_4DGL& screen){
int xPos = 42*(((pos-1)/3)+1)-21;
int yPos = 42*(((pos-1)%3)+1)-21;
int width = 20;
screen.filled_rectangle(xPos-width, yPos-width, xPos+width, yPos+width, WHITE);
screen.filled_circle(xPos+12,yPos+12, 5 ,BLACK);
screen.filled_circle(xPos,yPos, 5 ,BLACK);
screen.filled_circle(xPos - 12,yPos - 12, 5,BLACK);
}
void Die::displayFourDice(int pos, uLCD_4DGL& screen){
int yPos = 42*(((pos-1)/3)+1)-21;
int xPos = 42*(((pos-1)%3)+1)-21;
int width = 20;
screen.filled_rectangle(xPos-width, yPos-width, xPos+width, yPos+width, WHITE);
screen.filled_circle(xPos+12 , yPos+12,5, BLACK);
screen.filled_circle(xPos + 12, yPos - 12, 5, BLACK);
screen.filled_circle(xPos - 12, yPos + 12, 5, BLACK);
screen.filled_circle(xPos - 12, yPos - 12, 5, BLACK);
}
void Die::displayFiveDice(int pos, uLCD_4DGL& screen){
int yPos = 42*(((pos-1)/3)+1)-21;
int xPos = 42*(((pos-1)%3)+1)-21;
int width = 20;
screen.filled_rectangle(xPos-width, yPos-width, xPos+width, yPos+width, WHITE);
screen.filled_circle(xPos,yPos,5 , BLACK);
screen.filled_circle(xPos+12, yPos+12, 5, BLACK);
screen.filled_circle(xPos+12,yPos-12, 5, BLACK);
screen.filled_circle(xPos-12,yPos+12,5,BLACK);
screen.filled_circle(xPos-12,yPos-12,5,BLACK);
}
void Die::displaySixDice(int pos, uLCD_4DGL& scr){
int yPos = 42*(((pos-1)/3)+1)-21;
int xPos = 42*(((pos-1)%3)+1)-21;
int width = 20;
scr.filled_rectangle(xPos-width, yPos-width, xPos+width, yPos+width, WHITE);
scr.filled_circle(xPos-12,yPos,5,BLACK);
scr.filled_circle(xPos+12,yPos,5,BLACK);
scr.filled_circle(xPos+12,yPos+12,5,BLACK);
scr.filled_circle(xPos+12,yPos-12,5,BLACK);
scr.filled_circle(xPos-12,yPos+12,5,BLACK);
scr.filled_circle(xPos-12,yPos-12,5, BLACK);
}
//display Die based on value
void Die::displayDie(int position, uLCD_4DGL& screen){
if(value == 1) {
displayOneDice(position,screen);
}
if(value == 2){
displayTwoDice(position,screen);
}
if(value == 3){
displayThreeDice(position,screen);
}
if(value == 4){
displayFourDice(position,screen);
}
if(value == 5) {
displayFiveDice(position,screen);
}
if(value == 6){
displaySixDice(position,screen);
}
}