Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 13.11.2013, 21:17   #1
Uawi
Оператор ЭВМ
 
Регистрация: 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
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Крестики нолики

Завести массив 3х3, проходить в цикле по рядам, строкам и два диагональных варианта.
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
impersonalis (13.11.2013), Reizel (14.11.2013)
Старый 13.11.2013, 21:59   #3
Uawi
Оператор ЭВМ
 
Регистрация: 08.11.2013
Сообщений: 39
Написано одно полезное сообщение
Ответ: Крестики нолики

Сообщение от SBJoker Посмотреть сообщение
Завести массив 3х3, проходить в цикле по рядам, строкам и два диагональных варианта.
Понял, но не понял. Как завести массив 3x3, по ряду пройти и строке знаю как, а как по диагонали?
__________________
Не бойся если ты один...
Бойся если ты ноль...
(Offline)
 
Ответить с цитированием
Старый 13.11.2013, 22:06   #4
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Крестики нолики

for(int i 03i++) {
    for(
int j 03j++) {
        
mas[i][j]; // главная диагональ
        
mas[i][2-j]; // побочная
    
}

(Offline)
 
Ответить с цитированием
Старый 13.11.2013, 22:30   #5
Uawi
Оператор ЭВМ
 
Регистрация: 08.11.2013
Сообщений: 39
Написано одно полезное сообщение
Ответ: Крестики нолики

Сообщение от Den Посмотреть сообщение
for(int i 03i++) {
    for(
int j 03j++) {
        
mas[i][j]; // главная диагональ
        
mas[i][2-j]; // побочная
    
}

Спасибо, а как массив организовать?

int[,] mas;
    for(
int j 03j++) {
        
mas[ij]; // главная диагональ
        
mas[i2-j]; // побочная 
Что-то типа того? Это ведь будет массив только для клеток диагоналей?
__________________
Не бойся если ты один...
Бойся если ты ноль...
(Offline)
 
Ответить с цитированием
Старый 13.11.2013, 23:45   #6
Uawi
Оператор ЭВМ
 
Регистрация: 08.11.2013
Сообщений: 39
Написано одно полезное сообщение
Ответ: Крестики нолики

Вот еще столкнулся с проблемой, какой алгоритм у ИИ?
__________________
Не бойся если ты один...
Бойся если ты ноль...
(Offline)
 
Ответить с цитированием
Старый 13.11.2013, 23:47   #7
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,934 пользователей)
Ответ: Крестики нолики

Обломать все близкие к заполнению линии противника. Выбрать наиболее близкую к заполнению линию и продолжить её.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 14.11.2013, 00:36   #8
Uawi
Оператор ЭВМ
 
Регистрация: 08.11.2013
Сообщений: 39
Написано одно полезное сообщение
Ответ: Крестики нолики

Сообщение от impersonalis Посмотреть сообщение
Обломать все близкие к заполнению линии противника. Выбрать наиболее близкую к заполнению линию и продолжить её.
Ага, то есть, можно тупо условиями сделать... Если в массиве, который выше там(предположим, что первая Х вторая З координата), то если срочный массив заполнен на 2 клетки, то заполняем последнюю, с остальными также. А сам бот ещё таким же условием и для себя должен высчитывать комбинации, тоже самое в принципе... Спасибо, разберёмся.
__________________
Не бойся если ты один...
Бойся если ты ноль...
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (14.11.2013)
Старый 21.11.2013, 14:19   #9
EvilOkta
Знающий
 
Аватар для EvilOkta
 
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений
(для 229 пользователей)
Ответ: Крестики нолики

вот здесь интересный подход, с оптимизацией:
http://hashcode.ru/questions/190260/...рестики-нолики
__________________
Области Хаоса - мой новый Youtube проект
(Offline)
 
Ответить с цитированием
Старый 21.11.2013, 23:40   #10
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,217
Написано 436 полезных сообщений
(для 784 пользователей)
Ответ: Крестики нолики

Когда-то писал полный перебор ходов с случайным выбором из лучших возможных. Телефон справлялся нормально.
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 10:07.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com