Как написать свою библиотеку?

ТС!
Попробую поучить дальше.
Ниже пример небольшого кода. Который иллюстрирует много приемов программирования на С++.
Это уменьшенный “Морской бой” с одним однопалубным карабликом.
Я специально ничего не комментировал, что ты разбирался с задачей.

Задачи

  • Понять и прокомментировать код.
  • изменить код добавив второй однопалубный кораблик.
  • изменить код, для избегания повторных выстрелов в то же поле.
  • добавить двухпалубный кораблик.

Этих 4-х задач должно хватить на одну неделю. Если потребуется дольше - это плохой признак!

constexpr int SIZE = 4;

class Coordinates {
  private:
    int x;
    int y;

  public:
    Coordinates (int _x, int _y) {
      x = _x;
      y = _y;
    }
    Coordinates () {
      x = random(0, SIZE);
      y = random(0, SIZE);
    }

    int getx () {
      return x;
    }
    int gety () {
      return y;
    }
};

class Mymap {
  private:
    Coordinates * ship;

  public:
    Mymap () {}
    ~Mymap() {
      if (ship != NULL) delete (ship);
    }
    void init () {
      ship = new Coordinates();
      Serial.print("Корабль на поле: ");
      Serial.print(ship->getx());
      Serial.print(" : ");
      Serial.print(ship->gety());
      Serial.println();
    }

    bool shot(int x, int y) {
      Serial.print("Выстрел по полю: ");
      Serial.print(x);
      Serial.print(" : ");
      Serial.print(y);
      Serial.print(">>>>");
      if (x == ship->getx() && y == ship->gety()) {
        Serial.println("Попал!");
        return true;
      }
      else {
        Serial.println("Мимо");
        return false;
      }
    }
};

Mymap mymap;

void setup() {
  randomSeed(analogRead(0));
  Serial.begin(115200);
  mymap.init();
}

void loop() {
  static int counter = 1;
  Serial.print("Попытка №");
  Serial.print(counter++);
  Serial.print(" ");
  if (mymap.shot(random(0, SIZE), random(0, SIZE)))
      for (;;);
  delay(1000);

}

И фото работы на Вокви:

по моему, это ты над ним стебешься, а не мы :sweat_smile: :rofl: :joy:

вот нихера тебя не понял! Я-то чем? Хочет учиться - поймет. Не поймёт - вы будете правы.
Написал специально так, что понять можно с двузначным IQ.

75 строка его похоронит своим местоположением …

75 строка его похоронит своим местоположением …

специально. Мне важно показать КАК именно на МК останавливают работу. Эту строчку он, если будет читать чужой код, увидит в жизни чаще, чем каждый день.

Я уже видел на форуме неадекватную реакцию на такой прием. Если уж учить - то нормально учить. Правильно.

Я про форматирование - либо сдвинуть вправо на ТАБ, либо поднять к IF …

аааа… Да! Тут прав! :wink: Ща…

откуда двузначный IQ у буратины, ты шо?

IQ может и двузначный, но про знак перед ним не забывайте !

Мда, ты не правильно считаешь (кстати, странно что в цитате не ставятся номера строк), я спрашивал вот про эту строку:

String my_test::s_value;

Что ты этой строкой хотел сказать?

ЗЫ: И выучи уже (чтобы от зубов отскакивало):

Как не говорил? А вот это тень отца Гамлета сказала?

У меня русского 3 класса образования и я понял ТС так «читаю книгу книгу по C++, в ней 1000 страниц»

Если бы ТС имел ввиду «читаю 1000ую страницу» ,хотелось бы верить, то написал бы «читаю книга с++ на 1000 странице сейчас» , что вообще не говорит о том что были прочтены 999 до этого. .

ну что сказать - вас двое.
поздравляю!
понять вас - мне надо выкинуть, а точнее свести, свой уровень образования до вашего. я даже не знаю сколько это стоит, даже в биткоинтах, и надо оно мне.

3 класса русского != остальное образование (включая ВУЗ) я не заканчивал на другом языке :wink:

Чиво?

После 3ех лет обучения в русскоговорящей стране , обучение продолжилось в другой-не русскоговорящей стране, на другом языке.

Спугнули мальца.

Он уже изучил 1000 страничную книгу и взялся писать -

Теперь ищет книгу по схемотехнике …

Этот книг не ищет, этот просто отлучился задолбать форумы по схемотехнике.

4 лайка

Что за переменная void.зачем она ?
Она может хранить в себе любой тип данных я так понял.

  Serial.begin(9600);
}

void loop() {
  int x = 10;
  void* v = &x;

  Serial.print(*(int*)v);
  delay(100);
}