Yufan Zhong / Mbed 2 deprecated GOLD_MINER

Dependencies:   mbed

Revision:
1:9c7bb3db32bc
Child:
8:c5969685cf02
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Gold/Gold.cpp	Wed Apr 22 15:52:04 2020 +0000
@@ -0,0 +1,88 @@
+#include "Gold.h"
+
+Gold::Gold()
+{
+
+}
+
+Gold::~Gold()
+{
+
+}
+
+void Gold::init(int gold_num)
+{
+   _gold_num = gold_num;
+   _gold_left = _gold_num;
+   
+   for (int i=0;i<_gold_num;i++){
+     _gold_caught[i] = 0;
+     _gold_reached[i] = 0;
+    
+    srand(time(NULL));
+    _x[i] = 3+rand() % WIDTH-4;
+    _y[i] = 17+rand() % 27; 
+    }
+
+    
+}
+
+void Gold::draw(N5110 &lcd)
+{
+    for (int i=0;i<_gold_num;i++){
+        while(_gold_reached[i]==0){
+          lcd.drawCircle(_x[i],_y[i],2,FILL_BLACK);   // lcd.drawCircle(_x[i],_y[i],3,FILL_BLACK);
+          }
+    } 
+}
+
+void Gold::update()
+{
+    for (int i=0;i<_gold_num;i++){
+        while(_gold_caught[i]==1){
+            _y[i]-=1;
+            if (_y[i]<=14) {
+                gold_reached(i);
+                }
+            }
+        }
+}
+
+void Gold::gold_caught(int caught_i)
+{
+    _gold_caught[caught_i]=1;
+}
+
+void Gold::gold_reached(int reached_i)
+{
+    _gold_reached[reached_i]=1;
+    _gold_left--;
+}
+
+
+
+int Gold::get_reached_num()
+{
+    int n=0;
+    for (int i=0;i<_gold_num;i++){
+        if (_gold_reached[i]==1){
+             n+=1;
+            }
+        }
+    return n;
+}
+
+Vector2D Gold::get_pos(int gold_i)
+{
+    Vector2D p = {_x[gold_i],_y[gold_i]};
+    return p;
+}
+
+void Gold::set_pos(Vector2D p) {
+    for (int i=0;i<_gold_num;i++){
+        while(_gold_reached[i]==0){
+          _x[i] = p.x;
+          _y[i] = p.y;
+          }
+    }
+}
\ No newline at end of file