switched to a fast hashing algorithm
This commit is contained in:
parent
9cb320e357
commit
a6b7824648
6 changed files with 34 additions and 2 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1 +1,2 @@
|
|||
/target
|
||||
.vscode
|
7
Cargo.lock
generated
7
Cargo.lock
generated
|
@ -12,6 +12,7 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
|||
name = "golrs"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"metrohash",
|
||||
"termion",
|
||||
]
|
||||
|
||||
|
@ -21,6 +22,12 @@ version = "0.2.132"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"
|
||||
|
||||
[[package]]
|
||||
name = "metrohash"
|
||||
version = "1.0.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3ba553cb19e2acbc54baa16faef215126243fe45e53357a3b2e9f4ebc7b0506c"
|
||||
|
||||
[[package]]
|
||||
name = "numtoa"
|
||||
version = "0.1.0"
|
||||
|
|
|
@ -9,3 +9,4 @@ repository = "https://github.com/MajorBarnulf/golrs"
|
|||
|
||||
[dependencies]
|
||||
termion = "1.5"
|
||||
metrohash = "1.0"
|
|
@ -1,3 +1,3 @@
|
|||
#
|
||||
#
|
||||
#
|
||||
#
|
21
patterns/gen.ts
Executable file
21
patterns/gen.ts
Executable file
|
@ -0,0 +1,21 @@
|
|||
#!/usr/bin/env -S deno run
|
||||
|
||||
const { args } = Deno;
|
||||
|
||||
const size = parseInt(args[0] ?? "5");
|
||||
const frequency = parseFloat(args[1] ?? "0.5");
|
||||
|
||||
|
||||
function* range(from: number, to: number) {
|
||||
let current = from;
|
||||
while (current < to) yield current++;
|
||||
}
|
||||
|
||||
let result = "";
|
||||
for (const _y of range(0, size)) {
|
||||
for (const _x of range(0, size))
|
||||
result += Math.random() < frequency ? '#' : ' ';
|
||||
result += '\n';
|
||||
}
|
||||
|
||||
console.log(result);
|
|
@ -1,5 +1,7 @@
|
|||
use std::collections::HashMap;
|
||||
|
||||
use metrohash::MetroBuildHasher;
|
||||
|
||||
use crate::{pos, Cell, Pos, World};
|
||||
|
||||
const CHUNK_SIZE: usize = 16;
|
||||
|
@ -34,7 +36,7 @@ struct ChunkPos(Pos);
|
|||
|
||||
#[derive(Debug, Clone, Default)]
|
||||
pub struct HashedWorld {
|
||||
chunks: HashMap<ChunkPos, Chunk>,
|
||||
chunks: HashMap<ChunkPos, Chunk, MetroBuildHasher>,
|
||||
}
|
||||
|
||||
impl HashedWorld {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue