Member 11158938 Ответов: 3

Как разрешить пользователю использовать число только один раз C#


Здравствуйте, я создаю игру Magic Square, и я создал 2D-массив для хранения нулей и создания доски 3 x 3, которая выглядит следующим образом...

0 0 0
0 0 0
0 0 0

Затем я создал цикл for, который запрашивал у пользователя целое число от [0,0] до [2,2], где оно заканчивалось, поэтому оно выглядело так, если предположить, что оно было набрано 1-9..

1 2 3
4 5 6
7 8 9

Мой вопрос заключается в том, как я могу позволить пользователю ввести только число от 1-9 и использовать его только один раз??

Что я уже пробовал:

Пробовал использовать массив bool, но я не знаю, как его настроить

BillWoodruff

Покажите код, который вы пробовали. Напишите обработчик KeyDown, который допускает только цифры. Создайте список или массив, содержащий числа 0~9.

Вы проявите некоторое усилие, и мы вам поможем ... учить.

3 Ответов

Рейтинг:
2

Patrice T

Цитата:
Пробовал использовать массив bool, но я не знаю, как его настроить

Независимо от того, какое практическое решение вы выберете, вы должны хранить введенные номера и для каждого нового номера сверяться с предыдущими.
Вы можете использовать массив битов, целочисленный массив или что угодно еще.
Что касается того, почему ваш код терпит неудачу, было бы проще, если бы вы его показали.


Рейтинг:
1

Richard MacCutchan

Используйте список(T) для сохранения введенных пользователем значений. Сначала проверьте, что введенное число находится в диапазоне от 1 до 9. Затем проверьте, есть ли это число в списке. Если он есть в списке, то отклоните ввод. Если его нет в списке, добавьте его и продолжайте.


Рейтинг:
0

W∴ Balboos, GHB

Если вы хотите следовать своей логической идее, вам не нужен массив. Просто целое число без знака и набор масок, по одной для каждого числа [1-9].

Маски могут выглядеть как x0001 x0002 x0004 (т. е. степени 2), но вы можете поместить их значения в массив, чтобы получить к ним доступ по индексу.

Теперь - когда пользователь выбирает значение, а оно с массивом: 0 не используется, используется !0.
Если он не используется, или вы тестируете целое число со значением, устанавливая его бит для будущего тестирования.

Или другой простой способ: создайте массив (10 x элементов, 0-9) и инициализируйте значения до нуля. Теперь, когда используется каждое число, установите значение этого элемента равным 1; затем вы можете просто проверить с помощью if(x[i]) и либо отклонить число, либо разрешить ему dset элемент массива, чтобы вы знали, что он был использован.