Может кто-нибудь помочь мне с заменой. Я думаю, что есть логическая ошибка. Я знаю, что источник и пункт назначения верны, поэтому что-то происходит с моими заявлениями if. Правила игры: игра начинается с структуры пирамиды, полной всех «+», за исключением одного круга «o», и вы можете перемещать привязку только по окружности (два места над/по диагонали), любая пропущенная часть будет заменить на круг. Таким образом, вы могли бы переместиться по диагонали на два прыжка, а средний прыгнул над куском, и он был бы обведен, как и исходное положение, но часть, на которую вы двигаетесь, будет заменена на «+». Визуальное изображение ниже. Кроме того, переменные соответствуют буквам. Пример: pa для точки A, pb для точки B и т. Д.Ошибка логики при замене головоломки прыжка
Первый шаг от D до A. Второй ход от K до D. Я получаю неправильный вывод. Пункты K, G и B должны быть пустыми, потому что B был пропущен с первого хода, и G пропущен в этом направлении. Но здесь я получаю A как свободный, хотя у него просто «+». Теперь A обновился с первого хода в игре, но теперь он вернулся в круг. А, или «па» должен был обновлен из следующего утверждения:
Вот ссылка на код: https://www.dropbox.com/s/puab7va8vosftdd/Source.c?dl=0
void moveHandler(char source, char destination, char *pa, char *pb, char *pc, char *pd, char *pe, char *pf,
char *pg, char *ph, char *pi, char *pj, char *pk, char *pl, char *pm, char *pn, char *po) {
char temp;
char middle;
if ((source || destination == 'D') && (destination || source == 'A')) {
temp = *pa;
*pa = *pd;
*pd = temp;
}
else if ((source || destination == 'K') && (destination || source == 'D')) {
temp = *pk;
*pk = *pd;
*pd = temp;
}
middle = (char) ((source + destination)/2);
switch(middle) {
case 66:
*pb = 'o';
break;
case 71:
*pg = 'o';
break;
default:
break;
}
}
вывода изображения: https://snag.gy/yh2c1M.jpg
Если '(источник || назначения ==«D»)' быть изменен на '((источник = = 'D') || (destinatio n == 'D'))? (во всех местах, где вы применяете этот логический тест) – ryyker
О, дерьмо.Позвольте мне попробовать. Спасибо –
Ну, на самом деле я хочу запустить его, если источником или пунктом назначения является d И если источник или пункт назначения является, если это имеет смысл. –