Студопедия
rus | ua | other

Home Random lecture






Использование массивов при программировании игр


Date: 2015-10-07; view: 460.


Option base1

 

Массивы могут быть одномерные, двумерные, трехмерные, четырехмерные и т.д.:

Dim a (1 To 10) As Integer -одномерный массив 10 ячеек
Dim a (1 To 10, 1 To 5) As Integer -двумерный массив 50 ячеек
Dim a (1 To 10, 1 To 5, 1 To 2) As Integer -трехмерный массив 100 ячеек
Dim a (1 To 10, 1 To 5, 1 To 2, 1 To 3) As Integer -четырехмерный массив 300 ячеек

 

Какая польза от массивов при программировании игр? Вряд ли хоть одну «умную» игру можно запрограммировать без применения массивов. Возьмем хотя бы «крестики-нолики» на поле размером 3 на 3. Вам придется рисовать на экране большие клетки, а в них – нолики (кружочки) после ваших ходов и крестики (пересекающиеся косые линии) после ходов компьютера. Но этого недостаточно. Чтобы компьютер не поставил случайно крестик в занятом поле, он должен хотя бы знать, в каких клетках крестики и нолики уже стоят. Анализировать для этого информацию о пикселах экрана очень неудобно. Гораздо разумнее заранее организовать Dim a (1 To 3, 1 To 3) As Integer и записывать туда в нужные места нолики после ходов человека и, скажем, единички после ходов компьютера. Сразу же после записи в массив 0 или 1 программа должна рисовать в соответствующем месте экрана кружок или крестик. Мыслить компьютер мог бы при помощи примерно таких операторов – if a(1,1)=0 And a(1,2)=0 Then a(1,3)=1. Это очевидный защитный ход компьютера - на два кружочка в ряду он ставит в тот же ряд крестик.

 

Проиллюстрируем эту идею подробнее на специально придуманном примитивном примере (типа морского боя).

Задание на создание игры: Играют друг против друга два человека на квадратном поле размером 2 на 2:

 
 

 

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

Сначала запрограммируем эту игру без графики.

Поле боя после двух выстрелов будет показано на экране в следующем виде:


<== previous lecture | next lecture ==>
Какие бывают массивы | Массивы элементов управления
lektsiopedia.org - 2013 год. | Page generation: 0.044 s.