fortrestssite.narod.ru

Мой Е-mail: fortrestsob@mail.ru

Основа

Главная
Картинки
Проекты
Чат
Форум

Книжки

Рекорды
Сундук
Голосования
Анекдоты
Игры
Флэшки
Остальные
Timeold
Коды
Новость
   [05.05]  У сайта началась новая жизнь!!!
Избранное

 

Большая просьба! Так как название моего сайта сложное и непонятное, добавьте, пожалуйста, мой адрес в "Избранное" - а то вдруг забудете! :)

 

Проект Паркетчик:

Номер тринадцатый:

Сначала объясняю правила игры:

Живет колония. В ней живут клетки (точки, плитки - в "Паркетчике"). если клетка соседствует с 4 и более клетками или с 1, 0, то она умирает; а если пустое место где может находится клетка соседствует с 3мя клетками, то там появляется новая. Игра идет ходами, тоесть - в один ход просчитываются клетки которые умирают и которые рождаются и рисуется новый рисунок.

Попытаемся эту игру сделать:

За каждый ход мы должны пометить и умирающие и рождающиеся, так как если пометить рождающиеся цветом живых клеток, то вокруг живой клетки может оказаться 4 и более клеток и она станет умирающей, а если убрать сразу умирающие, то некоторые клетки не родятся.
И ка-же сделать?
А?
Давайте подумаем...

Решение есть, нужно просто сделать поле в два раза большим (если кто не знает: паркет-создать новый паркет) и на второй части поля (можно поделить условно, а можно и поставить стенку) создадим копию левой части - будем смотреть по правой, а делать на левой. Затем очистим правое поле и опять копируем и т.д.
Считать соседей мы будем как и в 11 номере.

Да и на последок, сделайте у краёв левого поля зазор в одну клетку, по которой паркетчик не будет бегать, иначе он при счете соседей врежется в стену.

Вроде все

Коды:
Нормальная. Колония живет 200 лет:

Программа
цел:лет, кл, год, сто, стр, соседи,;
{соседи:=0
кл:=0
лет:=0
Делать от год:=1 до 200 {
лет:=лет+1
Делать от сто:=20 до 35 {
Делать от стр:=2 до 17 {
Перейти на( сто,стр );
Если ( к или з ) то {
Снять плитку;
}
};
};

Делать от сто:=2 до 17 {

Делать от стр:=2 до 17 {
Перейти на( сто,стр );

Если ( к ) то {
Перейти на( сто+18,стр );
Положить( к );
кл:=кл+1
}
};
};

Делать от сто:=20 до 35 {

Делать от стр:=2 до 17 {
Перейти на( сто,стр );


соседи:=0

Шаг вверх;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг вправо;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг вниз;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг вниз;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг влево;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг влево;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг вверх;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг вверх;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг вправо;
Шаг вниз;


Если ( (не к) и (соседи=3) ) то {
Перейти на( сто-18,стр );
Положить( к );
}

Если ( (к) и ((соседи>3) ИЛИ (соседи<2)) ) то {
Перейти на( сто-18,стр );
Снять плитку;
}
};
};

Если ( кл=0 ) то {
Стоп;
}иначе { кл:=0 };
};
}

 

Усовершенствованная (сколько лет? Запустите, сами поймете):

Программа
цел:лет, кл, год, сто, стр, соседи, с, ж, см, жз, л;
{соседи:=0
см:=0
жз:=0
кл:=0
лет:=0
Запросить "Сколько лет прожить колонии:", л;
Делать от год:=1 до л {
с:=0
ж:=0
лет:=лет+1
Делать от сто:=20 до 35 {
Делать от стр:=2 до 17 {
Перейти на( сто,стр );
Если ( к или з ) то {
Снять плитку;
}
};
};

Делать от сто:=2 до 17 {

Делать от стр:=2 до 17 {
Перейти на( сто,стр );

Если ( к ) то {
Перейти на( сто+18,стр );
Положить( к );
кл:=кл+1
}
};
};

Делать от сто:=20 до 35 {

Делать от стр:=2 до 17 {
Перейти на( сто,стр );


соседи:=0

Шаг вверх;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг вправо;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг вниз;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг вниз;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг влево;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг влево;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг вверх;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг вверх;
Если ( к ) то {соседи:=соседи+1 ;}
Шаг вправо;
Шаг вниз;


Если ( (не к) и (соседи=3) ) то {
Перейти на( сто-18,стр );
Положить( к );
Сообщить "Родился новый человек!";
ж:=ж+1
жз:=жз+1
}

Если ( (к) и ((соседи>3) ИЛИ (соседи<2)) ) то {
Перейти на( сто-18,стр );
Снять плитку;
Сообщить "Один человек умер!";
с:=с+1
см:=см+1
}
};
};

Сообщить лет, "год.Умерло человек:",с, " родилось:",ж ;
Если ( кл=0 ) то {
Сообщить "Колония выродилась!!! Набрано",жз-см-10,"очк.";
Стоп;
}иначе { кл:=0 };
};

Сообщить "Победа!!! Набрано:",жз-см,"очк.";
}

Всегда свежий анекдот:

Ссылки на дружеские сайты

 

 
Hosted by uCoz