Skip to content

Commit

Permalink
4 space
Browse files Browse the repository at this point in the history
  • Loading branch information
xinpw8 committed Jan 17, 2025
1 parent fcba83c commit 8bee0f7
Show file tree
Hide file tree
Showing 2 changed files with 1,397 additions and 1,378 deletions.
130 changes: 65 additions & 65 deletions pufferlib/ocean/enduro/enduro.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,85 +8,85 @@
#include "puffernet.h"
#include "raylib.h"

void get_input(Enduro *env) {
if ((IsKeyDown(KEY_DOWN) && IsKeyDown(KEY_RIGHT)) ||
(IsKeyDown(KEY_S) && IsKeyDown(KEY_D))) {
env->actions[0] = ACTION_DOWNRIGHT; // Decelerate and move right
} else if ((IsKeyDown(KEY_DOWN) && IsKeyDown(KEY_LEFT)) ||
(IsKeyDown(KEY_S) && IsKeyDown(KEY_A))) {
env->actions[0] = ACTION_DOWNLEFT; // Decelerate and move left
} else if (IsKeyDown(KEY_SPACE) &&
(IsKeyDown(KEY_RIGHT) || IsKeyDown(KEY_D))) {
env->actions[0] = ACTION_RIGHTFIRE; // Accelerate and move right
} else if (IsKeyDown(KEY_SPACE) &&
(IsKeyDown(KEY_LEFT) || IsKeyDown(KEY_A))) {
env->actions[0] = ACTION_LEFTFIRE; // Accelerate and move left
} else if (IsKeyDown(KEY_SPACE)) {
env->actions[0] = ACTION_FIRE; // Accelerate
} else if (IsKeyDown(KEY_DOWN) || IsKeyDown(KEY_S)) {
env->actions[0] = ACTION_DOWN; // Decelerate
} else if (IsKeyDown(KEY_LEFT) || IsKeyDown(KEY_A)) {
env->actions[0] = ACTION_LEFT; // Move left
} else if (IsKeyDown(KEY_RIGHT) || IsKeyDown(KEY_D)) {
env->actions[0] = ACTION_RIGHT; // Move right
} else {
env->actions[0] = ACTION_NOOP; // No action
}
void get_input(Enduro* env) {
if ((IsKeyDown(KEY_DOWN) && IsKeyDown(KEY_RIGHT)) ||
(IsKeyDown(KEY_S) && IsKeyDown(KEY_D))) {
env->actions[0] = ACTION_DOWNRIGHT; // Decelerate and move right
} else if ((IsKeyDown(KEY_DOWN) && IsKeyDown(KEY_LEFT)) ||
(IsKeyDown(KEY_S) && IsKeyDown(KEY_A))) {
env->actions[0] = ACTION_DOWNLEFT; // Decelerate and move left
} else if (IsKeyDown(KEY_SPACE) &&
(IsKeyDown(KEY_RIGHT) || IsKeyDown(KEY_D))) {
env->actions[0] = ACTION_RIGHTFIRE; // Accelerate and move right
} else if (IsKeyDown(KEY_SPACE) &&
(IsKeyDown(KEY_LEFT) || IsKeyDown(KEY_A))) {
env->actions[0] = ACTION_LEFTFIRE; // Accelerate and move left
} else if (IsKeyDown(KEY_SPACE)) {
env->actions[0] = ACTION_FIRE; // Accelerate
} else if (IsKeyDown(KEY_DOWN) || IsKeyDown(KEY_S)) {
env->actions[0] = ACTION_DOWN; // Decelerate
} else if (IsKeyDown(KEY_LEFT) || IsKeyDown(KEY_A)) {
env->actions[0] = ACTION_LEFT; // Move left
} else if (IsKeyDown(KEY_RIGHT) || IsKeyDown(KEY_D)) {
env->actions[0] = ACTION_RIGHT; // Move right
} else {
env->actions[0] = ACTION_NOOP; // No action
}
}

int demo() {
Weights *weights =
load_weights("resources/enduro/enduro_weights.bin", 142218);
LinearLSTM *net = make_linearlstm(weights, 1, 68, 9);
Weights* weights =
load_weights("resources/enduro/enduro_weights.bin", 142218);
LinearLSTM* net = make_linearlstm(weights, 1, 68, 9);

Enduro env = {.obs_size = OBSERVATIONS_MAX_SIZE};
allocate(&env);
GameState *client = make_client(&env);
unsigned int seed = 0;
init(&env, seed, 0);
reset(&env);
Enduro env = {.obs_size = OBSERVATIONS_MAX_SIZE};
allocate(&env);
GameState* client = make_client(&env);
unsigned int seed = 0;
init(&env, seed, 0);
reset(&env);

while (!WindowShouldClose()) {
if (IsKeyDown(KEY_LEFT_SHIFT)) {
get_input(&env);
} else {
forward_linearlstm(net, env.observations, env.actions);
}
while (!WindowShouldClose()) {
if (IsKeyDown(KEY_LEFT_SHIFT)) {
get_input(&env);
} else {
forward_linearlstm(net, env.observations, env.actions);
}

c_step(&env);
render(client, &env);
}
c_step(&env);
render(client, &env);
}

free_linearlstm(net);
free(weights);
close_client(client);
free_allocated(&env);
return 0;
free_linearlstm(net);
free(weights);
close_client(client);
free_allocated(&env);
return 0;
}

void perftest(float test_time) {
Enduro env = {.obs_size = OBSERVATIONS_MAX_SIZE};
allocate(&env);
Enduro env = {.obs_size = OBSERVATIONS_MAX_SIZE};
allocate(&env);

unsigned int seed = 12345;
init(&env, seed, 0);
reset(&env);
unsigned int seed = 12345;
init(&env, seed, 0);
reset(&env);

int start = time(NULL);
int i = 0;
while (time(NULL) - start < test_time) {
env.actions[0] = rand() % 9;
c_step(&env);
i++;
}
int start = time(NULL);
int i = 0;
while (time(NULL) - start < test_time) {
env.actions[0] = rand() % 9;
c_step(&env);
i++;
}

int end = time(NULL);
printf("SPS: %f\n", i / (float)(end - start));
free_allocated(&env);
int end = time(NULL);
printf("SPS: %f\n", i / (float)(end - start));
free_allocated(&env);
}

int main() {
demo();
// perftest(20.0f);
return 0;
demo();
// perftest(20.0f);
return 0;
}
Loading

0 comments on commit 8bee0f7

Please sign in to comment.