1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lwf808-simple-go

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Простая игра Го

Введение

Простая реализация игры Го, которая включает в себя функции игры и восстановления партии. В процессе игры или восстановления партии программа автоматически выполняет захват позиций. Для лучшей совместимости с фреймворками искусственного интеллекта, такими как TensorFlow.js, программа была написана с учетом простоты и удобства использования.

Архитектура программного обеспечения

Программа использует HTML, Bootstrap, jQuery и TensorFlow.js для клиентского интерфейса. После завершения разработки интерфейса, планируется использовать Flask для добавления numpy, scipy и scikit-learn для анализа позиций игры. #### Инструкции по установке

  1. Откройте браузер для использования.

Инструкции по использованию

  1. После открытия браузера, игра начинается автоматически, и вы можете сразу начать игру.

  2. Для отмены последнего хода используйте функцию отмены хода.

  3. Для загрузки протокола игры, загрузите все данные, отображаемые в нижней части экрана.

  4. Статус здоровья игры отображается в нижней части экрана. Вы можете сохранить его с помощью функции загрузки протокола игры. Справа отображается общее время игры и текущий ход игрока. Обновление данных происходит каждые 5 секунд, поэтому данные могут быть немного запаздываны. Сохранение данных в фоновом режиме не зависит от времени. 5.В верхней части экрана есть три области для загрузки файлов: протокол игры, файлы модели и весов TensorFlow.js. При изменении протокола игры, программа автоматически переходит в режим восстановления партии.

  5. После игры или восстановления партии, в нижней части экрана доступны функции просмотра и восстановления с постоянной скоростью. Для просмотра используйте кнопки ««» и «»» или ползунок.

  6. Для восстановления с постоянной скоростью используйте регулятор скорости справа. Скорость измеряется в секундах. При нажатии кнопки восстановления, программа восстанавливает партию с заданной скоростью. В процессе восстановления можно изменять время и скорость просмотра.

  7. В верхней правой части экрана есть функции создания модели и загрузки. Используйте одну из них для создания модели TensorFlow.js. Обе функции используют одну и ту же модель.

  8. Для использования функции загрузки, сначала выберите файлы модели и весов в нижней части экрана. В противном случае будет выдана ошибка.

  9. Функции создания модели и загрузки автоматически выполняют обучение и предсказание. Эти функции также могут быть использованы в процессе игры для обучения и предсказания после каждого хода.

  10. В верхней левой части экрана можно изменять цвет фона.

  11. Программа автоматически выводит уведомления в Yöntem 30 минут и в полночь.

Базовая логика игры Го, JavaScript код

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 )

Вы можете оставить комментарий после Вход в систему

Введение

Простой го, который реализует функции игры в го и анализа партий. В процессе игры или анализа программа автоматически делает ходы. Написан с учётом принципов простоты и удобства использования для таких программ искусственного интеллекта, как TensorFlow.js. Развернуть Свернуть
JavaScript и 2 других языков
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lwf808-simple-go.git
git@api.gitlife.ru:oschina-mirror/lwf808-simple-go.git
oschina-mirror
lwf808-simple-go
lwf808-simple-go
master