Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:laboratory_iot_c:exp53 [2024/12/15 16:54] – [Программный код эксперимента] labuser30products:laboratory_iot_c:exp53 [2024/12/15 17:03] (текущий) – [Программный код эксперимента] labuser30
Строка 290: Строка 290:
     }     }
 }; };
- 
-class Button { 
-  private: 
-    int pin; 
-    bool pressState; 
-    bool oldState; 
-  
-  public:  
-    Button(int _pin, bool _pressState) { 
-      pin = _pin; 
-      pinMode(pin, INPUT); 
-      pressState = _pressState; 
-      oldState = not _pressState; 
-    } 
-  
-    bool onPress() { 
-      bool state = digitalRead(pin); 
-      if (state != oldState){ 
-        oldState = state; 
-        if (state == pressState) return true; 
-      } 
-      return false; 
-    } 
-};  
- 
-Button btn_up(16, HIGH); 
-Button btn_down(15, HIGH); 
-Button btn_left(12, HIGH); 
-Button btn_right(0, LOW); 
  
 const int boxes_number = 3; const int boxes_number = 3;
Строка 366: Строка 337:
 </file> </file>
  
-Для хранения объектов целей и ящиков создаем массивы+Создаем массив объектов — ящиков c координатами: 3, 4; 4, 6; 2, 7.  
-<code python[enable_line_numbers="2", start_line_numbers_at="28"]> +<code arduino[enable_line_numbers="2", start_line_numbers_at="131"]> 
-Gates [] +const int boxes_number 3; 
-Boxes = []+Box boxes[boxes_number= { 
 +  {&tft, &reader, 3, 4}, 
 +  {&tft, &reader, 4, 6}, 
 +  {&tft, &reader, 2, 7},   
 +};
 </code> </code>
  
-Создаем три объекта ящиков с координатами 3,4; 4,и 2,7: +Создаем массив объектов — целей c координатами: 6, 3; 6, 4; 6, 5.  
-<code python[enable_line_numbers="2", start_line_numbers_at="110"]> +<code arduino[enable_line_numbers="2", start_line_numbers_at="138"]> 
-Boxes.append(Box(tft, 3,4)) +const int gates_number = 3; 
-Boxes.append(Box(tft, 4,6)) +Gate gates[gates_number] = { 
-Boxes.append(Box(tft, 2,7))+  {&tft, &reader, 6, 3}
 +  {&tft, &reader, 6, 4}, 
 +  {&tft, &reader6, 5},   
 +};
 </code> </code>
  
-Оператор ''append'' добавляет элементы в конец массива.  +Создаем кладовщика
- +<code arduino[enable_line_numbers="2", start_line_numbers_at="145"]> 
-Создаем объекты целей+Man man(&tft, &reader5, 6);
-<code python[enable_line_numbers="2", start_line_numbers_at="114"]> +
-Gates.append(Gate(tft, 6,3)) +
-Gates.append(Gate(tft, 6,4)) +
-Gates.append(Gate(tft, 6,5))+
 </code> </code>
  
-Создаем кладовщика: +Вызываем метод ''draw()'' для элементов массивов ящиков и целей, и для кладовщика. 
-<code python[enable_line_numbers="2", start_line_numbers_at="118"]> +<code arduino[enable_line_numbers="2", start_line_numbers_at="162"]> 
-man Man(tft, 5, 6)+  for (int i 0; i < boxes_number; i++) { 
 +    boxes[i].draw(); 
 +  } 
 + 
 +  for (int i = 0; i < gates_number; i++) { 
 +    gates[i].draw(); 
 +  } 
 +   
 +  man.draw();
 </code> </code>
  
 Теперь мы имеем игровое поле с лабиринтом, кладовщика, ящики и цели. В следующем эксперименте мы научим кладовщика двигаться при нажатиях на кнопки. Теперь мы имеем игровое поле с лабиринтом, кладовщика, ящики и цели. В следующем эксперименте мы научим кладовщика двигаться при нажатиях на кнопки.