https://github.com/notacat1/game-theory
This project implements some game theory methods using React, Redux, Scss, Bootstrap, and Typescript. The methods include finding maximin/minimax and removing strictly or weakly dominated strategies.
https://github.com/notacat1/game-theory
bootstrap react redux scss typescript
Last synced: about 2 months ago
JSON representation
This project implements some game theory methods using React, Redux, Scss, Bootstrap, and Typescript. The methods include finding maximin/minimax and removing strictly or weakly dominated strategies.
- Host: GitHub
- URL: https://github.com/notacat1/game-theory
- Owner: NotACat1
- Created: 2024-03-18T17:52:05.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-25T21:11:53.000Z (about 2 years ago)
- Last Synced: 2025-02-28T21:26:52.945Z (over 1 year ago)
- Topics: bootstrap, react, redux, scss, typescript
- Language: TypeScript
- Homepage: https://notacat1.github.io/Game-Theory/
- Size: 7.68 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README






# Теория игр
Теория игр - это область математики и экономики, изучающая стратегические взаимодействия в различных сценариях, где результат каждого участника зависит от действий других. Основные концепции включают игровые модели, стратегии и равновесия. В данном проекте мы реализовали некоторые методы теории игр, используя различные технологии, что позволяет исследовать оптимальные стратегии в различных игровых сценариях.
## Реализованные методы
1. **Поиск максимина/минимакса:** метод поиска максимина/минимакса используется для определения оптимальной стратегии в игре, когда игрок выбирает стратегию, максимизирующую свой минимальный выигрыш.
2. **Удаление строго доминируемых стратегий:** этот метод позволяет удалить строго доминируемые стратегии из игры. Стратегия считается строго доминируемой, если существует другая стратегия, приносящая больший выигрыш независимо от выбора других игроков.
3. **Удаление слабо доминируемых стратегий:** этот метод позволяет удалить слабо доминируемые стратегии из игры. Стратегия считается слабо доминируемой, если существует другая стратегия, которая всегда приносит по крайней мере такой же выигрыш, а в некоторых случаях – больший.
## Начало работы
### Установка
Клонируйте репозиторий:
```bash
git clone https://github.com/NotACat1/React-TypeScript.git
```
Установите зависимости:
```bash
npm install
```
### Запуск
Запустите сервер разработки:
```bash
npm run start
```
Теперь вы готовы начать разработку вашего приложения React на основе этого шаблона.
## Доступные скрипты
После установки проекта вы можете использовать следующие скрипты:
### Запуск в режиме разработки
```bash
npm start
```
Этот скрипт запускает приложение в режиме разработки. Он использует `react-scripts`, который обеспечивает сборку проекта и запуск локального сервера для разработки.
### Создание оптимизированной сборки
```bash
npm run build
```
Этот скрипт создает оптимизированную сборку приложения для производства. Он также использует `react-scripts` для сборки проекта, но результаты сохраняются в каталоге `build`.
### Запуск тестов
```bash
npm test
```
Этот скрипт запускает тестовый раннер для вашего приложения. Он также использует `react-scripts` для запуска тестов в интерактивном режиме просмотра.
### Извлечение конфигурации
```bash
npm run eject
```
Этот скрипт используется для "извлечения" конфигурации `react-scripts`. Когда вы выполняете этот скрипт, все настройки и зависимости `react-scripts` будут скопированы в ваш проект, и вы сможете их настраивать по своему усмотрению.
### Подготовка к развертыванию
```bash
npm run predeploy
```
Этот скрипт запускается перед развертыванием (deploy). В данном случае он просто запускает скрипт `build`, чтобы убедиться, что перед развертыванием приложение собрано.
### Развертывание на GitHub Pages
```bash
npm run deploy
```
Этот скрипт используется для развертывания вашего приложения на GitHub Pages. Он использует инструмент `gh-pages`, чтобы опубликовать содержимое каталога `build` вашего проекта на GitHub Pages.
### Установка Husky и настройка хуков
```bash
npm run husky-inst
```
Этот скрипт используется для установки Husky и настройки его хуков. Он использует `npx husky install`, чтобы установить Husky, и `chmod +x` для установки прав на выполнение скриптов `pre-commit` и `commit-msg`.
### Проверка сообщений коммитов перед фиксацией
```bash
npm run msg-commit
```
Этот скрипт используется для проверки сообщений коммитов перед фиксацией. Он использует инструмент `commitlint`, чтобы проверить формат сообщения коммита.
### Линтинг измененных файлов перед коммитом
```bash
npm run lint
```
Этот скрипт используется для линтинга измененных файлов перед коммитом. Он использует инструмент `lint-staged`, чтобы линтить только те файлы, которые были изменены, ускоряя процесс линтинга.
## Стек технологий
1. **React** - это JavaScript библиотека, разработанная компанией Facebook, предназначенная для создания пользовательских интерфейсов. Она позволяет разрабатывать масштабируемые и быстрые веб-приложения, используя компонентный подход к созданию интерфейса. React обладает большим сообществом разработчиков, активно поддерживается и имеет множество дополнительных библиотек и инструментов.
2. **Redux** - это библиотека управления состоянием приложения для JavaScript-приложений, основанных на React или любом другом представлении. Redux обеспечивает однонаправленный поток данных, что делает управление состоянием предсказуемым и легко отслеживаемым. Он позволяет эффективно организовывать и обновлять состояние приложения, управлять асинхронными действиями и обеспечивать масштабируемость приложения.
3. **Scss (Sassy CSS)** - это препроцессор CSS, который добавляет множество дополнительных возможностей и функций к обычному CSS, таких как переменные, вложенные правила, миксины и многое другое. Scss упрощает и улучшает процесс написания стилей, делая код более читаемым, модульным и легко поддерживаемым.
4. **Bootstrap** - это популярный фреймворк для разработки адаптивных и стильных веб-приложений. Он содержит набор готовых компонентов, сеток и стилей, что значительно ускоряет процесс создания интерфейса. Bootstrap также предоставляет множество инструментов для создания адаптивного дизайна, что позволяет легко создавать приложения, подходящие для различных устройств и экранов.
5. **Typescript** - это строго типизированный язык программирования, который расширяет синтаксис JavaScript, добавляя статическую типизацию. Он обеспечивает улучшенную читаемость и поддержку кода, обнаружение ошибок на этапе компиляции и интеграцию с существующими JavaScript-кодом. Typescript позволяет разработчикам создавать более надежные и масштабируемые приложения, особенно в больших проектах.
## Участие в разработке
Мы приветствуем ваши вклады в этот проект. Вы можете помочь нам, отправляя отчеты о найденных ошибках, предложения по улучшению функциональности или запросы на внесение изменений.