?

Log in

No account? Create an account
gvozdeff

Самый простой пример использования тригонометрии. Итак, мы хотим нарисовать на экране часы со стрелками, чтобы они показывали текущее время. Стрелки – это отрезки. Один конец отрезка находится в центре часов, другой показывает время.

Начнем с часовой стрелки. Чтобы вычислить, куда она должна показывать концом, рассчитаем угол, на который она поворачивается каждый час. Всего у нее 12 положений, а в круге 360⁰. Значит, один час равен 30⁰. Как же нам повернуть стрелку на 30⁰? Очень просто, надо задать координаты конца отрезка равными косинусу 30⁰ и синусу 30⁰. Мы получим стрелку, показывающую на 1 час. Чтобы показать 2 часа, нужно удвоить угол, то есть, берем косинус и синус угла 2*30⁰. Чтобы показать, допустим, 7 часов, берем угол 7*30⁰. Когда стрелка обошла круг, ей нужно снова показать на 12. Она туда показывает дважды в сутки, в 0 часов и в 12. А у нас в программе она будет показывать 0⁰ и 360⁰. А в 13 часов она покажет угол 390⁰. Можно на калькуляторе убедиться, что синус и косинус углов 30⁰ и 390⁰ те же самые. И стрелка будет показывать в том же направлении, то есть 390⁰ она изобразит, как 360⁰ + 30⁰, указав на 30⁰, и только мы с вами и наша программа будем в курсе, что стрелка показывает на 13*30 = 390⁰, а конечный пользователь увидит 1 час дня.

Тут у проницательного программиста возникнет недоумение: часовая стрелка обычных часов не перескакивает с одной цифры на другую, и в полвторого показывает на середину между 1 и 2. Это решается невероятно легко.

Читать дальше...Свернуть )

Запись опубликована gvozdeff.com. You can comment here or there.

 
 
gvozdeff
06 Июнь 2013 @ 16:00

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

Но есть варианты с усложненными правилами. Не знаю уж, кто такой Сильвермэн, в сети нашел только программиста, создававшего движок Duke Nukem. Но есть вариант игры, который называется «Крестики-нолики Сильвермэна». Игроки так же поочередно ставят крестики и нолики на поле 4х4, но задача при этом меняется. Задача играющего крестиками в том, чтобы на поле выставился ряд из четырех крестиков или четырех ноликов, неважно. Задача играющего ноликами противоположна: не допустить полных рядов ни крестиков, ни ноликов.

Например, если в следующей позиции ход играющего крестиками,

silverman

то он проигрывает, делая ход на a2, и выигрывает, ходя на любое другое поле. Допустим, он пойдет на c1, второму игроку нельзя ставить нолик на a2, он пойдет на c2 или d2, а первый игрок поставит крестик на одно из этих же полей, которое будет свободным. Второму игроку останется единственное поле для хода: a2, и вертикальный ряд ноликов будет закончен, что приведет к победе первого игрока.

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

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

Запись опубликована gvozdeff.com. You can comment here or there.

Метки:
 
 
 
gvozdeff
Сегодня будем делать квартальный календарь. В Excel, разумеется. Я, кстати, на рабочем столе именно такой и использую. Сделал я его давно, но сегодня решил сделать заново, чтобы попутно прояснить множество полезных вещей. Да, кстати, вас еще не достало это окно справа «Приступая к работе»? Место ведь занимает. Лечится так: Вид -> Область задач. Совсем лечится так: Сервис -> Параметры -> Вид -> Область задач при запуске. Галку сбрасываем, больше не появится.

Для начала выделим семь ячеек от А1 до G1 и объеденим их: Формат -> Ячейки -> Выравнивание -> Объединение ячеек. Для объединения ячеек есть также специальная кнопка на панели форматирования. Вот только обратно разъединить с ее помощью не выйдет, для этого надо будет галку сбросить по указанному выше пути. Вставим туда формулу...Свернуть )

Кстати, я пишу всю эту ерунду, конечно, не просто так, а руководствуясь чисто меркантильными соображениями. На одном энтузиазме далеко не уедешь. Так что очень прошу всех прочитавших, если есть такая возможность, просто поделиться ссылкой на эту писанину с окружающими. А то, когда отдачи нет (хотя бы в виде увеличения числа зафрендивших), запал быстро иссякает.


©2006stalicGvozdeff
Метки: ,