Pokemon Project

Dependencies:   C12832 LM75B MMA7660 mbed

Committer:
dhermy01
Date:
Mon Jan 23 17:28:34 2017 +0000
Revision:
0:cec9a625dfb9
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dhermy01 0:cec9a625dfb9 1 #include "C12832.h"
dhermy01 0:cec9a625dfb9 2 #include "MMA7660.h"
dhermy01 0:cec9a625dfb9 3 #include "LM75B.h"
dhermy01 0:cec9a625dfb9 4 #include "player.h"
dhermy01 0:cec9a625dfb9 5 #include "mbed.h"
dhermy01 0:cec9a625dfb9 6 #define BPM 100.0
dhermy01 0:cec9a625dfb9 7 #define VOLUME 0.01
dhermy01 0:cec9a625dfb9 8
dhermy01 0:cec9a625dfb9 9 // init variable
dhermy01 0:cec9a625dfb9 10 typedef enum State {START, MENU, CHOICE, PLMENU, FIGHT, STATS} GameState;
dhermy01 0:cec9a625dfb9 11 DigitalOut led(LED1);
dhermy01 0:cec9a625dfb9 12 DigitalOut red(D5);
dhermy01 0:cec9a625dfb9 13 DigitalOut blue(D8);
dhermy01 0:cec9a625dfb9 14 DigitalOut green(D9);
dhermy01 0:cec9a625dfb9 15 DigitalIn up(A2);
dhermy01 0:cec9a625dfb9 16 DigitalIn right(A5);
dhermy01 0:cec9a625dfb9 17 DigitalIn select(D4);
dhermy01 0:cec9a625dfb9 18 DigitalIn left(A4);
dhermy01 0:cec9a625dfb9 19 DigitalIn down(A3);
dhermy01 0:cec9a625dfb9 20 C12832 lcd(D11, D13, D12, D7, D10);
dhermy01 0:cec9a625dfb9 21 PwmOut pwm_pin(D6);
dhermy01 0:cec9a625dfb9 22 LM75B sensor(D14,D15);
dhermy01 0:cec9a625dfb9 23
dhermy01 0:cec9a625dfb9 24 // playNote function
dhermy01 0:cec9a625dfb9 25 void playNote(float frequency, float duration, float volume) {
dhermy01 0:cec9a625dfb9 26 pwm_pin.period(1.0/frequency);
dhermy01 0:cec9a625dfb9 27 pwm_pin = volume/2.0;
dhermy01 0:cec9a625dfb9 28 wait(duration);
dhermy01 0:cec9a625dfb9 29 pwm_pin = 0.0;
dhermy01 0:cec9a625dfb9 30 }
dhermy01 0:cec9a625dfb9 31
dhermy01 0:cec9a625dfb9 32 // play_music function
dhermy01 0:cec9a625dfb9 33 void play_music(){
dhermy01 0:cec9a625dfb9 34 float beat_duration;
dhermy01 0:cec9a625dfb9 35
dhermy01 0:cec9a625dfb9 36 // Calculate duration of a quarter note from bpm
dhermy01 0:cec9a625dfb9 37 beat_duration = 60.0 / BPM;
dhermy01 0:cec9a625dfb9 38
dhermy01 0:cec9a625dfb9 39 // Loop forever
dhermy01 0:cec9a625dfb9 40 while(1) {
dhermy01 0:cec9a625dfb9 41
dhermy01 0:cec9a625dfb9 42 lcd.cls();
dhermy01 0:cec9a625dfb9 43 lcd.locate(0, 10);
dhermy01 0:cec9a625dfb9 44 lcd.printf("Luke I'm your father !");
dhermy01 0:cec9a625dfb9 45
dhermy01 0:cec9a625dfb9 46 // First measure
dhermy01 0:cec9a625dfb9 47 playNote(391.995, (beat_duration - 0.1), VOLUME);
dhermy01 0:cec9a625dfb9 48 wait(0.1);
dhermy01 0:cec9a625dfb9 49 playNote(391.995, (beat_duration - 0.1), VOLUME);
dhermy01 0:cec9a625dfb9 50 wait(0.1);
dhermy01 0:cec9a625dfb9 51 playNote(391.995, (beat_duration - 0.1), VOLUME);
dhermy01 0:cec9a625dfb9 52 wait(0.1);
dhermy01 0:cec9a625dfb9 53 playNote(311.127, (0.75 * beat_duration), VOLUME);
dhermy01 0:cec9a625dfb9 54 playNote(466.164, (0.25 * beat_duration), VOLUME);
dhermy01 0:cec9a625dfb9 55
dhermy01 0:cec9a625dfb9 56 // Second measure
dhermy01 0:cec9a625dfb9 57 playNote(391.995, (beat_duration - 0.1), VOLUME);
dhermy01 0:cec9a625dfb9 58 wait(0.1);
dhermy01 0:cec9a625dfb9 59 playNote(311.127, (0.75 * beat_duration), VOLUME);
dhermy01 0:cec9a625dfb9 60 playNote(466.164, (0.25 * beat_duration), VOLUME);
dhermy01 0:cec9a625dfb9 61 playNote(391.995, ((2 * beat_duration) - 0.1), VOLUME);
dhermy01 0:cec9a625dfb9 62 wait(0.1);
dhermy01 0:cec9a625dfb9 63
dhermy01 0:cec9a625dfb9 64 // Third measure
dhermy01 0:cec9a625dfb9 65 playNote(587.330, (beat_duration - 0.1), VOLUME);
dhermy01 0:cec9a625dfb9 66 wait(0.1);
dhermy01 0:cec9a625dfb9 67 playNote(587.330, (beat_duration - 0.1), VOLUME);
dhermy01 0:cec9a625dfb9 68 wait(0.1);
dhermy01 0:cec9a625dfb9 69 playNote(587.330, (beat_duration - 0.1), VOLUME);
dhermy01 0:cec9a625dfb9 70 wait(0.1);
dhermy01 0:cec9a625dfb9 71 playNote(622.254, (0.75 * beat_duration), VOLUME);
dhermy01 0:cec9a625dfb9 72 playNote(466.164, (0.25 * beat_duration), VOLUME);
dhermy01 0:cec9a625dfb9 73
dhermy01 0:cec9a625dfb9 74 // Fourth measure
dhermy01 0:cec9a625dfb9 75 playNote(369.994, (beat_duration - 0.1), VOLUME);
dhermy01 0:cec9a625dfb9 76 wait(0.1);
dhermy01 0:cec9a625dfb9 77 playNote(311.127, (0.75 * beat_duration), VOLUME);
dhermy01 0:cec9a625dfb9 78 playNote(466.164, (0.25 * beat_duration), VOLUME);
dhermy01 0:cec9a625dfb9 79 playNote(391.995, ((2 * beat_duration) - 0.1), VOLUME);
dhermy01 0:cec9a625dfb9 80 wait(0.1);
dhermy01 0:cec9a625dfb9 81 }
dhermy01 0:cec9a625dfb9 82 }
dhermy01 0:cec9a625dfb9 83
dhermy01 0:cec9a625dfb9 84 // Start Menu
dhermy01 0:cec9a625dfb9 85 void drawStart() {
dhermy01 0:cec9a625dfb9 86 lcd.locate(50,0);
dhermy01 0:cec9a625dfb9 87 lcd.printf("PLAY");
dhermy01 0:cec9a625dfb9 88 lcd.locate(50, 20);
dhermy01 0:cec9a625dfb9 89 lcd.printf("TEMP");
dhermy01 0:cec9a625dfb9 90 }
dhermy01 0:cec9a625dfb9 91
dhermy01 0:cec9a625dfb9 92 // Choice Menu
dhermy01 0:cec9a625dfb9 93 void drawChoice() {
dhermy01 0:cec9a625dfb9 94 lcd.locate(50,0);
dhermy01 0:cec9a625dfb9 95 lcd.printf("FIRE");
dhermy01 0:cec9a625dfb9 96 lcd.locate(50,10);
dhermy01 0:cec9a625dfb9 97 lcd.printf("WATER");
dhermy01 0:cec9a625dfb9 98 lcd.locate(50,20);
dhermy01 0:cec9a625dfb9 99 lcd.printf("GRASS");
dhermy01 0:cec9a625dfb9 100 }
dhermy01 0:cec9a625dfb9 101
dhermy01 0:cec9a625dfb9 102 // Fight Menu
dhermy01 0:cec9a625dfb9 103 void drawPlayerMenu() {
dhermy01 0:cec9a625dfb9 104 lcd.locate(50,0);
dhermy01 0:cec9a625dfb9 105 lcd.printf("FIGHT");
dhermy01 0:cec9a625dfb9 106 lcd.locate(50,20);
dhermy01 0:cec9a625dfb9 107 lcd.printf("VIEW STAT");
dhermy01 0:cec9a625dfb9 108 }
dhermy01 0:cec9a625dfb9 109
dhermy01 0:cec9a625dfb9 110 // Fight Simulation
dhermy01 0:cec9a625dfb9 111 void drawFight(Player e, int a, std::string name) {
dhermy01 0:cec9a625dfb9 112 std::string sss = e.toString();
dhermy01 0:cec9a625dfb9 113 std::string m = "";
dhermy01 0:cec9a625dfb9 114 std::string newStr = sss + "\n" + "Name: " + name;
dhermy01 0:cec9a625dfb9 115 char z[130];
dhermy01 0:cec9a625dfb9 116 strncpy(z, newStr.c_str(), sizeof(z));
dhermy01 0:cec9a625dfb9 117 lcd.cls();
dhermy01 0:cec9a625dfb9 118 lcd.locate(0,0);
dhermy01 0:cec9a625dfb9 119 lcd.printf(z);
dhermy01 0:cec9a625dfb9 120 wait(4);
dhermy01 0:cec9a625dfb9 121 }
dhermy01 0:cec9a625dfb9 122
dhermy01 0:cec9a625dfb9 123 // Win View
dhermy01 0:cec9a625dfb9 124 void win(){
dhermy01 0:cec9a625dfb9 125 float beat_duration;
dhermy01 0:cec9a625dfb9 126
dhermy01 0:cec9a625dfb9 127 // Calculate duration of a quarter note from bpm
dhermy01 0:cec9a625dfb9 128 beat_duration = 60.0 / BPM;
dhermy01 0:cec9a625dfb9 129
dhermy01 0:cec9a625dfb9 130 lcd.cls();
dhermy01 0:cec9a625dfb9 131 lcd.locate(0, 10);
dhermy01 0:cec9a625dfb9 132 lcd.printf("You won and \nyou got 20 exp points !");
dhermy01 0:cec9a625dfb9 133
dhermy01 0:cec9a625dfb9 134 playNote(1319,beat_duration-0.1,VOLUME);
dhermy01 0:cec9a625dfb9 135 wait(0.1);
dhermy01 0:cec9a625dfb9 136 playNote(1175,beat_duration-0.1,VOLUME);
dhermy01 0:cec9a625dfb9 137 wait(0.1);
dhermy01 0:cec9a625dfb9 138
dhermy01 0:cec9a625dfb9 139 playNote(1319,beat_duration-0.1,VOLUME);
dhermy01 0:cec9a625dfb9 140 wait(0.1);
dhermy01 0:cec9a625dfb9 141
dhermy01 0:cec9a625dfb9 142 playNote(1024,beat_duration-0.1,VOLUME);
dhermy01 0:cec9a625dfb9 143 wait(0.1);
dhermy01 0:cec9a625dfb9 144
dhermy01 0:cec9a625dfb9 145 wait(0.05);
dhermy01 0:cec9a625dfb9 146 }
dhermy01 0:cec9a625dfb9 147
dhermy01 0:cec9a625dfb9 148 // Loose View
dhermy01 0:cec9a625dfb9 149 void loose (){
dhermy01 0:cec9a625dfb9 150 lcd.cls();
dhermy01 0:cec9a625dfb9 151 lcd.locate(50, 10);
dhermy01 0:cec9a625dfb9 152 lcd.printf("LOOSE");
dhermy01 0:cec9a625dfb9 153 }
dhermy01 0:cec9a625dfb9 154
dhermy01 0:cec9a625dfb9 155 // Init Var
dhermy01 0:cec9a625dfb9 156 int i = 0;
dhermy01 0:cec9a625dfb9 157 int k = 0;
dhermy01 0:cec9a625dfb9 158 int v = 0;
dhermy01 0:cec9a625dfb9 159 int r = 0;
dhermy01 0:cec9a625dfb9 160 int l = 0;
dhermy01 0:cec9a625dfb9 161
dhermy01 0:cec9a625dfb9 162 // Main function
dhermy01 0:cec9a625dfb9 163 int main() {
dhermy01 0:cec9a625dfb9 164
dhermy01 0:cec9a625dfb9 165 //Reset Captor
dhermy01 0:cec9a625dfb9 166 led = 0;
dhermy01 0:cec9a625dfb9 167 red = 1;
dhermy01 0:cec9a625dfb9 168 blue = 1;
dhermy01 0:cec9a625dfb9 169 green = 1;
dhermy01 0:cec9a625dfb9 170
dhermy01 0:cec9a625dfb9 171 // Create Player
dhermy01 0:cec9a625dfb9 172 Player pl(1, 20, FIRE);
dhermy01 0:cec9a625dfb9 173
dhermy01 0:cec9a625dfb9 174 // Create Enemy
dhermy01 0:cec9a625dfb9 175 std::string nameList[42] = {"Abra", "Absol", "Azelf", "Banette", "Bastiodon", "Beautifly", "Bidoof", "Carvanha", "Clefairy", "Cresselia", "Crobat", "Darkrai", "Delphox", "Dialga", "Ditto", "Doduo", "Dratini", "Dugtrio", "Gothitelle", "Grovyle", "Haxorus", "Honedge", "Hoopa", "Jirachi", "Keldeo", "Lugia", "Makuhita", "Marill", "Meowth", "Minun", "Remoraid", "Rhyhorn", "Sableye", "Sandile", "Sawk", "Sylveon", "Tauros", "Togepi", "Victini", "Wailord", "Wingull", "Zubat"};
dhermy01 0:cec9a625dfb9 176 Player enemy[6] = {Player(1, 15, FIRE), Player (1, 20, WATER), Player(1, 15, GRASS), Player(2, 10, FIRE), Player(4, 20, WATER), Player(2, 20, GRASS)};
dhermy01 0:cec9a625dfb9 177
dhermy01 0:cec9a625dfb9 178 // Draw Start Menu
dhermy01 0:cec9a625dfb9 179 GameState state = START;
dhermy01 0:cec9a625dfb9 180 up.mode(PullUp);
dhermy01 0:cec9a625dfb9 181 down.mode(PullUp);
dhermy01 0:cec9a625dfb9 182 select.mode(PullUp);
dhermy01 0:cec9a625dfb9 183 lcd.locate(40,0);
dhermy01 0:cec9a625dfb9 184 lcd.printf(">");
dhermy01 0:cec9a625dfb9 185 drawStart();
dhermy01 0:cec9a625dfb9 186
dhermy01 0:cec9a625dfb9 187 // Principal loop
dhermy01 0:cec9a625dfb9 188 while(1){
dhermy01 0:cec9a625dfb9 189
dhermy01 0:cec9a625dfb9 190 // Start Menu
dhermy01 0:cec9a625dfb9 191 if(state == START){
dhermy01 0:cec9a625dfb9 192 if(up){
dhermy01 0:cec9a625dfb9 193 lcd.cls();
dhermy01 0:cec9a625dfb9 194 lcd.locate(40,0);
dhermy01 0:cec9a625dfb9 195 lcd.printf(">");
dhermy01 0:cec9a625dfb9 196 drawStart();
dhermy01 0:cec9a625dfb9 197 i=0;
dhermy01 0:cec9a625dfb9 198 }
dhermy01 0:cec9a625dfb9 199 else if(down){
dhermy01 0:cec9a625dfb9 200 lcd.cls();
dhermy01 0:cec9a625dfb9 201 lcd.locate(40,20);
dhermy01 0:cec9a625dfb9 202 lcd.printf(">");
dhermy01 0:cec9a625dfb9 203 drawStart();
dhermy01 0:cec9a625dfb9 204 i=1;
dhermy01 0:cec9a625dfb9 205 }
dhermy01 0:cec9a625dfb9 206 else if(right){
dhermy01 0:cec9a625dfb9 207 r=3;
dhermy01 0:cec9a625dfb9 208 }
dhermy01 0:cec9a625dfb9 209 else if(left){
dhermy01 0:cec9a625dfb9 210 l=3;
dhermy01 0:cec9a625dfb9 211 }
dhermy01 0:cec9a625dfb9 212 // Select Menu
dhermy01 0:cec9a625dfb9 213 else if(select){
dhermy01 0:cec9a625dfb9 214
dhermy01 0:cec9a625dfb9 215 if(r == 3 && l == 3 && i==0){
dhermy01 0:cec9a625dfb9 216 play_music();
dhermy01 0:cec9a625dfb9 217 }
dhermy01 0:cec9a625dfb9 218 else
dhermy01 0:cec9a625dfb9 219 {
dhermy01 0:cec9a625dfb9 220
dhermy01 0:cec9a625dfb9 221 if(i==0){
dhermy01 0:cec9a625dfb9 222 wait(0.8);
dhermy01 0:cec9a625dfb9 223 state = CHOICE;
dhermy01 0:cec9a625dfb9 224 drawChoice();
dhermy01 0:cec9a625dfb9 225 }
dhermy01 0:cec9a625dfb9 226 else{
dhermy01 0:cec9a625dfb9 227 lcd.cls();
dhermy01 0:cec9a625dfb9 228 lcd.locate(0,3);
dhermy01 0:cec9a625dfb9 229 lcd.printf("Temp = %.1f\n", sensor.temp());
dhermy01 0:cec9a625dfb9 230 wait(1.0);
dhermy01 0:cec9a625dfb9 231 i = 0;
dhermy01 0:cec9a625dfb9 232 lcd.cls();
dhermy01 0:cec9a625dfb9 233 lcd.locate(40,0);
dhermy01 0:cec9a625dfb9 234 lcd.printf(">");
dhermy01 0:cec9a625dfb9 235 drawStart();
dhermy01 0:cec9a625dfb9 236 }
dhermy01 0:cec9a625dfb9 237 }
dhermy01 0:cec9a625dfb9 238 }
dhermy01 0:cec9a625dfb9 239
dhermy01 0:cec9a625dfb9 240 }//if state == START
dhermy01 0:cec9a625dfb9 241
dhermy01 0:cec9a625dfb9 242 // Choice Menu
dhermy01 0:cec9a625dfb9 243 else if(state == CHOICE){
dhermy01 0:cec9a625dfb9 244
dhermy01 0:cec9a625dfb9 245 if(down){
dhermy01 0:cec9a625dfb9 246 if(k==0)
dhermy01 0:cec9a625dfb9 247 {
dhermy01 0:cec9a625dfb9 248 lcd.cls();
dhermy01 0:cec9a625dfb9 249 lcd.locate(40,10);
dhermy01 0:cec9a625dfb9 250 lcd.printf(">");
dhermy01 0:cec9a625dfb9 251 drawChoice();
dhermy01 0:cec9a625dfb9 252 k = 1;
dhermy01 0:cec9a625dfb9 253 wait(0.8);
dhermy01 0:cec9a625dfb9 254 }
dhermy01 0:cec9a625dfb9 255 else if(k==1)
dhermy01 0:cec9a625dfb9 256 {
dhermy01 0:cec9a625dfb9 257 lcd.cls();
dhermy01 0:cec9a625dfb9 258 lcd.locate(40,20);
dhermy01 0:cec9a625dfb9 259 lcd.printf(">");
dhermy01 0:cec9a625dfb9 260 drawChoice();
dhermy01 0:cec9a625dfb9 261 k = 2;
dhermy01 0:cec9a625dfb9 262 wait(0.8);
dhermy01 0:cec9a625dfb9 263 }
dhermy01 0:cec9a625dfb9 264 }// if down
dhermy01 0:cec9a625dfb9 265
dhermy01 0:cec9a625dfb9 266 else if(up){
dhermy01 0:cec9a625dfb9 267 if(k==2){
dhermy01 0:cec9a625dfb9 268 lcd.cls();
dhermy01 0:cec9a625dfb9 269 lcd.locate(40,10);
dhermy01 0:cec9a625dfb9 270 lcd.printf(">");
dhermy01 0:cec9a625dfb9 271 drawChoice();
dhermy01 0:cec9a625dfb9 272 k=1;
dhermy01 0:cec9a625dfb9 273 wait(0.8);
dhermy01 0:cec9a625dfb9 274 }
dhermy01 0:cec9a625dfb9 275 else if(k==1){
dhermy01 0:cec9a625dfb9 276 lcd.cls();
dhermy01 0:cec9a625dfb9 277 lcd.locate(40,0);
dhermy01 0:cec9a625dfb9 278 lcd.printf(">");
dhermy01 0:cec9a625dfb9 279 drawChoice();
dhermy01 0:cec9a625dfb9 280 k=0;
dhermy01 0:cec9a625dfb9 281 wait(0.8);
dhermy01 0:cec9a625dfb9 282 }
dhermy01 0:cec9a625dfb9 283 }// else if up
dhermy01 0:cec9a625dfb9 284
dhermy01 0:cec9a625dfb9 285 // Select Type
dhermy01 0:cec9a625dfb9 286 else if(select){
dhermy01 0:cec9a625dfb9 287 if(k==0){
dhermy01 0:cec9a625dfb9 288 pl.setType(FIRE);
dhermy01 0:cec9a625dfb9 289 red = 0;
dhermy01 0:cec9a625dfb9 290 blue = 1;
dhermy01 0:cec9a625dfb9 291 green = 1;
dhermy01 0:cec9a625dfb9 292 }
dhermy01 0:cec9a625dfb9 293 else if(k==1){
dhermy01 0:cec9a625dfb9 294 pl.setType(WATER);
dhermy01 0:cec9a625dfb9 295 red = 1;
dhermy01 0:cec9a625dfb9 296 blue = 0;
dhermy01 0:cec9a625dfb9 297 green = 1;
dhermy01 0:cec9a625dfb9 298 }
dhermy01 0:cec9a625dfb9 299 else if(k==2){
dhermy01 0:cec9a625dfb9 300 pl.setType(GRASS);
dhermy01 0:cec9a625dfb9 301 red = 1;
dhermy01 0:cec9a625dfb9 302 blue = 1;
dhermy01 0:cec9a625dfb9 303 green = 0;
dhermy01 0:cec9a625dfb9 304 }
dhermy01 0:cec9a625dfb9 305 wait(0.8);
dhermy01 0:cec9a625dfb9 306 lcd.cls();
dhermy01 0:cec9a625dfb9 307 lcd.locate(40,0);
dhermy01 0:cec9a625dfb9 308 lcd.printf(">");
dhermy01 0:cec9a625dfb9 309 drawPlayerMenu();
dhermy01 0:cec9a625dfb9 310 state = PLMENU;
dhermy01 0:cec9a625dfb9 311 }
dhermy01 0:cec9a625dfb9 312 }// if state == choice
dhermy01 0:cec9a625dfb9 313
dhermy01 0:cec9a625dfb9 314 // Fight Menu
dhermy01 0:cec9a625dfb9 315 else if(state == PLMENU){
dhermy01 0:cec9a625dfb9 316 if(up){
dhermy01 0:cec9a625dfb9 317 lcd.cls();
dhermy01 0:cec9a625dfb9 318 lcd.locate(40,0);
dhermy01 0:cec9a625dfb9 319 lcd.printf(">");
dhermy01 0:cec9a625dfb9 320 drawPlayerMenu();
dhermy01 0:cec9a625dfb9 321 v=0;
dhermy01 0:cec9a625dfb9 322 }
dhermy01 0:cec9a625dfb9 323 else if(down){
dhermy01 0:cec9a625dfb9 324 lcd.cls();
dhermy01 0:cec9a625dfb9 325 lcd.locate(40,20);
dhermy01 0:cec9a625dfb9 326 lcd.printf(">");
dhermy01 0:cec9a625dfb9 327 drawPlayerMenu();
dhermy01 0:cec9a625dfb9 328 v=1;
dhermy01 0:cec9a625dfb9 329 }
dhermy01 0:cec9a625dfb9 330
dhermy01 0:cec9a625dfb9 331 else if(select){
dhermy01 0:cec9a625dfb9 332 wait(0.8);
dhermy01 0:cec9a625dfb9 333 if(v==0){
dhermy01 0:cec9a625dfb9 334 state = FIGHT;
dhermy01 0:cec9a625dfb9 335 }
dhermy01 0:cec9a625dfb9 336 else{
dhermy01 0:cec9a625dfb9 337 state = STATS;
dhermy01 0:cec9a625dfb9 338 }
dhermy01 0:cec9a625dfb9 339 }
dhermy01 0:cec9a625dfb9 340
dhermy01 0:cec9a625dfb9 341 }// if state == PLMENU
dhermy01 0:cec9a625dfb9 342
dhermy01 0:cec9a625dfb9 343 // Fight
dhermy01 0:cec9a625dfb9 344 else if(state == FIGHT){
dhermy01 0:cec9a625dfb9 345 // Rand Enemy
dhermy01 0:cec9a625dfb9 346 int ind = rand() % 6;
dhermy01 0:cec9a625dfb9 347 int ind2 = rand() % 42;
dhermy01 0:cec9a625dfb9 348 std::string str = nameList[ind2];
dhermy01 0:cec9a625dfb9 349 Player ene = enemy[ind];
dhermy01 0:cec9a625dfb9 350 // Fight Simu
dhermy01 0:cec9a625dfb9 351 int w = pl.fight(ene);
dhermy01 0:cec9a625dfb9 352 // Check Exp
dhermy01 0:cec9a625dfb9 353 pl.checkEXP();
dhermy01 0:cec9a625dfb9 354 drawFight(ene, w, str);
dhermy01 0:cec9a625dfb9 355
dhermy01 0:cec9a625dfb9 356 // Result
dhermy01 0:cec9a625dfb9 357 if(w==1){
dhermy01 0:cec9a625dfb9 358 wait(0.8);
dhermy01 0:cec9a625dfb9 359 win();
dhermy01 0:cec9a625dfb9 360 state = PLMENU;
dhermy01 0:cec9a625dfb9 361 }
dhermy01 0:cec9a625dfb9 362 else{
dhermy01 0:cec9a625dfb9 363 wait(0.8);
dhermy01 0:cec9a625dfb9 364 loose();
dhermy01 0:cec9a625dfb9 365 state = PLMENU;
dhermy01 0:cec9a625dfb9 366 }
dhermy01 0:cec9a625dfb9 367
dhermy01 0:cec9a625dfb9 368 }//if state == FIGHT
dhermy01 0:cec9a625dfb9 369
dhermy01 0:cec9a625dfb9 370 // View Stat
dhermy01 0:cec9a625dfb9 371 else if (state == STATS) {
dhermy01 0:cec9a625dfb9 372 std::string sss = pl.toString();
dhermy01 0:cec9a625dfb9 373 char c[50];
dhermy01 0:cec9a625dfb9 374 strncpy(c, sss.c_str(), sizeof(c));
dhermy01 0:cec9a625dfb9 375 lcd.cls();
dhermy01 0:cec9a625dfb9 376 lcd.locate(0,0);
dhermy01 0:cec9a625dfb9 377 lcd.printf(c);
dhermy01 0:cec9a625dfb9 378 wait(3);
dhermy01 0:cec9a625dfb9 379
dhermy01 0:cec9a625dfb9 380 lcd.cls();
dhermy01 0:cec9a625dfb9 381 state = PLMENU;
dhermy01 0:cec9a625dfb9 382 }// if state == MENU
dhermy01 0:cec9a625dfb9 383
dhermy01 0:cec9a625dfb9 384
dhermy01 0:cec9a625dfb9 385 }// while 1
dhermy01 0:cec9a625dfb9 386
dhermy01 0:cec9a625dfb9 387 }