Крестики Нолики / программирование :: крестики-нолики :: игра :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

игра крестики-нолики программирование geek 

Крестики Нолики

Всем привет.
Сразу вылажу ссылку: https://yadi.sk/d/vt410s4o162YMw

Описание:
6 лет я увлекался созданием самых умных крестиков-ноликов (потихоньку улучшал). На сегодняшний день больше нет ни времени ни желания, но просто так терять проект жалко. Кому интересна данная игра, можете попробовать. Она тестировалась со всеми найденными компьютерными и телефонными версиями и всегда могла победить на 3-ем уровне с подстройками качества. В онлайн игре против людей вконтакте, стабильно была малая золотая звезда (не выше из за ограничения 20 секунд подумать).

Основные возможности:
Выбор уровня, это выбор на какое число шагов она будет просчитывать ходы. Чем больше - тем дольше думает (оптимизировал как мог)
Выбор детальности просчёта - оптимальный вариант оказался 98%. В него попадают ходы даже на две клетки от знаков, что позволяет просчитывать хорошие ловушки. Но чем больше тем дольше думает.
Многопоточность - игра умеет использовать несколько ядер процессора. Так же умеет сохранять во время просчёта (вдруг задумается а ждать некогда)
Разные донадстройки, позволяющие выбрать характер компьютера (агрессивность, рискованносять, халатность) у всех есть всплывающие подсказки.
Если играете онлайн и время кончается, можно остановить просчёт и игра сделает лучший из ходов, которая успела просчитать.

По умолчанию стоят оптимальные настройки для быстрого компьютера и игрока уровня любитель. Если долго думает, поставьте детальность 92%, или уровень ниже (но это уже для новичков).

Я надеюсь, кому нибудь понравится.
игра,крестики-нолики,программирование,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор
Подробнее

игра,крестики-нолики,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
Развернуть
Выложи чтоли на гитхаб
kotia1 kotia1 31.12.201801:11 ответить ссылка 7.2
Я не вижу смысла. Она конечно самая умная, но в ближайшем будущем думать будут нейронные сети, и они её сделают как ребёнка, не долго думая. Да и код просто вырви глаз.
По крайней мере мы будем уверены, что в ней есть или нет вирусня
Так ты только узнаешь, что это не вирус с известной сигнатурой. Эвристики могут еще отсеять немного слишком наивных решений. Если задаться целью обойти эту штуку, это достаточно легко.
int16 int16 31.12.201802:25 ответить ссылка 2.6
Не линуксоид ли ты часом? У них со временем развивается иррациональное желание иметь исходники, даже если они никогда в них не будут смотреть.
phlush phlush 31.12.201802:13 ответить ссылка -0.5
Я 80% времени на винде сижу. И у меня развил весьма рациональное желание не запускать бинарники которые не я сбилдил, за редким исключением если они из надежных источников.
int16 int16 31.12.201802:36 ответить ссылка 2.5
В итоге всё сводится к доверию, а не к исходникам. Исходники в действительности нужны только тем, кто в них будет хоть когда-то смотреть. Таких очень мало.
phlush phlush 31.12.201823:13 ответить ссылка -0.1
> Я не вижу смысла

А я не вижу смысла запускать неизвестный мне бинарник. Но я бы с любопытствой глянул код, может даже сбилдил бы и поиграл.
Написал бы немного про алгоритм, на чем писал и т.д. Если писал на с или плюсах, можно легко веб версию собрать, я могу даже помочь.
int16 int16 31.12.201802:30 ответить ссылка 2.3
О увидел, ты на делфях писал. Ну все равно выложил бы, паскаль я думаю все знают
int16 int16 31.12.201802:33 ответить ссылка 0.1
Ты уверен что хочешь этого? Можешь написать на почту я кину исходник. Только я полностью уверен что легче и быстрее написать новую чем понять что там происходит. Сейчас то я исправился, но тогда я был начинающим программистом. В 2013 я почти закончил и только недавно набрался сил доделать и забыть
Давай, вот почта int16int16@gmail.com
Я тоже на делфях писать начинал, где-то около 2012 ушел с дейлфей.
int16 int16 31.12.201823:06 ответить ссылка 0.0
А для каких целей сокеты юзаются? У тебя там зависимость на wsock32.dll
Kernel^.an
wsock32.dll
i
22
VAAAAAAAl	IAAAAAAAJ	VAAAAAAA;	UU£3£MU<«
00000000	00000000	00000000	00232A1C
OFTs	FTs (IAT)	Hint	Name	
				
Dword	Dword	Word	szAnsi	
N/A	00232A28	0000	_WSAFDIsSet	
N/A	00232A38	0000	WSACleanup	
N/A	00232A46	0000	WSAStartup	
N/A	00232A54	0000	WSAGetLastError
int16 int16 31.12.201802:47 ответить ссылка 5.8
Там есть сетевая игра с чатом. Если так не доверяешь, запусти и проверь на виртуалке, если тебя правда интересует эта игра. А так уверяю, вирусов нет. К тому же там написаны контактные данные
Вот с другом по сети играли
□
Меню О программе
X ох ох ох ох ох ох ох ох ох ох ох ох ох ох ох ох ох ох ох ох ох ох ох ох о
XX
о
X
о
X
о
.
XX
ох
ЦМ*1
														'
Не один нормальный хацкер не будет в плотную линковать такую палевную библиотеку. Поэтому в норм проге ты не увидишь референс на WSA
Это верно, подгрузить ее можно вручную, без линковки с ней. Меня просто удивило зачем оно в крестиках ноликах, но сетевая игра объясняет.
int16 int16 31.12.201820:14 ответить ссылка 0.0
Что я запомнил из крестиков-ноликов: не ставь на 3-6-9-12 свои крестики-нолики
Полгода назад начал писать морской бой, у меня была идея как сделать наиболее умного бота, а потом забросил, хотя математические расчёты уже почти все провёл. Но идею я не скажу. Может когда-нибудь допишу и покажу вам, если этот бот не обосрётся.
У нас есть такие приборы, но мы вам о них не расскажем! ©
dstwo dstwo 31.12.201802:35 ответить ссылка 6.1
https://yadi.sk/d/1ISLn_xOsDHsfw
Морской бой был у нас практическим заданием. Вот ссылка на игру, если заинтересует пиши lion@xaker.ru, пришлю исходники. Она простая. Ходишь сначала куда поместиться самый большой, потом добиваешь. Меньше и т.д.
Вирусов нет
спс)
делал крестики нолики, а при определенных игровых ситуация получил стресс тест для проца даже на 3-ем уровне обсчета)
SDenis SDenis 31.12.201806:32 ответить ссылка 0.2
делай новую версию, добавь постоянный мониторинг загрузки проца, и если загрузка будет 100% в течении 10 сек, комп переворачивает доску с криком "ой, всё!"
Третий уровень и 98% детальности, это в среднем по 50 возможных ходов ходов для проверки на каждом. Тоесть он делает 3 хода за себя и два за тебя, это 50^5=312 500 000 ходов. Хоть я и оптимизировал (не ходит если не успеет выиграть, очки в клетке не считаются заново а запоминаются, считаются новые очки только рядом с ходом в нужных диагоналях, и т.п.), но всё равно задумывается. Если ты профи и интересна умная игра, то придётся подождать. Меня они делают только на 4-ом.
Ты как бы в курсе, что в "крестиках-ноликах" на большом поле, которые на самом деле - древняя китайская игра Рэндзю (https://ru.wikipedia.org/wiki/%D0%A0%D1%8D%D0%BD%D0%B4%D0%B7%D1%8E), существует выигрышная стратегия для первого игрока (а если первый протупит - то и для второго), и поэтому существует множество дополнительных правил для первого игрока ("Для играющего чёрными определён ряд фолов — запрещённых ходов. Ему нельзя строить вилки, кроме 3×4, ряд из 6 или более камней (так называемый «длинный ряд»), а также любые вилки кратностью более двух.")? Да и по поводу этих правил могут быть вопросы - возможно, стоило бы добавить еще, или что-то изменить.
Таким образом, идея "я тут создал программу, которая всех выигрывает" несколько ущербна, если ты не добавляешь правила реального рэндзю. Построение искусственного интеллекта который умеет играть в классические игры - конечно, достойное дело, даже в любительском виде, но, все же, надо же ознакомиться и с какой-то теорией.
Arrrcher Arrrcher 31.12.201810:36 ответить ссылка 2.1
Реактор познавательный. Получается у меня классическая версия. Да и все протестированные мной сторонние версии не имели ограничений (только одна была, где можно было ходить только рядом со знаками). В данной версии нет 100% алгоритма победы, два супергения сыграют на ничью. Есть стратегия ходить буквой Г, закрывая все ходы противника, вконтакте я на неё попадал и для этого сделал галочку ППХ (она портит такие стратегии). Иногда сама начинала так ходить, хотя я ей это не прописывал.
Даже если ты сам лично играешь с умным игроком, то ты обнаружишь, что первый игрок выигрывает постоянно, если нет ограничений - он постоянно создает нарастающее количество угроз, которые в оригинальном рэндзю прикрываются. Не знаю, какие ты хочешь забить жесткие стратегии - но когда играешь из "головы", это как-то само приходит. В любом случае, к сожалению, современный уровень ии для игр уже прошел этот этап программного определения стратегий и даже этап тотального пересчета - сейчас все решают нейронные сети и самообучение на большом количестве партий - как это было с шахматами и игрой го. Я не знаю точно, как там насчет рэндзю, но есть подозрение, что комп "взломал" эту игру еще раньше, чем шахматы и го.
Вон, в Википедии расписано, что там да как)
Я тебя уверяю, первый игрок не имеет 100% шанса на победу. Первый игрок всегда может ставить угрозу а второй её закрывать, но это ничья. А нейронные сети это причина почему я завязал с этим проектом. Хотя больше мне нечего в него добавить в плане логики и оптимизации скорости.
Почему нет 100% шанса - из за стратегии буквой Г. Она не даст победить при правильном использовании. Но и ты не выиграешь.
Вот так она выглядит, и как оказалось только моя прога пытается с ней бороться мешая её провернуть. Но если игрок знает что делает то это безуспешно
X
хох
Меню			0	программе			?					
												
						X						
				X		ох						
					X		О		X			
			хо		1о	X		0		X		
				ох			0X0			0	0	
				1о		X	0			X		
				хоо		ох						
					ох	ог						
			X	О		ох						
X		О	О ох									
		X	1Г			X						
			ОХ									
				□								
			X
Почитай, все же, Википедию - там много чего написано про ограничения, дебютные регламенты и так далее. То, что первый игрок имеет выигрышную стратегию - это и то, что ты в самом процессе игры ощущаешь, и, что важнее, подтверждается расчетами игроков-компьютеров. Даже с изначальными ограничениями рэндзю, все равно, по расчетам, первый игрок имеет преимущество, так что нужны и дополнительные регламенты.
К сожалению ты прав. Вот твой пруф
https://context-tramplin.ru/xox/docs/
35 ходов и первый выиграл. А вот ссылка на прогу, знающую комбинации (наверно самая умная 5 в ряд использовалась для мирового турнира)
http://gomocup.org/download-gomoku-ai/
Сначала нужно скачать игру, а потом мозг Download YIXIN 2018 (0.7.13)
Но готовые комбинации это не умная а опытная, да и там только 5 в ряд. А у меня есть 6. 6 то точно можно на ничью :)
Сыграл пару раз самой последней версией против "уже просчитанных ходов". Прога выиграла. Не всё просчитали всё же
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
Newbie: So which programming language should I learn first?
Programmers: Почему?
Почему?!
^>о->Ьаг() — Почему?



— А, вот почему... code comments be like
***i-*-S^l