PSET3 game of fifteen выводит неверный
To understand the code's goal, please go to: <a href="http://cdn.cs50.net/2016/x/psets/3/pset3/pset3.html#the_game_begins">Problem Set 3: Game of Fifteen</a> My code doesn't show any error. My output, however, is wrong in the last part ( switching the 1 and 2 if the d dimension is even). The 1 and 2 won't switch.
<pre>Some example outputs: <pre>~/workspace/pset3/fifteen/ $ ./fifteen 4 WELCOME TO GAME OF FIFTEEN 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 _ Tile to move: ^C ~/workspace/pset3/fifteen/ $ ./fifteen 3 WELCOME TO GAME OF FIFTEEN 8 7 6 5 4 3 2 1 _ Tile to move:
Подробное Изложение.:
Если d-размерность нечетна, то порядок последних 2 чисел должен быть: 1 2.
Если d четно, то порядок последних 2 чисел должен быть: 2 1.
Ошибка в моем выводе заключается в том, что эти 2 числа печатаются в неправильном порядке С d как четными. В приведенном выше примере мой вывод для d как 4 дает последние 2 числа как 2 1 вместо 1 2.
PS: Я пробовал gdb. Я еще не мог сделать вывод о какой-либо явной ошибке (по точкам останова и печатным значениям).
Большое спасибо,
Что я уже пробовал:
void init(void) { int c = 1; for (int a = 0; a < d; a++) { for (int b = 0; b < d; b++) { board[a][b] = d*d - c; c++; if (c == d*d -2) { if (d % 2 == 0) { board[d-1][d-3] = 1; board[d-1][d-2] = 2; board[d-1][d-1] = 0; } else if (d % 2 != 0) { board[d-1][d-3] = 2; board[d-1][d-2] = 1; board[d-1][d-1] = 0; } } } } } /** * Prints the board in its current state. */ void draw(void) { for (int e = 0; e < d; e++) { for (int f = 0; f < d; f++) { if (!( ( e == d-1) && ( f == d-1) )) { printf("%c %2d",' ', board[e][f]); } else { printf("%2s"," _"); } } printf("\n"); } }
Patrice T
"Мой вывод, однако, неправильный", неправильный не информативен, определите, что неправильно.
Показать фактический выход и желаемый выход.
Member 12919791
Если d-размерность нечетна, то порядок последних 2 чисел должен быть: 1 2.
Если d четно, то порядок последних 2 чисел должен быть: 2 1.
Ошибка в моем выводе заключается в том, что эти 2 числа печатаются в неправильном порядке С d как четными. В приведенном выше примере мой вывод для d как 4 дает последние 2 числа как 2 1 вместо 1 2.
Спасибо,
Patrice T
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.
Member 12919791
Хорошо, спасибо.
Richard MacCutchan
Вы должны начать с использования значимых имен для ваших переменных. Использование a,b, c и т. д. Ничего нам не говорит. Вам также нужно объяснить, что должен делать код; в его нынешнем виде угадать невозможно.