An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

![Главная страница](https://github.com/NotACat1/Game-Theory/assets/113008873/4fd82097-cdf7-4027-ac8c-68a28b9c6e53)

![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)
![Redux](https://img.shields.io/badge/redux-%23593d88.svg?style=for-the-badge&logo=redux&logoColor=white)
![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)
![SASS](https://img.shields.io/badge/SASS-hotpink.svg?style=for-the-badge&logo=SASS&logoColor=white)
![Bootstrap](https://img.shields.io/badge/bootstrap-%238511FA.svg?style=for-the-badge&logo=bootstrap&logoColor=white)

# Теория игр

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

## Реализованные методы

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 позволяет разработчикам создавать более надежные и масштабируемые приложения, особенно в больших проектах.

## Участие в разработке

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