Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Внизположение в массиве Найти похожие ветки
← →
картограф © (2005-10-25 10:07) [0]Здравствуйте!
Мне нужно проверить как расположены элементы в массиве: три в одну строчку, в столбик, по диагонале и т.д.(как в крестика-ноликах).
if pole[i,j]="0" and pole[i+1,j]="0" and pole[i+2,j]="0" then pobeda:= true;
if pole[i,j]="0" and pole[i,j+1]="0" and pole[i,j+2]="0" then pobeda:= true;
if pole[i,j]="0" and pole[i-1,j-1]="0" and pole[i-2,j-2]="0" then pobeda:= true;
и так далее, рассматривая все случаи.
Но при таком условии иногда индекс выходит за границы массива( когда i=j=1 и проверяется условие 3) и происходит ошибка.
Каким образом можно проверить требуемое условие и избежать этой ошибки? Или придумать другой алгоритм проверки?
Надеюсь на Вашу помошь.
← →
Kot Andrei © (2005-10-25 10:21) [1]>>Или придумать другой алгоритм проверки?
да, думаю это поможет...
← →
картограф © (2005-10-25 10:42) [2]а по какоми принципу проверять условие? с чего начать?
пожалуйста, подскажите...
← →
clickmaker © (2005-10-25 12:53) [3]http://www.yandex.ru/yandsearch?text=%EA%F0%E5%F1%F2%E8%EA%E8+%ED%EE%EB%E8%EA%E8+%E0%EB%E3%EE%F0%E8%F2%EC&stype=www
← →
картограф © (2005-10-25 15:04) [4]из всего найденого, понял что для моей цели нужно:
const
lin : array[1..8,1..3] of byte =
((1,2,3),(4,5,6),(7,8,9),
(1,4,7),(2,5,8),(3,6,9),
(1,5,9),(3,5,7));
Вот эта функция:function Fin(pos: position)
var
ni,sa,so,i,j,sj,res:byte;
begin
ni:=5;
res:=0;
for i:=1 to 8 do begin
sa:=5;so:=0;li[i]:=0;
for j:=1 to 3 do begin
sj:=pos[lin[i,j]];
sa := sa and sj;
so := so or sj;
li[i] := li[i] + sj
end;
res := res or sa;
ni := ni and so
end;
if ni=5 then res:=3;
Fin:=res
end;
Видно, что выходными значениями этой функции являются:
1 - победа крестиков;
4 - победа ноликов;
3 - ничья;
0 - игра не окончена.
Глобальный массив li: array [1..8] of byte для определения признаков окончания игры не нужен. В нем предварительно готовятся данные (суммы значений фигур по каждому ряду) для дальнейшего определения рейтингов полей."
но, если можно, хоть немного пояснейи к этому... Все же когда-то были новичками...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c