03.11.2014 Views

Выпуск 5 - Российский государственный профессионально ...

Выпуск 5 - Российский государственный профессионально ...

Выпуск 5 - Российский государственный профессионально ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

В МИР ИНФОРМАТИКИ № 176<br />

For j = 1 To 4 'Четыре корабля<br />

Do<br />

номер = 2 + Int(Rnd * 37)<br />

Loop Until поле(номер) = 0<br />

And поле(номер + 1) = 0<br />

And поле(номер - 1) = 0<br />

поле(номер) = 1<br />

тип(номер) = 1<br />

Next j<br />

Напомним, что для получения различных последовательностей<br />

случайных чисел следует использовать<br />

процедуру Randomize с параметром Timer:<br />

Randomize Timer<br />

Задания для самостоятельной работы<br />

1. Оформите лист электронной таблицы с необходимыми<br />

макросами по описанной методике.<br />

Предусмотрите также подсчет числа выстрелов и<br />

вывод этого значения в одной из ячеек, например,<br />

в ячейке L8 (а левее не выведете соответствующее<br />

сообщение):<br />

Range("L8").Value = k<br />

— где k — общее число сделанных выстрелов.<br />

Проведите чемпионат своего класса в разработанную<br />

вами игру. Фамилию и имя ученика, показавшего<br />

лучший результат (сделавшего наименьшее<br />

число выстрелов), и сам результат пришлите в<br />

редакцию.<br />

2. Из приведенных фрагментов для случайного<br />

выбора положения кораблей видно, что 3-, 2- и односекционные<br />

корабли никогда не будут размещаться в<br />

первой и последней клетках поля. И, хотя играющий<br />

об этом знать не будет, все равно это нежелательно.<br />

Использовать эти клетки можно, если описать массив<br />

поле с дополнительными элементами:<br />

Dim поле(0 To 41) As Integer<br />

Разработайте вариант игры, в котором для выбора<br />

используются формулы, обеспечивающие возможность<br />

размещения кораблей в первой и последней<br />

клетках.<br />

3. Как правило, играющий в игру ведет учет клеток,<br />

по которым он сделал выстрел. Тем не менее<br />

для наглядности клетки поля с “ранеными” секциями<br />

можно окрашивать, например, в зеленый цвет.<br />

Для этого в случае “ранения” той или иной секции<br />

следует предусмотреть в макросе заливку ячейки:<br />

Range("A2").Cells(, ход).<br />

Interior.ColorIndex = 4<br />

Запись Range("A2").Cells(, ход) позволяет<br />

обратиться к ячейке (клетке поля) с номером ход,<br />

запись Interior.ColorIndex соответствует свойству<br />

ячейки, определяющему цвет ее заливки, 4 —<br />

код зеленого цвета.<br />

Разработайте вариант игры, в котором происходит<br />

окрашивание нужных клеток. При этом в<br />

макросе, связанном с кнопкой с надписью “Новая<br />

игра”, следует предусмотреть заливку всех клеток<br />

поля белым цветом (код этого цвета — 0).<br />

4. Разработайте вариант игры с квадратным<br />

игровым полем размером 8 на 8 клеток.<br />

Указания по выполнению<br />

1. Принять, что корабли могут располагаться<br />

вертикально и горизонтально, но не по диагонали,<br />

и без “изломов”.<br />

2. При размещении кораблей, кроме случайного<br />

выбора места, должен проводиться также случайный<br />

выбор ориентации корабля (вертикальная или<br />

горизонтальная).<br />

3. Для каждой секции кораблей следует запомнить<br />

ориентацию данного корабля.<br />

4. С учетом ориентации должна проводиться также<br />

проверка на “потопление” корабля.<br />

Разработанные варианты игры (можно не все)<br />

присылайте в редакцию. Лучшие работы мы поощрим.<br />

В одном из будущих выпусков “В мир информатики”<br />

будет описана методика моделирования игры<br />

“Морской бой” средствами программирования на<br />

“самостоятельном” языке высокого уровня.<br />

62<br />

май 2012 / ИНФОРМАТИКА<br />

В выпуске “В мир информатики” № 170 была опубликована статья “Логические и сдвиговые операции”.<br />

В статье отмечалось, что в языке программирования Паскаль отсутствует возможность выполнения<br />

циклических сдвигов. Ознакомившись со статьей, Измайлов Андрей, ученик лицея № 4 им. Героя<br />

Советского Союза Г.Б. Злотина из г. Орла (учитель Чапкевич И.М.), разработал функции, с помощью<br />

которых можно реализовывать такие сдвиги (вправо и влево). Редакция решила наградить<br />

Андрея дипломом. Поздравляем!<br />

ВНИМАНИЕ! КОНКУРС<br />

Итоги конкурса № 91<br />

Напомним, что необходимо было по заданным<br />

словам, удалив в них одну букву и заменив другую,<br />

получить термин (или фамилию ученого), связанный<br />

с информатикой и ИКТ. Было предложено также<br />

привести комментарии к найденным словам.<br />

Конкурс проводился в два тура, а его итоги подводились<br />

с учетом двух туров в целом.<br />

Участниками конкурса являлись:<br />

— Аветисян Мариам и Иванова Алена, Совхозная<br />

средняя школа, Московская обл., Серебряно-Прудский<br />

р-н, поселок Успенский, учитель Жарикова Е.Н.;<br />

— Андрющенко Александр и Свистунов Николай,<br />

Ставропольский край, Кочубеевский р-н,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!