ÐÑпÑÑк 5 - РоÑÑийÑкий гоÑÑдаÑÑÑвеннÑй пÑоÑеÑÑионалÑно ...
ÐÑпÑÑк 5 - РоÑÑийÑкий гоÑÑдаÑÑÑвеннÑй пÑоÑеÑÑионалÑно ...
ÐÑпÑÑк 5 - РоÑÑийÑкий гоÑÑдаÑÑÑвеннÑй пÑоÑеÑÑионалÑно ...
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 />
Ставропольский край, Кочубеевский р-н,