03.11.2014 Views

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

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

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

В МИР ИНФОРМАТИКИ № 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!