Обычно, начиная изучать новый язык программирования – я пробовал написать математическую игру Конвея «Жизнь».
Игра «Жизнь» (англ. Conway’s Game of Life) — клеточный автомат(cellular automaton), придуманный английским математиком Джоном Конвеем (англ.) в 1970 году.
И хотя для ардуино – это не так актуально – программирование ведь идёт на С++.
Но, всё же, это новая платформа и нужно реализовать эту замечательную игру и для неё 🙂
За основу я взял свой старый исходник на С++ и просто модифицировал его для Arduino 🙂
В скетче реализован случайный засев игрового поля.
Загрузка из массива данных не захотела работать (возможно не хватает памяти 🙁 ) и я его закомментировал.
Замыкания границ не происходит.
Код скетча получился таким:
////////////////////////////////////////////////////////////////////// // // // Arduino LIFE GAME // // // // noonv RoboCraft.ru ////////////////////////////////////////////////////////////////////// // d - will die in next step // a - will born in next step // size of life-massive int L_SIZE = 15; int L_SIZEY = 25; // variables char l_mas[15+2][25+2]; // life-massive//char l_mas[L_SIZE+2][L_SIZEY+2]; // life-massive int l_i,l_j; // counter's int l_age=0; // age of population int l_coef=0; // coefficient for check cell void setup() { Serial.begin(9600); randomSeed(analogRead(0)); random_mas(); //load_mas(); // not working :( } void loop() { // print Hello :) Serial.print("Life "); // // set border // for(l_i=0;l_i5) { l_mas[l_i][l_j]='*'; //Serial.print(l_mas[l_i][l_j]); } else { l_mas[l_i][l_j]='0'; } } //Serial.println(""); } }
Загружаем в МК и смотрим, что нам выдаёт монитор COM-порта 🙂
Живём 🙂
Разумеется код можно (и нужно) оптимизировать – например, не тратить на клетку целый байт, а использовать один бит 😉
В дальнейшем – можно попробовать подключить к ардуине светодиодную матрицу и выводить информацию туда 😉
Ссылки
http://ru.wikipedia.org/wiki/Игра_жизнь
По теме
Одноклеточные самособирающиеся роботы
Светодиодная матрица для ардуино