Andrew Shi / Mbed 2 deprecated Lab4

Dependencies:   mbed 4DGL-uLCD-SE PinDetect

Committer:
ashi31
Date:
Fri Oct 22 03:57:47 2021 +0000
Revision:
0:7d8ffdfdb16e
Lab4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ashi31 0:7d8ffdfdb16e 1 #include "Die.h"
ashi31 0:7d8ffdfdb16e 2
ashi31 0:7d8ffdfdb16e 3 #include <string>
ashi31 0:7d8ffdfdb16e 4 #include <iostream>
ashi31 0:7d8ffdfdb16e 5
ashi31 0:7d8ffdfdb16e 6 #include <stdlib.h> /* srand, rand */
ashi31 0:7d8ffdfdb16e 7 #include <time.h> /* time */
ashi31 0:7d8ffdfdb16e 8
ashi31 0:7d8ffdfdb16e 9 #define WHITE 0xFFFFFF
ashi31 0:7d8ffdfdb16e 10
ashi31 0:7d8ffdfdb16e 11 using namespace std;
ashi31 0:7d8ffdfdb16e 12
ashi31 0:7d8ffdfdb16e 13 //Constructors
ashi31 0:7d8ffdfdb16e 14 Die::Die(){
ashi31 0:7d8ffdfdb16e 15 val = 1;
ashi31 0:7d8ffdfdb16e 16 }
ashi31 0:7d8ffdfdb16e 17
ashi31 0:7d8ffdfdb16e 18 Die::Die(int v){
ashi31 0:7d8ffdfdb16e 19 if((v > 0) && (v < 7)){
ashi31 0:7d8ffdfdb16e 20 val = v;
ashi31 0:7d8ffdfdb16e 21 }
ashi31 0:7d8ffdfdb16e 22 else{
ashi31 0:7d8ffdfdb16e 23 val = 1;
ashi31 0:7d8ffdfdb16e 24 }
ashi31 0:7d8ffdfdb16e 25 }
ashi31 0:7d8ffdfdb16e 26
ashi31 0:7d8ffdfdb16e 27 //Public Methods
ashi31 0:7d8ffdfdb16e 28 void Die::rollDie(){
ashi31 0:7d8ffdfdb16e 29
ashi31 0:7d8ffdfdb16e 30 val = rand()%6+1;
ashi31 0:7d8ffdfdb16e 31 }
ashi31 0:7d8ffdfdb16e 32
ashi31 0:7d8ffdfdb16e 33 //6 draw functions
ashi31 0:7d8ffdfdb16e 34 void Die::draw1(int pos, uLCD_4DGL& scr){
ashi31 0:7d8ffdfdb16e 35 int ycent = 42*(((pos-1)/3)+1)-21;
ashi31 0:7d8ffdfdb16e 36 int xcent = 42*(((pos-1)%3)+1)-21;
ashi31 0:7d8ffdfdb16e 37
ashi31 0:7d8ffdfdb16e 38 int width = 20;
ashi31 0:7d8ffdfdb16e 39
ashi31 0:7d8ffdfdb16e 40 int rad = 5;
ashi31 0:7d8ffdfdb16e 41
ashi31 0:7d8ffdfdb16e 42 scr.rectangle(xcent-width, ycent-width, xcent+width, ycent+width, WHITE);
ashi31 0:7d8ffdfdb16e 43 scr.filled_circle(xcent,ycent,rad,WHITE);
ashi31 0:7d8ffdfdb16e 44 }
ashi31 0:7d8ffdfdb16e 45
ashi31 0:7d8ffdfdb16e 46 void Die::draw2(int pos, uLCD_4DGL& scr){
ashi31 0:7d8ffdfdb16e 47 int ycent = 42*(((pos-1)/3)+1)-21;
ashi31 0:7d8ffdfdb16e 48 int xcent = 42*(((pos-1)%3)+1)-21;
ashi31 0:7d8ffdfdb16e 49
ashi31 0:7d8ffdfdb16e 50 int width = 20;
ashi31 0:7d8ffdfdb16e 51
ashi31 0:7d8ffdfdb16e 52 int rad = 5;
ashi31 0:7d8ffdfdb16e 53
ashi31 0:7d8ffdfdb16e 54 scr.rectangle(xcent-width, ycent-width, xcent+width, ycent+width, WHITE);
ashi31 0:7d8ffdfdb16e 55 scr.filled_circle(xcent+12,ycent+12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 56 scr.filled_circle(xcent-12,ycent-12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 57 }
ashi31 0:7d8ffdfdb16e 58
ashi31 0:7d8ffdfdb16e 59 void Die::draw3(int pos, uLCD_4DGL& scr){
ashi31 0:7d8ffdfdb16e 60 int ycent = 42*(((pos-1)/3)+1)-21;
ashi31 0:7d8ffdfdb16e 61 int xcent = 42*(((pos-1)%3)+1)-21;
ashi31 0:7d8ffdfdb16e 62
ashi31 0:7d8ffdfdb16e 63 int width = 20;
ashi31 0:7d8ffdfdb16e 64
ashi31 0:7d8ffdfdb16e 65 int rad = 5;
ashi31 0:7d8ffdfdb16e 66
ashi31 0:7d8ffdfdb16e 67 scr.rectangle(xcent-width, ycent-width, xcent+width, ycent+width, WHITE);
ashi31 0:7d8ffdfdb16e 68 scr.filled_circle(xcent+12,ycent+12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 69 scr.filled_circle(xcent,ycent,rad,WHITE);
ashi31 0:7d8ffdfdb16e 70 scr.filled_circle(xcent-12,ycent-12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 71 }
ashi31 0:7d8ffdfdb16e 72
ashi31 0:7d8ffdfdb16e 73 void Die::draw4(int pos, uLCD_4DGL& scr){
ashi31 0:7d8ffdfdb16e 74 int ycent = 42*(((pos-1)/3)+1)-21;
ashi31 0:7d8ffdfdb16e 75 int xcent = 42*(((pos-1)%3)+1)-21;
ashi31 0:7d8ffdfdb16e 76
ashi31 0:7d8ffdfdb16e 77 int width = 20;
ashi31 0:7d8ffdfdb16e 78
ashi31 0:7d8ffdfdb16e 79 int rad = 5;
ashi31 0:7d8ffdfdb16e 80
ashi31 0:7d8ffdfdb16e 81 scr.rectangle(xcent-width, ycent-width, xcent+width, ycent+width, WHITE);
ashi31 0:7d8ffdfdb16e 82 scr.filled_circle(xcent+12,ycent+12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 83 scr.filled_circle(xcent+12,ycent-12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 84 scr.filled_circle(xcent-12,ycent+12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 85 scr.filled_circle(xcent-12,ycent-12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 86 }
ashi31 0:7d8ffdfdb16e 87
ashi31 0:7d8ffdfdb16e 88 void Die::draw5(int pos, uLCD_4DGL& scr){
ashi31 0:7d8ffdfdb16e 89 int ycent = 42*(((pos-1)/3)+1)-21;
ashi31 0:7d8ffdfdb16e 90 int xcent = 42*(((pos-1)%3)+1)-21;
ashi31 0:7d8ffdfdb16e 91
ashi31 0:7d8ffdfdb16e 92 int width = 20;
ashi31 0:7d8ffdfdb16e 93
ashi31 0:7d8ffdfdb16e 94 int rad = 5;
ashi31 0:7d8ffdfdb16e 95
ashi31 0:7d8ffdfdb16e 96 scr.rectangle(xcent-width, ycent-width, xcent+width, ycent+width, WHITE);
ashi31 0:7d8ffdfdb16e 97 scr.filled_circle(xcent,ycent,rad,WHITE);
ashi31 0:7d8ffdfdb16e 98 scr.filled_circle(xcent+12,ycent+12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 99 scr.filled_circle(xcent+12,ycent-12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 100 scr.filled_circle(xcent-12,ycent+12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 101 scr.filled_circle(xcent-12,ycent-12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 102 }
ashi31 0:7d8ffdfdb16e 103
ashi31 0:7d8ffdfdb16e 104 void Die::draw6(int pos, uLCD_4DGL& scr){
ashi31 0:7d8ffdfdb16e 105 int ycent = 42*(((pos-1)/3)+1)-21;
ashi31 0:7d8ffdfdb16e 106 int xcent = 42*(((pos-1)%3)+1)-21;
ashi31 0:7d8ffdfdb16e 107
ashi31 0:7d8ffdfdb16e 108 int width = 20;
ashi31 0:7d8ffdfdb16e 109
ashi31 0:7d8ffdfdb16e 110 int rad = 5;
ashi31 0:7d8ffdfdb16e 111
ashi31 0:7d8ffdfdb16e 112 scr.rectangle(xcent-width, ycent-width, xcent+width, ycent+width, WHITE);
ashi31 0:7d8ffdfdb16e 113 scr.filled_circle(xcent-12,ycent,rad,WHITE);
ashi31 0:7d8ffdfdb16e 114 scr.filled_circle(xcent+12,ycent,rad,WHITE);
ashi31 0:7d8ffdfdb16e 115 scr.filled_circle(xcent+12,ycent+12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 116 scr.filled_circle(xcent+12,ycent-12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 117 scr.filled_circle(xcent-12,ycent+12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 118 scr.filled_circle(xcent-12,ycent-12,rad,WHITE);
ashi31 0:7d8ffdfdb16e 119 }
ashi31 0:7d8ffdfdb16e 120
ashi31 0:7d8ffdfdb16e 121 //display Die based on value
ashi31 0:7d8ffdfdb16e 122 void Die::displayDie(int position, uLCD_4DGL& screen){
ashi31 0:7d8ffdfdb16e 123 if(val == 1){draw1(position,screen);}
ashi31 0:7d8ffdfdb16e 124 if(val == 2){draw2(position,screen);}
ashi31 0:7d8ffdfdb16e 125 if(val == 3){draw3(position,screen);}
ashi31 0:7d8ffdfdb16e 126 if(val == 4){draw4(position,screen);}
ashi31 0:7d8ffdfdb16e 127 if(val == 5){draw5(position,screen);}
ashi31 0:7d8ffdfdb16e 128 if(val == 6){draw6(position,screen);}
ashi31 0:7d8ffdfdb16e 129 }
ashi31 0:7d8ffdfdb16e 130
ashi31 0:7d8ffdfdb16e 131
ashi31 0:7d8ffdfdb16e 132
ashi31 0:7d8ffdfdb16e 133 //S&G
ashi31 0:7d8ffdfdb16e 134 void Die::setVal(int v){
ashi31 0:7d8ffdfdb16e 135 val = v;
ashi31 0:7d8ffdfdb16e 136 }
ashi31 0:7d8ffdfdb16e 137
ashi31 0:7d8ffdfdb16e 138 int Die::getVal(){
ashi31 0:7d8ffdfdb16e 139 return val;
ashi31 0:7d8ffdfdb16e 140 }