Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2012, 19:22   #1
shinigamixas
Новичок
Джуниор
 
Регистрация: 11.03.2012
Сообщений: 3
По умолчанию C# ИИ к крестикам ноликам

Доброго времени суток!Я пытался создать ИИ к крестикам ноликам но к сожалению он вышел ужасно "глючным".Проект и папка си шарп (которую надо кинуть на диск Д чтоб игра работала)являются вложеными к этому посту.У кого есть время посмотреть на этот "проект" прошу отписаться о моих ошибках,так как я их увидеть не смог.И еще одно : я почти уверен что вам будет тяжко прочитать код так как опыта как и навыков написания кода меня почти нет.Но я буду рад услышать здравую критику насчет этого проекта.
Вложения
Тип файла: zip Сжатая ZIP-папка.zip (102.0 Кб, 13 просмотров)
shinigamixas вне форума Ответить с цитированием
Старый 11.03.2012, 19:50   #2
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Скачал, посмотрел.
Глаза на лбу. Я даже разбираться не стал. Там миллион строк и почти все из них повторяют строку "D:\\C#\\*.bmp..."
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Старый 11.03.2012, 21:18   #3
shinigamixas
Новичок
Джуниор
 
Регистрация: 11.03.2012
Сообщений: 3
По умолчанию

Цитата:
Сообщение от MooNDeaR Посмотреть сообщение
Скачал, посмотрел.
Глаза на лбу. Я даже разбираться не стал. Там миллион строк и почти все из них повторяют строку "D:\\C#\\*.bmp..."
Если учитывать что основная работа ведется с выводом файлов.Но там все не так уж и сложно:текст формы можно разделить на 3 части.В 1 перебираются всевозможные комбинации и представляются рандомизаторы в разе их не совпаданий.Во второй
(а именно логический блок
if (((pb1.ImageLocation == pb2.ImageLocation) && (pb2.ImageLocation == pb3.ImageLocation)
&& pb1.ImageLocation != "D:\\C#\\Безымянный.bmp" && pb2.ImageLocation != "D:\\C#\\Безымянный.bmp"
&& pb3.ImageLocation != "D:\\C#\\Безымянный.bmp") ||
((pb1.ImageLocation == pb4.ImageLocation) && (pb4.ImageLocation == pb7.ImageLocation)
&& pb1.ImageLocation != "D:\\C#\\Безымянный.bmp" && pb4.ImageLocation != "D:\\C#\\Безымянный.bmp"
&& pb7.ImageLocation != "D:\\C#\\Безымянный.bmp") ||
((pb1.ImageLocation == pb5.ImageLocation) && (pb5.ImageLocation == pb9.ImageLocation)
&& pb1.ImageLocation != "D:\\C#\\Безымянный.bmp" && pb5.ImageLocation != "D:\\C#\\Безымянный.bmp"
&& pb9.ImageLocation != "D:\\C#\\Безымянный.bmp") ||
((pb2.ImageLocation == pb5.ImageLocation) && (pb5.ImageLocation == pb8.ImageLocation)
&& pb2.ImageLocation != "D:\\C#\\Безымянный.bmp" && pb5.ImageLocation != "D:\\C#\\Безымянный.bmp"
&& pb8.ImageLocation != "D:\\C#\\Безымянный.bmp") ||
((pb4.ImageLocation == pb5.ImageLocation) && (pb5.ImageLocation == pb6.ImageLocation)
&& pb4.ImageLocation != "D:\\C#\\Безымянный.bmp" && pb5.ImageLocation != "D:\\C#\\Безымянный.bmp"
&& pb6.ImageLocation != "D:\\C#\\Безымянный.bmp") ||
((pb3.ImageLocation == pb5.ImageLocation) && (pb5.ImageLocation == pb7.ImageLocation)
&& pb3.ImageLocation != "D:\\C#\\Безымянный.bmp" && pb5.ImageLocation != "D:\\C#\\Безымянный.bmp"
&& pb7.ImageLocation != "D:\\C#\\Безымянный.bmp") ||
((pb3.ImageLocation == pb6.ImageLocation) && (pb6.ImageLocation == pb9.ImageLocation)
&& pb3.ImageLocation != "D:\\C#\\Безымянный.bmp" && pb6.ImageLocation != "D:\\C#\\Безымянный.bmp"
&& pb9.ImageLocation != "D:\\C#\\Безымянный.bmp") ||
((pb7.ImageLocation == pb8.ImageLocation) && (pb8.ImageLocation == pb9.ImageLocation)
&& pb7.ImageLocation != "D:\\C#\\Безымянный.bmp" && pb8.ImageLocation != "D:\\C#\\Безымянный.bmp"
&& pb9.ImageLocation != "D:\\C#\\Безымянный.bmp"))
return true;
else return false;
возвращает правду если есть хотябы одна линия.Этот метод вызывается каждый раз при нажатии на picturebox. третья часть - обработчики событий при нажатии на него же.вот и все.
Если знаете как сделать код более "компактным" буду рад услышать
shinigamixas вне форума Ответить с цитированием
Старый 12.03.2012, 10:59   #4
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Создать массив 2-х мерный
a[2,2] из Int-та допустим (Как раз поле 3х3). Счиать что занчние каждой ячейки если 0 то там пусто если 1 то там крестик если 2 то там нолик. При нажатии на поле менять значние этого массива. И работать с этим массивом.

Так конечно ужас полный
Guy вне форума Ответить с цитированием
Старый 12.03.2012, 13:57   #5
shinigamixas
Новичок
Джуниор
 
Регистрация: 11.03.2012
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Guy Посмотреть сообщение
Создать массив 2-х мерный
a[2,2] из Int-та допустим (Как раз поле 3х3). Счиать что занчние каждой ячейки если 0 то там пусто если 1 то там крестик если 2 то там нолик. При нажатии на поле менять значние этого массива. И работать с этим массивом.

Так конечно ужас полный
Не подскажете как через массив организовать замену на крестик\нолик в разе нажатия на picturebox?
Премного благодарен.
shinigamixas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пояснительная записка к сетевым крестикам-ноликам на Делфи Baldinini Фриланс 4 22.06.2011 10:59
Друг по крестикам-ноликам Djem1991 Общие вопросы Delphi 2 07.02.2009 13:53