Обычно, начиная изучать новый язык программирования – я пробовал написать математическую игру Конвея «Жизнь».
Игра «Жизнь» (англ. 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/Игра_жизнь
По теме
Одноклеточные самособирающиеся роботы
Светодиодная матрица для ардуино
