Простая реализация игры Го, которая включает в себя функции игры и восстановления партии. В процессе игры или восстановления партии программа автоматически выполняет захват позиций. Для лучшей совместимости с фреймворками искусственного интеллекта, такими как TensorFlow.js, программа была написана с учетом простоты и удобства использования.
Программа использует HTML, Bootstrap, jQuery и TensorFlow.js для клиентского интерфейса. После завершения разработки интерфейса, планируется использовать Flask для добавления numpy, scipy и scikit-learn для анализа позиций игры. #### Инструкции по установке
После открытия браузера, игра начинается автоматически, и вы можете сразу начать игру.
Для отмены последнего хода используйте функцию отмены хода.
Для загрузки протокола игры, загрузите все данные, отображаемые в нижней части экрана.
Статус здоровья игры отображается в нижней части экрана. Вы можете сохранить его с помощью функции загрузки протокола игры. Справа отображается общее время игры и текущий ход игрока. Обновление данных происходит каждые 5 секунд, поэтому данные могут быть немного запаздываны. Сохранение данных в фоновом режиме не зависит от времени. 5.В верхней части экрана есть три области для загрузки файлов: протокол игры, файлы модели и весов TensorFlow.js. При изменении протокола игры, программа автоматически переходит в режим восстановления партии.
После игры или восстановления партии, в нижней части экрана доступны функции просмотра и восстановления с постоянной скоростью. Для просмотра используйте кнопки ««» и «»» или ползунок.
Для восстановления с постоянной скоростью используйте регулятор скорости справа. Скорость измеряется в секундах. При нажатии кнопки восстановления, программа восстанавливает партию с заданной скоростью. В процессе восстановления можно изменять время и скорость просмотра.
В верхней правой части экрана есть функции создания модели и загрузки. Используйте одну из них для создания модели TensorFlow.js. Обе функции используют одну и ту же модель.
Для использования функции загрузки, сначала выберите файлы модели и весов в нижней части экрана. В противном случае будет выдана ошибка.
Функции создания модели и загрузки автоматически выполняют обучение и предсказание. Эти функции также могут быть использованы в процессе игры для обучения и предсказания после каждого хода.
В верхней левой части экрана можно изменять цвет фона.
Программа автоматически выводит уведомления в Yöntem 30 минут и в полночь.
class simpleGo {
constructor() {
this.positions = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s"];
this.newWeiQi();
this.goString = { string: [], empty: [] };
}
go_handler(item="B[qd]") {
var позиция = item.slice(2, 4);
if (this.posColor.hasOwnProperty(позиция)) {
return false;
} else {
this.posColor[позиция] = item[0];
}
var del_pos = [];
var near_pos = this.near_positions(позиция);
for (var npn in near_pos) {
if (this.posColor.hasOwnProperty(near_pos[npn])) {
if (this.posColor[near_pos[npn]] != this.posColor[позиция]) {
this.goString = { 'string': [], 'empty': [] };
this.go_string(near_pos[npn]);
if (this.goString['empty'].length == 0) {
for (var spn in this.goString['string']) {
if (!del_pos.includes(this.goString['string'][spn])) {
del_pos.push(this.goString['string'][spn]);
}
}
}
}
}
}
if (del_pos.length == 0) {
this.goString = { 'string': [], 'empty': [] };
this.go_string(позиция);
if (this.goString['empty'].length == 0) {
delete this.posColor[позиция];
} else {
this.sgf.push(item);
this.posColorList.push(JSON.parse(JSON.stringify(this.posColor)));
return true;
}
} else {
for (var d_p in del_pos) {
delete this.posColor[del_pos[d_p]];
}
this.sgf.push(item);
this.posColorList.push(JSON.parse(JSON.stringify(this.posColor)));
return true;
}
return false;
}
go_string(позиция) {
this.goString['string'].push(позиция);
var nPos = this.near_positions(позиция);
for (var np in nPos) {
if (this.posColor.hasOwnProperty(nPos[np])) {
if (!this.goString['string'].includes(nPos[np]) && this.posColor[nPos[np]] == this.posColor[позиция]) {
this.
```
```markdown
#### Моделирование базовой логики игры Го на Python, ветка "python3. tk"
```python
class WeiQi:
def __init__(self):
self.positions = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s"]
self.newWeiQi()
self.__goString = { 'string': set(), 'empty': set() }
def go_handler(self, item="B[pd]"):
position = item[2:4]
if position not in self.posColor:
self.posColor[position] = item[0]
delPositions = set()
for nPos in self.near_positions(position):
if nPos in self.posColor and self.posColor[nPos] != self.posColor[position]:
self.__goString = { 'string': set(), 'empty': set() }
self.go_string(nPos)
if len(self.__goString['empty']) == 0:
delPositions.update(self.__goString['string'])
if len(delPositions) == 0:
self.__goString = { 'string': set(), 'empty': set() }
self.go_string(position)
if len(self.__goString['empty']) == 0:
del self.posColor[position]
else:
self.sgf.append(item)
self.posColorList.append(copy.deepcopy(self.posColor))
return True
else:
for dPos in delPositions:
del self.posColor[dPos]
self.sgf.append(item)
self.posColorList.append(copy.deepcopy(self.posColor))
return True
return False
def near_positions(self, position):
near_pos = []
row = self.near(position[0])
col = self.near(position[1])
for r in row:
near_pos.append(r + position[1])
for c in col:
near_pos.append(position[0] + c)
return near_pos
def near(self, char):
switch (char) {
case "a":
return ["b"];
case "s":
``````markdown
## Участие в проекте
1. Fork этого репозитория
2. Создайте ветку Feat_xxx
3. Подайте пулл-запрос
#### Фичи
1. Используйте Readme_XXX.md для поддержки различных языков, например Readme_en.md, Readme_zh.md
2. Официальный блог Gitee [blog.gitee.com](https://blog.gitee.com)
3. Вы можете посетить [https://gitee.com/explore](https://gitee.com/explore), чтобы узнать о лучших открытых проектах на Gitee
4. [GVP](https://gitee.com/gvp) — это сокращение от "Gitee Most Valuable Open Source Projects", что означает лучшие открытые проекты, оцененные по определенным критериям
5. Официальная документация Gitee [https://gitee.com/help](https://gitee.com/help)
6. Секция "Лица Gitee" представляет лучших участников Gitee [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
```
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )