Я сделал игру в своем репозитории github ( "Lil Square of Eight" ) и создал код для игры против машины.Теперь, для учебы и для удовольствия, я хотел бы создать некоторый ИИ с Tensorflow.js, который может играть в игру и даже выигрывать.
Игра проста, каждый ход игрока нажимает на квадратную сторону, и на нем отмечаетсяс цветом игрока.Игрок, который закрывает клетку, делает счет и может продолжать свой ход.
Я провел несколько тестов с Tensorflow.js и совсем не понял этого.Все, что я мог сделать, это проверить, есть ли у одного квадрата сторона, на которую можно щелкнуть, и не отдать возможность другому игроку, или сделать сам счет.
const model = tf.sequential();
model.add(tf.layers.dense({ units: 16, inputShape: [8] }));
model.add(tf.layers.dense({ units: 16, inputShape: [16], activation: 'sigmoid' }));
model.add(tf.layers.dense({ units: 1, inputShape: [16] }));
model.compile({ optimizer: tf.train.adam(0.1), loss: 'meanSquaredError', lr: 0.3 });
const xs1 = tf.tensor2d([
[0, 1, 1, 1, 2, 0, 3, 0], [0, 1, 1, 0, 2, 1, 3, 0], [0, 1, 1, 0, 2, 0, 3, 1], [0, 0, 1, 1, 2, 1, 3, 0], [0, 0, 1, 1, 2, 0, 3, 1], [0, 0, 1, 0, 2, 1, 3, 1],
[0, 1, 1, 1, 2, 1, 3, 1],
[0, 0, 1, 0, 2, 0, 3, 0], [0, 1, 1, 0, 2, 0, 3, 0], [0, 0, 1, 1, 2, 0, 3, 0], [0, 0, 1, 0, 2, 1, 3, 0], [0, 0, 1, 0, 2, 0, 3, 1],
[0, 0, 1, 1, 2, 1, 3, 1], [0, 1, 1, 0, 2, 1, 3, 1], [0, 1, 1, 1, 2, 0, 3, 1], [0, 1, 1, 1, 2, 1, 3, 0]]);
await model.fit(xs1, tf.tensor2d([[0], [0], [0], [0], [0], [0], [0], [1], [1], [1], [1], [1], [2], [2], [2], [2]]), {epochs: 550});
console.log(model.predict(tf.tensor2d([[0, 1, 1, 0, 2, 0, 3, 0]])));
РЕДАКТИРОВАТЬ
Как я и просил, я хотел бы помочь с тем, как я могу создать ИИ с Tensorflow.js, который может разумно мыслить и играть в мою игру.Он может учиться с предыдущими играми и начать играть в игру.