GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (2)След. > >>   Поиск:  
 Автор Тема: Игровой ИИ
sam
Сообщений: 36
Игровой ИИ
+2
Добавлено: 27 апр 22 7:50
Предлагаю побаловаться с "игровым ИИ", запилить например ИИ для игры крестики-нолики, потом для покера, а потом и для шахмат. Выяснить что их объединяет, могут ли существовать общие интерфейсы и даже пути к "мета-ИИ" который может в равной степени научиться играть в широкий набор игр.
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Игровой ИИ
Добавлено: 27 апр 22 10:19
Цитата:
Автор: sam

Предлагаю побаловаться с "игровым ИИ", запилить например ИИ для игры крестики-нолики, потом для покера, а потом и для шахмат. Выяснить что их объединяет, могут ли существовать общие интерфейсы и даже пути к "мета-ИИ" который может в равной степени научиться играть в широкий набор игр.


Мечта хорошая, но увы...
1) здесь МАЛО программистов
2) у программистов обычно уже есть чем заняться (свои пет-проекты), а значит твой проект дожен быть "реально игровым" - на котором не "мозги сушишь", а "в роли разминки для мозгов чтобы отдохнуть от других проектов" или действительно "игра-головоломка не запредельной сложности".
3) программисты делятся на языки программирования (среди моего десятка языков с которыми я работал - почти нет С++ и вообще не знаю Питон - они оба на грани "маст-хэв" для современного стэка языков связанных с "популярными наработками под ИИ", а для многих вообще Паскаль/Делфи является пределом знаний в языках)
4) ЗДЕСЬ вести адекватное обсуждение хоть чего-нибудь - не возможно! Слишком много "людей со справкой", которыйх тяжело убрать из общения.

...пару месяцев назад поднимал здесь вопрос по "переписи программистов". Если не лень - поищи (я не запоминал ссылку) - хороший ответ на твой вопрос.
[Ответ][Цитата]
гость
94.16.116.*
На: Игровой ИИ
Добавлено: 22 июн 22 8:06
Цитата:
Автор: sam

Предлагаю побаловаться с "игровым ИИ", запилить например ИИ для игры крестики-нолики, потом для покера, а потом и для шахмат. Выяснить что их объединяет, могут ли существовать общие интерфейсы и даже пути к "мета-ИИ" который может в равной степени научиться играть в широкий набор игр.
крестики - нолики можно запрограммировать по таблице, ИИ - не нужен.
[Ответ][Цитата]
гость
94.16.116.*
На: Игровой ИИ
Добавлено: 22 июн 22 8:07
покер тоже существует метод подсчета карт
[Ответ][Цитата]
daner
Сообщений: 4593
На: Игровой ИИ
+2
Добавлено: 04 июл 22 9:44
Цитата:
Автор: sam

Предлагаю побаловаться с "игровым ИИ", запилить например ИИ для игры крестики-нолики, потом для покера, а потом и для шахмат. Выяснить что их объединяет, могут ли существовать общие интерфейсы и даже пути к "мета-ИИ" который может в равной степени научиться играть в широкий набор игр.


эх, знали бы вы сколько раз это предложение поднималось здесь (и не только здесь).
[Ответ][Цитата]
daner
Сообщений: 4593
На: Игровой ИИ
Добавлено: 04 июл 22 10:44
Изменено: 04 июл 22 10:46
кстати, для желающих.
у меня сын занялся программированием и я ему сделал экаунт на сайте для изучения программирования в виде игры. codecombat.com называется. короче, пишешь код для бота, который должен проходить разные игровые задания. очень прикольно. можно разные языки изучать. но я не про учебу.

там есть раздел https://codecombat.com/play/ladder/desert-duel, где можно попробовать себя против других игроков.

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





П.С.
из реальных минусов, пока только один. не продуманна система вывода сообщений для отладки кода.
[Ответ][Цитата]
Дмитрий Пагода
Сообщений: 123
На: Игровой ИИ
Добавлено: 05 июл 22 7:55
Цитата:
Автор: sam

Предлагаю побаловаться с "игровым ИИ", запилить например ИИ для игры крестики-нолики,
Было дело кодил такой проектик, давно правда это было, будет время могу об этом рассказать и выложить код(если найду).
[Ответ][Цитата]
гость
109.70.100.*
На: Игровой ИИ
Добавлено: 17 сен 22 3:57
Цитата:
Автор: гость

да тут покойный НьюРоиск както предлагал доказать что ИИ - не существует, и чтобы кто то написал распознавалку капчи готайки, так походу никто и не смог этого сделать, казнокрад Андрей что то пытался но хуйню сделал на паскале, все забраковали, тольько опозорился
А разница та какая, паскаль или Си? Писать можно на любом языке, главное чтобы работало.
[Ответ][Цитата]
гость
141.98.6.*
На: Игровой ИИ
Добавлено: 20 сен 22 4:41
Цитата:
Автор: limaret126

Язык си делает прогрммы, которые хотя бы визуально читабельные, в то время, как паскалю, чтобы дойти до такого же уровня нужно капец как сильно извернутся
паскаль не сложнее Си в понимании листинга кода, а даже проще
[Ответ][Цитата]
гость
185.243.218.*
На: Игровой ИИ
Добавлено: 09 янв 23 9:27
Цитата:
Автор: IvаnVlаskin1976

Ну, народ, ну какая «русофобия»?! Фобия- это НЕ ненависть. Это боязнь. Кто кого боится?! Ведь этот термин россияне используют, чтобы оправдать свою агрессию! Так же, как и «защита русского мира».
Нет у нас фобии в отношении путинской россии- только презрение и брезгливость.
Она даже ненависти нашей недостойна.
Ну а ИИ тут причем?
[Ответ][Цитата]
Matrix
Сообщений: 1534
На: Игровой ИИ
Добавлено: 22 янв 23 21:14
[Ответ][Цитата]
Matrix
Сообщений: 1534
На: Игровой ИИ
+2
Добавлено: 25 янв 23 22:27
клопиксол пролонг укол
и 3 раза в день таблетки галоперидола 5 мг с циклодолом
вечером аминазин по своему усмотрению чтобы заснуть
[Ответ][Цитата]
гость
45.140.143.*
На: Игровой ИИ
+1
Добавлено: 09 апр 23 6:18
Цитата:
Автор: sam

Предлагаю побаловаться с "игровым ИИ", запилить например ИИ для игры крестики-нолики, потом для покера, а потом и для шахмат. Выяснить что их объединяет, могут ли существовать общие интерфейсы и даже пути к "мета-ИИ" который может в равной степени научиться играть в широкий набор игр.

Отличная идея! Разработка ИИ для игры в крестики-нолики, покер и шахматы является классическими примерами задач, которые можно решить, используя методы и алгоритмы искусственного интеллекта.

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

Затем можно использовать различные подходы для создания ИИ. Один из самых простых методов - это минимакс алгоритм, который позволяет ИИ просчитывать все возможные ходы и выбирать наилучший вариант на основе некоторой эвристики. Другой метод - это использование нейронных сетей, которые могут обучаться на основе большого количества данных о прошлых играх.

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

Однако, стоит учитывать, что каждая игра имеет свои особенности и сложности, которые не могут быть полностью учтены в общих методах. Поэтому, мета-ИИ все еще может требовать некоторой настройки для каждой новой игры.

В целом, создание ИИ для игр - это интересный и сложный процесс, который может привести к развитию более универсального ИИ в будущем.
[Ответ][Цитата]
гость
45.140.143.*
На: Игровой ИИ
Добавлено: 09 апр 23 6:26
Игра крестики нолики на питоне:


def print_board(board):
"""Печать игрового поля"""
print("-------------")
for i in range(3):
print("|", end="")
for j in range(3):
print(" " + board[i][j] + " |", end="")
print()
print("-------------")

def check_win(board, player):
"""Проверка на победу"""
for i in range(3):
if board[i][0] == board[i][1] == board[i][2] == player:
return True
if board[0][i] == board[1][i] == board[2][i] == player:
return True
if board[0][0] == board[1][1] == board[2][2] == player:
return True
if board[0][2] == board[1][1] == board[2][0] == player:
return True
return False

def play_game():
"""Функция для запуска игры"""
board = [['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
player = 'X'
while True:
print_board(board)
row = int(input(f"Игрок {player}, введите номер строки (1-3): ")) - 1
col = int(input(f"Игрок {player}, введите номер столбца (1-3): ")) - 1
if board[row][col] == '_':
board[row][col] = player
if check_win(board, player):
print_board(board)
print(f"Поздравляем, игрок {player} победил!")
break
elif all('_' not in row for row in board):
print_board(board)
print("Ничья!")
break
else:
player = 'O' if player == 'X' else 'X'
else:
print("Эта ячейка уже занята, попробуйте еще раз.")

play_game()

[Ответ][Цитата]
гость
192.95.40.*
На: Игровой ИИ
Добавлено: 09 апр 23 6:38
А вот как сдалать ИИ на случайном лесе для игры в крестики нолики:


import numpy as np
from sklearn.ensemble import RandomForestClassifier

# функция для генерации случайных игровых ситуаций
def generate_data(n):
X = []
y = []
for i in range(n):
board = [['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
player = 'X'
while True:
if check_win(board, player):
break
elif all('_' not in row for row in board):
break
elif player == 'X':
# ходит человек, пропускаем
pass
else:
# ходит компьютер, выбираем случайное действие
actions = get_actions(board, player)
if len(actions) == 0:
break
action = actions[np.random.choice(len(actions))]
board[action[0]][action[1]] = player
player = 'O' if player == 'X' else 'X'
# добавляем текущее состояние игрового поля в обучающие данные
X.append(board_to_features(board, player))
y.append(1 if player == 'X' else 0)
return np.array(X), np.array(y)

# функция для обучения модели
def train_model():
X, y = generate_data(10000)
model = RandomForestClassifier(n_estimators=100, max_depth=5)
model.fit(X, y)
return model

# функция для запуска игры с использованием обученной модели
def play_game(model):
"""Игра крестики-нолики с использованием обученной модели"""
board = [['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
player = 'X'
while True:
# выводим текущее состояние игрового поля
print_board(board)
if check_win(board, player):
print(f'Player {player} wins!')
break
elif all('_' not in row for row in board):
print('Draw!')
break
elif player == 'X':
# ходит человек
row, col = map(int, input('Enter row and column: ').split())
if board[row][col] != '_':
print('Invalid move!')
continue
board[row][col] = player
else:
# ходит компьютер
features = board_to_features(board, player)
action = get_best_action(model, features, player)
board[action[0]][action[1]] = player
player = 'O' if player == 'X' else 'X'

# обучаем модель
model = train_model()

# запускаем игру
play_game(model)

[Ответ][Цитата]
 Стр.1 (2): [1]  2След. > >>