Реализация метода Getlmagelndex() во многом аналогична этому методу. Только перебор происходит не по колоде, а по настольному раскладу, хранящемуся в трехмерном массиве Well. И ведется он не с нуля, а с конца каждой стопки Well[line][pos] к началу — так удобнее для будущего показа содержимого стопок. Обратите внимание на этот цикл:

for( i = PACK_TOTAL-1; i >= 0; i - )

Здесь счетчик i получает значение 103 (последний элемент стопки из 104 карт, считая с нуля), и понижается до 0 включительно с помощью операции «—».

int TFormI::GetImageIndex(int line, int pos)

{

int i;

for( i == PACK_TOTAL-1; i >= 0; i-- )

if( Well[line][pos][i].Is ) .

return Well[line][pos][i].GetSuit()*VALUE_NUM + Well[line][pos][i].GetValueO ;

return NONE_NUM;

}

Добавление и удаление карт из стопок

Для удаления карты из стопки pos группы line создадим метод TCard GetCard(int line, int pos, bool view);

Он может использоваться не только для изъятия верхней карты соответствующей стопки, но и для простого просмотра ее значения (параметр view должен в этом случае иметь значение true). В любом случае методом будет возвращаться соответствующее значение карты.

TCard TFormI::GetCard( int line, int pos, bool view)

{

int i;

for( i = PACK_TOTAL-1; i >= 0; i - )

v

if( Well[line][pos] [i].Is ) { // карта найдена:

200