galaxy-raiders-api
所属分类:磁盘编程
开发工具:kotlin
文件大小:48KB
下载次数:0
上传日期:2022-07-28 08:14:49
上 传 者:
sh-1993
说明: MAC0218 API项目模板-编程技术II,[@usp](https:github.com usp)
(Template for the API project of MAC0218 - Programming Techniques II at [@usp](https: github.com usp))
文件列表:
.dockerignore (154, 2022-07-24)
.editorconfig (27, 2022-07-24)
.env (100, 2022-07-24)
.pre-commit-config.yaml (570, 2022-07-24)
Dockerfile (2318, 2022-07-24)
LICENSE (1081, 2022-07-24)
app (0, 2022-07-24)
app\build.gradle.kts (3427, 2022-07-24)
app\src (0, 2022-07-24)
app\src\main (0, 2022-07-24)
app\src\main\kotlin (0, 2022-07-24)
app\src\main\kotlin\galaxyraiders (0, 2022-07-24)
app\src\main\kotlin\galaxyraiders\App.kt (908, 2022-07-24)
app\src\main\kotlin\galaxyraiders\Config.kt (567, 2022-07-24)
app\src\main\kotlin\galaxyraiders\adapters (0, 2022-07-24)
app\src\main\kotlin\galaxyraiders\adapters\BasicRandomGenerator.kt (497, 2022-07-24)
app\src\main\kotlin\galaxyraiders\adapters\tui (0, 2022-07-24)
app\src\main\kotlin\galaxyraiders\adapters\tui\KeyboardReader.kt (1120, 2022-07-24)
app\src\main\kotlin\galaxyraiders\adapters\tui\TerminalPrinter.kt (961, 2022-07-24)
app\src\main\kotlin\galaxyraiders\adapters\tui\TextUserInterface.kt (749, 2022-07-24)
app\src\main\kotlin\galaxyraiders\adapters\web (0, 2022-07-24)
app\src\main\kotlin\galaxyraiders\adapters\web\Router.kt (151, 2022-07-24)
app\src\main\kotlin\galaxyraiders\adapters\web\SpaceFieldRouter.kt (964, 2022-07-24)
app\src\main\kotlin\galaxyraiders\adapters\web\SpaceShipRouter.kt (998, 2022-07-24)
app\src\main\kotlin\galaxyraiders\adapters\web\WebUserInterface.kt (1161, 2022-07-24)
app\src\main\kotlin\galaxyraiders\core (0, 2022-07-24)
app\src\main\kotlin\galaxyraiders\core\game (0, 2022-07-24)
app\src\main\kotlin\galaxyraiders\core\game\Asteroid.kt (308, 2022-07-24)
app\src\main\kotlin\galaxyraiders\core\game\GameEngine.kt (3172, 2022-07-24)
app\src\main\kotlin\galaxyraiders\core\game\Missile.kt (306, 2022-07-24)
app\src\main\kotlin\galaxyraiders\core\game\SpaceField.kt (4697, 2022-07-24)
app\src\main\kotlin\galaxyraiders\core\game\SpaceObject.kt (687, 2022-07-24)
app\src\main\kotlin\galaxyraiders\core\game\SpaceShip.kt (1701, 2022-07-24)
app\src\main\kotlin\galaxyraiders\core\physics (0, 2022-07-24)
app\src\main\kotlin\galaxyraiders\core\physics\FIX.kt (253, 2022-07-24)
app\src\main\kotlin\galaxyraiders\core\physics\Object2D.kt (3453, 2022-07-24)
... ...
# Galaxy Raiders
Template for the project of the course [MAC0218 - Programming Techniques II][1]
at University of So Paulo (@USP).
# Development
Galaxy Raiders is built in [Kotlin][2], a modern programming language for
the JVM (Java Virtual Machine) supporting object-oriented programming and
functional programming. It uses [Gradle][3] as the official build tool.
To develop Galaxy Raiders, please install and use [docker][4].
> NOTE: This repo has gradle wrappers to ensure developers use the same version
> of gradle in every environment. However, using gradle's docker image already
> guarantees that. Therefore, commands below can use the `gradle` CLI directly.
Please also install [pre-commit][5] in your development environment to
automatically format code and to detect bed smells before making new commits.
By default, this integration also uses [docker][4].
## Linting
This project uses [ktlint][6] and [detekt][7] for static code analysis.
If you installed [pre-commit][5], to execute the linters, run:
```bash
pre-commit run --all-files
```
Alternatively, to execute the linters manually, run:
```bash
docker compose --profile dev run --rm linter
```
## Compilation
The compilation of all classes and the generation of a runnable self-contained
JAR is made "behind the scenes" by [docker][4].
To build the development images, run:
```bash
docker compose --profile dev build
```
To build the production images, run:
```bash
docker compose --profile prod build
```
## Tests
All tests in the project are developed using [JUnit 5][8].
To execute all tests (with live reload), run:
```bash
docker compose --profile dev up tester
```
## Execution
To execute the project in development mode (with live reload), run:
```bash
docker compose --profile dev up demo --build
```
To execute the project in production mode, run:
```bash
docker compose --profile prod up game --build
```
## Other tasks
To find available gradle tasks, run:
```bash
docker compose --profile dev run --rm demo gradle --no-daemon tasks
```
To execute any task, run:
```bash
docker compose --profile dev run --rm demo gradle --no-daemon {task}
```
[1]: https://uspdigital.usp.br/jupiterweb/obterDisciplina?sgldis=MAC0218
[2]: https://gradle.org
[3]: https://kotlinlang.org
[4]: https://docs.docker.com
[5]: https://pre-commit.com
[6]: https://github.com/pinterest/ktlint
[7]: https://github.com/detekt/detekt
[8]: https://junit.org/junit5
近期下载者:
相关文件:
收藏者: