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
Diff: Cricket/Cricket.cpp
- Revision:
- 20:9d21599fe350
- Parent:
- 19:e1ded5acb64a
- Child:
- 21:a0904159e183
diff -r e1ded5acb64a -r 9d21599fe350 Cricket/Cricket.cpp --- a/Cricket/Cricket.cpp Sat Apr 27 18:16:59 2019 +0000 +++ b/Cricket/Cricket.cpp Tue Apr 30 10:27:23 2019 +0000 @@ -23,7 +23,7 @@ fieldersCount=0; init_field_counter=0; init_positions(); - fielder_no=-1; + _position_no=-1; check_bowled=0; _ball_limit=3; check_hit=0; @@ -42,7 +42,7 @@ ballHit=0; init_field_counter=0; init_positions(); - fielder_no=-1; + _position_no=-1; check_bowled=0; outfield_fielder=-1; check_update=-1; @@ -54,12 +54,16 @@ ball.reset_ball_count(); } void Cricket::game(N5110 &lcd,Gamepad &pad){ + if (new_game==1){ scoreboard.generate_target(); - bat.info_screen(lcd,scoreboard.get_target()); + bat.first_menu(lcd,pad); + //bat.info_screen(lcd,scoreboard.get_target()); new_game=0; } + if (new_round==1){ + if (scoreboard.compare_target()==true){ bat.victory_menu(lcd); game_reset(); @@ -69,6 +73,7 @@ game_reset(); } else{ + check_ball_count(lcd); pad.leds_off(); round_reset(); @@ -79,9 +84,8 @@ } } else - { play_game(lcd,pad); - } + } bool Cricket::check_ball_count(N5110 &lcd){ int count=ball.get_ball_count(); @@ -104,12 +108,12 @@ } } void Cricket::init_positions(){ - set_init_positions(42,1,N,1); + set_init_positions(42,15,N,1); set_init_positions(84,30,E,2); set_init_positions(0,30,W,3); set_init_positions(2,44,SW,4); set_init_positions(0,2,NW,5); - set_init_positions(84,1,NE,6); + set_init_positions(65,2,NE,6); set_init_positions(60,44,SE,7); } void Cricket::set_init_positions(int x,int y, Direction direction,int no){ @@ -147,10 +151,8 @@ update_scoreboard(check_update,field[fielder_check].position+1,pad); } if (fielder_check==-1){ - check_update=ball.update_ball(positions[fielder_no].x,positions[fielder_no].y); - -// /printf("location x %i y %i\n update %i\n",positions[fielder_no].x,positions[fielder_no].y,check_update); - printf("update %i\n",check_update); + check_update=ball.update_ball(positions[_position_no].x,positions[_position_no].y); + printf("location x %i y %i\n update %i\n",positions[_position_no].x,positions[_position_no].y,check_update); if (loft_check==1) update_scoreboard(check_update,6,pad); else @@ -159,14 +161,22 @@ } } void Cricket::update_scoreboard(int checkUpdate, int runs,Gamepad &pad){ - printf("enter check"); if (checkUpdate==1){ - scoreboard.update_score(runs); - pad.led(3,1.0); - wait(0.5); - new_round=1; + if (ball_direction==N){ + scoreboard.update_score(0); + pad.led(3,1.0); + wait(0.5); + new_round=1; + } + else{ + scoreboard.update_score(runs); + pad.led(3,1.0); + wait(0.5); + new_round=1; + } } } + void Cricket::batsman_out(int option,Gamepad &pad, N5110 &lcd){ scoreboard.reset(); pad.led(1,1.0); @@ -186,22 +196,22 @@ } void Cricket::set_ball_direction(Direction dir){ if (direction_set!=1){ - for (int i=0;i<init_field_counter+1;i++){ - if(dir==positions[i].dir){ - ball_direction=dir; - printf(" BALL DIRECTION %i x %i y %i \n",positions[i].no,positions[i].x,positions[i].y); - fielder_no=i; - direction_set=1; - break; - } + for (int i=0;i<init_field_counter+1;i++){ + if(dir==positions[i].dir){ + ball_direction=dir; + printf(" BALL DIRECTION %i x %i y %i \n",positions[i].no,positions[i].x,positions[i].y); + _position_no=i; + direction_set=1; + break; + } + } } } -} int Cricket::check_fielder(Direction dir){ Vector2D p; - //if (dir==N){ -// return -1; -// } + if (dir==N){ + return -1; + } for (int i=0;i<8;i++){ if(dir == field[i].dir){ return i;