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.
Gold/Gold.cpp@8:c5969685cf02, 2020-04-26 (annotated)
- Committer:
- ZhongYufan
- Date:
- Sun Apr 26 13:17:27 2020 +0000
- Revision:
- 8:c5969685cf02
- Parent:
- 1:9c7bb3db32bc
- Child:
- 10:51870f8e2e1a
version 1.1(debugging) claw does not go down but can follow the winch
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| ZhongYufan | 1:9c7bb3db32bc | 1 | #include "Gold.h" |
| ZhongYufan | 1:9c7bb3db32bc | 2 | |
| ZhongYufan | 1:9c7bb3db32bc | 3 | Gold::Gold() |
| ZhongYufan | 1:9c7bb3db32bc | 4 | { |
| ZhongYufan | 1:9c7bb3db32bc | 5 | |
| ZhongYufan | 1:9c7bb3db32bc | 6 | } |
| ZhongYufan | 1:9c7bb3db32bc | 7 | |
| ZhongYufan | 1:9c7bb3db32bc | 8 | Gold::~Gold() |
| ZhongYufan | 1:9c7bb3db32bc | 9 | { |
| ZhongYufan | 1:9c7bb3db32bc | 10 | |
| ZhongYufan | 1:9c7bb3db32bc | 11 | } |
| ZhongYufan | 1:9c7bb3db32bc | 12 | |
| ZhongYufan | 1:9c7bb3db32bc | 13 | void Gold::init(int gold_num) |
| ZhongYufan | 1:9c7bb3db32bc | 14 | { |
| ZhongYufan | 1:9c7bb3db32bc | 15 | _gold_num = gold_num; |
| ZhongYufan | 1:9c7bb3db32bc | 16 | _gold_left = _gold_num; |
| ZhongYufan | 8:c5969685cf02 | 17 | srand(time(NULL)); |
| ZhongYufan | 1:9c7bb3db32bc | 18 | for (int i=0;i<_gold_num;i++){ |
| ZhongYufan | 1:9c7bb3db32bc | 19 | _gold_caught[i] = 0; |
| ZhongYufan | 1:9c7bb3db32bc | 20 | _gold_reached[i] = 0; |
| ZhongYufan | 8:c5969685cf02 | 21 | |
| ZhongYufan | 8:c5969685cf02 | 22 | _x[i] = 3+(rand()%78); |
| ZhongYufan | 8:c5969685cf02 | 23 | _y[i] = 19+(rand()%27); |
| ZhongYufan | 1:9c7bb3db32bc | 24 | } |
| ZhongYufan | 1:9c7bb3db32bc | 25 | |
| ZhongYufan | 1:9c7bb3db32bc | 26 | |
| ZhongYufan | 1:9c7bb3db32bc | 27 | } |
| ZhongYufan | 1:9c7bb3db32bc | 28 | |
| ZhongYufan | 1:9c7bb3db32bc | 29 | void Gold::draw(N5110 &lcd) |
| ZhongYufan | 1:9c7bb3db32bc | 30 | { |
| ZhongYufan | 8:c5969685cf02 | 31 | for (int i=0;i<9;i++){ |
| ZhongYufan | 8:c5969685cf02 | 32 | if(_gold_reached[i]==0){ |
| ZhongYufan | 1:9c7bb3db32bc | 33 | lcd.drawCircle(_x[i],_y[i],2,FILL_BLACK); // lcd.drawCircle(_x[i],_y[i],3,FILL_BLACK); |
| ZhongYufan | 1:9c7bb3db32bc | 34 | } |
| ZhongYufan | 1:9c7bb3db32bc | 35 | } |
| ZhongYufan | 8:c5969685cf02 | 36 | lcd.refresh(); |
| ZhongYufan | 1:9c7bb3db32bc | 37 | } |
| ZhongYufan | 1:9c7bb3db32bc | 38 | |
| ZhongYufan | 1:9c7bb3db32bc | 39 | void Gold::update() |
| ZhongYufan | 1:9c7bb3db32bc | 40 | { |
| ZhongYufan | 1:9c7bb3db32bc | 41 | for (int i=0;i<_gold_num;i++){ |
| ZhongYufan | 1:9c7bb3db32bc | 42 | while(_gold_caught[i]==1){ |
| ZhongYufan | 1:9c7bb3db32bc | 43 | _y[i]-=1; |
| ZhongYufan | 1:9c7bb3db32bc | 44 | if (_y[i]<=14) { |
| ZhongYufan | 1:9c7bb3db32bc | 45 | gold_reached(i); |
| ZhongYufan | 1:9c7bb3db32bc | 46 | } |
| ZhongYufan | 1:9c7bb3db32bc | 47 | } |
| ZhongYufan | 1:9c7bb3db32bc | 48 | } |
| ZhongYufan | 1:9c7bb3db32bc | 49 | } |
| ZhongYufan | 1:9c7bb3db32bc | 50 | |
| ZhongYufan | 1:9c7bb3db32bc | 51 | void Gold::gold_caught(int caught_i) |
| ZhongYufan | 1:9c7bb3db32bc | 52 | { |
| ZhongYufan | 1:9c7bb3db32bc | 53 | _gold_caught[caught_i]=1; |
| ZhongYufan | 1:9c7bb3db32bc | 54 | } |
| ZhongYufan | 1:9c7bb3db32bc | 55 | |
| ZhongYufan | 1:9c7bb3db32bc | 56 | void Gold::gold_reached(int reached_i) |
| ZhongYufan | 1:9c7bb3db32bc | 57 | { |
| ZhongYufan | 1:9c7bb3db32bc | 58 | _gold_reached[reached_i]=1; |
| ZhongYufan | 1:9c7bb3db32bc | 59 | _gold_left--; |
| ZhongYufan | 1:9c7bb3db32bc | 60 | } |
| ZhongYufan | 1:9c7bb3db32bc | 61 | |
| ZhongYufan | 1:9c7bb3db32bc | 62 | |
| ZhongYufan | 1:9c7bb3db32bc | 63 | |
| ZhongYufan | 1:9c7bb3db32bc | 64 | int Gold::get_reached_num() |
| ZhongYufan | 1:9c7bb3db32bc | 65 | { |
| ZhongYufan | 1:9c7bb3db32bc | 66 | int n=0; |
| ZhongYufan | 1:9c7bb3db32bc | 67 | for (int i=0;i<_gold_num;i++){ |
| ZhongYufan | 1:9c7bb3db32bc | 68 | if (_gold_reached[i]==1){ |
| ZhongYufan | 1:9c7bb3db32bc | 69 | n+=1; |
| ZhongYufan | 1:9c7bb3db32bc | 70 | } |
| ZhongYufan | 1:9c7bb3db32bc | 71 | } |
| ZhongYufan | 1:9c7bb3db32bc | 72 | return n; |
| ZhongYufan | 1:9c7bb3db32bc | 73 | } |
| ZhongYufan | 1:9c7bb3db32bc | 74 | |
| ZhongYufan | 8:c5969685cf02 | 75 | int Gold::get_left_num() |
| ZhongYufan | 8:c5969685cf02 | 76 | { |
| ZhongYufan | 8:c5969685cf02 | 77 | int left_n = _gold_left; |
| ZhongYufan | 8:c5969685cf02 | 78 | return left_n; |
| ZhongYufan | 8:c5969685cf02 | 79 | } |
| ZhongYufan | 8:c5969685cf02 | 80 | |
| ZhongYufan | 1:9c7bb3db32bc | 81 | Vector2D Gold::get_pos(int gold_i) |
| ZhongYufan | 1:9c7bb3db32bc | 82 | { |
| ZhongYufan | 1:9c7bb3db32bc | 83 | Vector2D p = {_x[gold_i],_y[gold_i]}; |
| ZhongYufan | 1:9c7bb3db32bc | 84 | return p; |
| ZhongYufan | 1:9c7bb3db32bc | 85 | } |
| ZhongYufan | 1:9c7bb3db32bc | 86 | |
| ZhongYufan | 1:9c7bb3db32bc | 87 | void Gold::set_pos(Vector2D p) { |
| ZhongYufan | 1:9c7bb3db32bc | 88 | for (int i=0;i<_gold_num;i++){ |
| ZhongYufan | 1:9c7bb3db32bc | 89 | while(_gold_reached[i]==0){ |
| ZhongYufan | 1:9c7bb3db32bc | 90 | _x[i] = p.x; |
| ZhongYufan | 1:9c7bb3db32bc | 91 | _y[i] = p.y; |
| ZhongYufan | 1:9c7bb3db32bc | 92 | } |
| ZhongYufan | 1:9c7bb3db32bc | 93 | } |
| ZhongYufan | 1:9c7bb3db32bc | 94 | } |