Kevin Lin / Mbed 2 deprecated Lab4Farkle

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);
       }
}