Иллюстрированный самоучитель по Tirbo Pascal


Игра ним - часть 8


Судя по всему, нам понадобится организовать цикл; в ходе цикла для каждого ряда игрового поля будет выведена строка, в левой части которой указывается номер ряда, в правой - текущее количество фишек в нем, а посередине выводятся символы, имитирующие фишки. В принципе, можно выбрать любой символ ПК для обозначения фишки, например, X или О. Я предпочел воспользоваться символом псевдографики с кодом 220: этот символ представляет собой небольшой квадратик и легко ассоциируется с фишкой.

Procedure ShowField;

{ Отображает на экране текущее состояние игрового поля }

const

FISH = #220; {Символ-указатель фишки} 

Х0 = 4; {Левая колонка номеров рядов} 

X1 =72; {Правая колонка количества фишек} 

X = 20; {Левый край игрового поля} 

var

i,j : Integer; 

begin {ShowField} 

for i := 1 to nrow do begin

GotoXY(X0,i+4);

Write(i); {Номер ряда}

GotoXY(X1,i+4);

Write(col[i]:2); {Количество фишек в ряду}

for j := 1 to ncol[i] do {Вывод ряда фишек:}

begin

GotoXY(X+2*j,i+4); if j[i] then

Write(FISH) 

else

Write('.') 

end 

end 

end; {ShowField}

Символы FISH (квадратики) выводятся через одну позицию, чтобы не сливались на экране. В те позиции, в которых ранее стояли уже снятые с поля фишки, выводится точка.

Теперь вернемся к процедуре GETPLAYERMOVE. При вводе любого очередного хода игрок должен задать два целых числа X1 и Х2. Первое из них указывает номер ряда, а второе - количество фишек, которые игрок хочет забрать из этого ряда. Программа должна проконтролировать правильность задания этих чисел: X1 должно указывать непустой ряд, Х2 не может превышать количество фишек в этом ряду. Кроме того, мы должны условиться о двух особых случаях:

  • пользователь больше не хочет играть и дает команду завершить работу программы;
  • пользователь хочет изменить условия игры.

Пусть ввод числа X1 =0 означает команду выхода из программы, а X1 = -1 - команду изменения условий игры. Тогда можно написать такой начальный вариант процедуры:




- Начало -  - Назад -  - Вперед -



Книжный магазин