 |
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
13.11.2013, 21:17
|
#1
|
Оператор ЭВМ
Регистрация: 08.11.2013
Сообщений: 39
Написано одно полезное сообщение
|
Крестики нолики
Приветствую, вот я столкнулся с вопросом перед созданием свой игры крестики нолики.
Распишу небольшой алгоритм:
1|2|3
4|5|6
7|8|9
Комбинации такие: 123, 456, 789, 147, 258, 369, 159, 357
Я подумал, если ввести эти переменные a, b, c, d, e, f, g, h, i - каждая из которых будет отвечать за клетки от 1 до 9 соответственно.
Потом можно сделать условие: если а = (0 - колик, 1 - крестик) 1 и b = 1 и c = 1, то выигрыш крестика и тд, но мне кажется, что это слишком не оптимизировано, хотя правильно!
Как сделать эти условия более оптимизированные
__________________
Не бойся если ты один...
Бойся если ты ноль...
|
(Offline)
|
|
13.11.2013, 21:26
|
#2
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Крестики нолики
Завести массив 3х3, проходить в цикле по рядам, строкам и два диагональных варианта.
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
13.11.2013, 21:59
|
#3
|
Оператор ЭВМ
Регистрация: 08.11.2013
Сообщений: 39
Написано одно полезное сообщение
|
Ответ: Крестики нолики
Сообщение от SBJoker
Завести массив 3х3, проходить в цикле по рядам, строкам и два диагональных варианта.
|
Понял, но не понял. Как завести массив 3x3, по ряду пройти и строке знаю как, а как по диагонали?
__________________
Не бойся если ты один...
Бойся если ты ноль...
|
(Offline)
|
|
13.11.2013, 22:06
|
#4
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Крестики нолики
for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { mas[i][j]; // главная диагональ mas[i][2-j]; // побочная } }
|
(Offline)
|
|
13.11.2013, 22:30
|
#5
|
Оператор ЭВМ
Регистрация: 08.11.2013
Сообщений: 39
Написано одно полезное сообщение
|
Ответ: Крестики нолики
Сообщение от Den
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
mas[i][j]; // главная диагональ
mas[i][2-j]; // побочная
}
}
|
Спасибо, а как массив организовать?
int[,] mas;
for(int j = 0; j < 3; j++) {
mas[i, j]; // главная диагональ
mas[i, 2-j]; // побочная
Что-то типа того? Это ведь будет массив только для клеток диагоналей?
__________________
Не бойся если ты один...
Бойся если ты ноль...
|
(Offline)
|
|
13.11.2013, 23:45
|
#6
|
Оператор ЭВМ
Регистрация: 08.11.2013
Сообщений: 39
Написано одно полезное сообщение
|
Ответ: Крестики нолики
Вот еще столкнулся с проблемой, какой алгоритм у ИИ?
__________________
Не бойся если ты один...
Бойся если ты ноль...
|
(Offline)
|
|
13.11.2013, 23:47
|
#7
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Крестики нолики
Обломать все близкие к заполнению линии противника. Выбрать наиболее близкую к заполнению линию и продолжить её.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
14.11.2013, 00:36
|
#8
|
Оператор ЭВМ
Регистрация: 08.11.2013
Сообщений: 39
Написано одно полезное сообщение
|
Ответ: Крестики нолики
Сообщение от impersonalis
Обломать все близкие к заполнению линии противника. Выбрать наиболее близкую к заполнению линию и продолжить её.
|
Ага, то есть, можно тупо условиями сделать... Если в массиве, который выше там(предположим, что первая Х вторая З координата), то если срочный массив заполнен на 2 клетки, то заполняем последнюю, с остальными также. А сам бот ещё таким же условием и для себя должен высчитывать комбинации, тоже самое в принципе... Спасибо, разберёмся.
__________________
Не бойся если ты один...
Бойся если ты ноль...
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.11.2013, 14:19
|
#9
|
Знающий
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений (для 229 пользователей)
|
Ответ: Крестики нолики
|
(Offline)
|
|
21.11.2013, 23:40
|
#10
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: Крестики нолики
Когда-то писал полный перебор ходов с случайным выбором из лучших возможных. Телефон справлялся нормально.
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:38.
|