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@1:9c7bb3db32bc, 2020-04-22 (annotated)
- Committer:
- ZhongYufan
- Date:
- Wed Apr 22 15:52:04 2020 +0000
- Revision:
- 1:9c7bb3db32bc
- Child:
- 8:c5969685cf02
claw, gold, winch, monster finished (commit test)
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 | 1:9c7bb3db32bc | 17 | |
| 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 | 1:9c7bb3db32bc | 21 | |
| ZhongYufan | 1:9c7bb3db32bc | 22 | srand(time(NULL)); |
| ZhongYufan | 1:9c7bb3db32bc | 23 | _x[i] = 3+rand() % WIDTH-4; |
| ZhongYufan | 1:9c7bb3db32bc | 24 | _y[i] = 17+rand() % 27; |
| ZhongYufan | 1:9c7bb3db32bc | 25 | } |
| ZhongYufan | 1:9c7bb3db32bc | 26 | |
| ZhongYufan | 1:9c7bb3db32bc | 27 | |
| ZhongYufan | 1:9c7bb3db32bc | 28 | } |
| ZhongYufan | 1:9c7bb3db32bc | 29 | |
| ZhongYufan | 1:9c7bb3db32bc | 30 | void Gold::draw(N5110 &lcd) |
| ZhongYufan | 1:9c7bb3db32bc | 31 | { |
| ZhongYufan | 1:9c7bb3db32bc | 32 | for (int i=0;i<_gold_num;i++){ |
| ZhongYufan | 1:9c7bb3db32bc | 33 | while(_gold_reached[i]==0){ |
| ZhongYufan | 1:9c7bb3db32bc | 34 | lcd.drawCircle(_x[i],_y[i],2,FILL_BLACK); // lcd.drawCircle(_x[i],_y[i],3,FILL_BLACK); |
| ZhongYufan | 1:9c7bb3db32bc | 35 | } |
| ZhongYufan | 1:9c7bb3db32bc | 36 | } |
| 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 | 1:9c7bb3db32bc | 75 | Vector2D Gold::get_pos(int gold_i) |
| ZhongYufan | 1:9c7bb3db32bc | 76 | { |
| ZhongYufan | 1:9c7bb3db32bc | 77 | Vector2D p = {_x[gold_i],_y[gold_i]}; |
| ZhongYufan | 1:9c7bb3db32bc | 78 | return p; |
| ZhongYufan | 1:9c7bb3db32bc | 79 | } |
| ZhongYufan | 1:9c7bb3db32bc | 80 | |
| ZhongYufan | 1:9c7bb3db32bc | 81 | void Gold::set_pos(Vector2D p) { |
| ZhongYufan | 1:9c7bb3db32bc | 82 | for (int i=0;i<_gold_num;i++){ |
| ZhongYufan | 1:9c7bb3db32bc | 83 | while(_gold_reached[i]==0){ |
| ZhongYufan | 1:9c7bb3db32bc | 84 | _x[i] = p.x; |
| ZhongYufan | 1:9c7bb3db32bc | 85 | _y[i] = p.y; |
| ZhongYufan | 1:9c7bb3db32bc | 86 | } |
| ZhongYufan | 1:9c7bb3db32bc | 87 | } |
| ZhongYufan | 1:9c7bb3db32bc | 88 | } |