Основной проблемой является ошибка с i < numRows
вместо j < numRows
.
В соответствии с запросом, вот некоторые другие модификации, которые вы могли бы и должны реализовать:
- Запись
printf("%8i", ...
вместо printf("%i\t", ...
, так как последний, скорее всего, распределит числа неравномерно. - Санируйте ваш ввод.Прямо сейчас вы можете вызвать сбой программы, введя странные значения.(Кроме того, дайте пользователю подсказку о том, следует ли использовать значения 0, 1, 2 или 1, 2, 3.)
- Прямо сейчас вы не тасуете строку 0 и столбец 0. Например,вы начинаете со столбца 6 и проходите по столбцам один за другим, но останавливаетесь, как только достигнете 0, прежде чем снова войти в цикл.
- Существует проблема, при которой вы часто замечаете, что одни и те же числа встречаются вместев том же ряду.Я верю, хотя я не совсем уверен, что проблема в том, что вы сортируете строки.Точка размещения выбранной строки в середине колоды все время состоит в том, чтобы заставить выбранную карту двигаться к центру.Если вы сортируете строку, вы позволяете карточке отойти от центра.Я прокомментировал сортировку и больше не мог заметить проблему.Есть ли причина, по которой вы сортируете строки?
- Относительно дизайна: Лично я бы не отображал перетасованный массив и не ждал нажатия клавиш перед началом.Вместо этого я написал бы инструкции и сразу же попросил бы игрока ввести число.Я всегда пытался ввести число уже после того, как первый массив был отображен.Очень надоедливый.:)