Compare commits
10 commits
544c261c3b
...
c8ee421f34
Author | SHA1 | Date | |
---|---|---|---|
c8ee421f34 | |||
dda4b4b519 | |||
e9766f074a | |||
cb2cdd29eb | |||
715ca44014 | |||
2a1ca7be6b | |||
1ef87c01e3 | |||
612127db19 | |||
9c253d36df | |||
942e79bc19 |
8 changed files with 155 additions and 14 deletions
116
Cargo.lock
generated
116
Cargo.lock
generated
|
@ -13,6 +13,12 @@ dependencies = [
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "autocfg"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitflags"
|
name = "bitflags"
|
||||||
version = "1.3.2"
|
version = "1.3.2"
|
||||||
|
@ -62,6 +68,55 @@ dependencies = [
|
||||||
"os_str_bytes",
|
"os_str_bytes",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-channel"
|
||||||
|
version = "0.5.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
"crossbeam-utils",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-deque"
|
||||||
|
version = "0.8.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
"crossbeam-epoch",
|
||||||
|
"crossbeam-utils",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-epoch"
|
||||||
|
version = "0.9.11"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
"cfg-if",
|
||||||
|
"crossbeam-utils",
|
||||||
|
"memoffset",
|
||||||
|
"scopeguard",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-utils"
|
||||||
|
version = "0.8.12"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "either"
|
||||||
|
version = "1.8.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "getrandom"
|
name = "getrandom"
|
||||||
version = "0.2.7"
|
version = "0.2.7"
|
||||||
|
@ -94,6 +149,25 @@ version = "0.2.132"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"
|
checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "memoffset"
|
||||||
|
version = "0.6.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num_cpus"
|
||||||
|
version = "1.13.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
|
||||||
|
dependencies = [
|
||||||
|
"hermit-abi",
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "numtoa"
|
name = "numtoa"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
@ -190,6 +264,30 @@ dependencies = [
|
||||||
"getrandom",
|
"getrandom",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rayon"
|
||||||
|
version = "1.5.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
"crossbeam-deque",
|
||||||
|
"either",
|
||||||
|
"rayon-core",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rayon-core"
|
||||||
|
version = "1.9.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
|
||||||
|
dependencies = [
|
||||||
|
"crossbeam-channel",
|
||||||
|
"crossbeam-deque",
|
||||||
|
"crossbeam-utils",
|
||||||
|
"num_cpus",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "redox_syscall"
|
name = "redox_syscall"
|
||||||
version = "0.2.16"
|
version = "0.2.16"
|
||||||
|
@ -210,31 +308,39 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rs48"
|
name = "rs48"
|
||||||
version = "1.2.0"
|
version = "1.3.3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"rand",
|
"rand",
|
||||||
"rs48_lib 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rs48_lib 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rs48_lib"
|
name = "rs48_lib"
|
||||||
version = "1.2.0"
|
version = "1.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rand",
|
"rand",
|
||||||
|
"rayon",
|
||||||
"termion",
|
"termion",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rs48_lib"
|
name = "rs48_lib"
|
||||||
version = "1.2.0"
|
version = "1.3.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8e4957f52e96513f08ec15e07df67c85f3ac7d24ccb2cbda03279435651b37a5"
|
checksum = "7bb1258263e47505149cd6fb2224598a6d790bbef3d20884360cc3b983b02360"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rand",
|
"rand",
|
||||||
|
"rayon",
|
||||||
"termion",
|
"termion",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "scopeguard"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "strsim"
|
name = "strsim"
|
||||||
version = "0.10.0"
|
version = "0.10.0"
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
[workspace]
|
[workspace]
|
||||||
members = ["rs48", "rs48_lib"]
|
members = ["rs48", "rs48_lib"]
|
||||||
|
default-members = ["rs48"]
|
||||||
|
|
42
README.md
42
README.md
|
@ -9,14 +9,48 @@ configurability and implements a few types of AI.
|
||||||
|
|
||||||
Compiled with the [rustup toolchain](https://rustup.rs).
|
Compiled with the [rustup toolchain](https://rustup.rs).
|
||||||
|
|
||||||
|
### Installing
|
||||||
|
```sh
|
||||||
|
cargo install rs48
|
||||||
|
```
|
||||||
|
|
||||||
|
alternatively, you can clone this repo and build it yourself.
|
||||||
|
|
||||||
### Building
|
### Building
|
||||||
|
|
||||||
```powershell
|
```sh
|
||||||
cargo build
|
git clone "https://github.com/MajorBarnulf/rs48.git"
|
||||||
|
cd rs48/rs48
|
||||||
|
cargo build -r
|
||||||
```
|
```
|
||||||
|
|
||||||
### Running
|
### Running
|
||||||
|
|
||||||
```powershell
|
```sh
|
||||||
cargo run
|
cargo run -r
|
||||||
|
```
|
||||||
|
|
||||||
|
### Help
|
||||||
|
```s
|
||||||
|
Usage: rs48 [OPTIONS]
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-s, --size <SIZE>
|
||||||
|
size of the grid on which the game is played [default: 4]
|
||||||
|
-w, --spawn <SPAWN>
|
||||||
|
number of tiles that will spawn on the grid each turn [default: 1]
|
||||||
|
--no-clear
|
||||||
|
disable clearing the terminal to refresh the screen
|
||||||
|
-k, --display-skips <DISPLAY_SKIPS>
|
||||||
|
skips the refresh of that many turns, allow AIs to play faster [default: 0]
|
||||||
|
-d, --delay <DELAY>
|
||||||
|
delay in ms to add between each turns [default: 0]
|
||||||
|
-c, --controller <CONTROLLER>
|
||||||
|
the controller to use for the game [default: player]
|
||||||
|
--color-seed <COLOR_SEED>
|
||||||
|
sets a seed for the color pattern, 0 for random, default is 35 [default: 35]
|
||||||
|
-h, --help
|
||||||
|
Print help information
|
||||||
|
-V, --version
|
||||||
|
Print version information
|
||||||
```
|
```
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "rs48"
|
name = "rs48"
|
||||||
version = "1.2.0"
|
version = "1.3.3"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "A game of 2048 that plays in the terminal as a TUI with a lot of configurability."
|
description = "A game of 2048 that plays in the terminal as a TUI with a lot of configurability."
|
||||||
license = "GPL-3.0"
|
license = "GPL-3.0"
|
||||||
|
@ -10,5 +10,5 @@ homepage = "https://github.com/MajorBarnulf/rs48"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
clap = { version = "4.0", features = ["derive"] }
|
clap = { version = "4.0", features = ["derive"] }
|
||||||
rs48_lib = "1.3"
|
rs48_lib = "1.3.1"
|
||||||
rand = "0.8"
|
rand = "0.8"
|
||||||
|
|
1
rs48/README.md
Symbolic link
1
rs48/README.md
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../README.md
|
1
rs48/target
Symbolic link
1
rs48/target
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../target
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "rs48_lib"
|
name = "rs48_lib"
|
||||||
version = "1.3.0"
|
version = "1.3.1"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "components of rs48"
|
description = "components of rs48"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
|
@ -50,7 +50,6 @@ impl Controller for SimulatedController {
|
||||||
.collect();
|
.collect();
|
||||||
scores.sort_by(|(_, a), (_, b)| b.cmp(a));
|
scores.sort_by(|(_, a), (_, b)| b.cmp(a));
|
||||||
|
|
||||||
dbg!(&scores);
|
|
||||||
let (m, _) = scores.first().unwrap();
|
let (m, _) = scores.first().unwrap();
|
||||||
Ok(m.clone())
|
Ok(m.clone())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue