From 5041f3c54155d474a5b5e09d2021b05022e15cca Mon Sep 17 00:00:00 2001 From: Awen Lelu Date: Tue, 6 Jan 2026 16:35:32 +0100 Subject: [PATCH] cpp --- .envrc | 1 + .gitignore | 23 - README.md | 5 - chatgpt.exs | 163 -- flake.lock | 52 +- flake.nix | 82 +- main | Bin 0 -> 16080 bytes main.cpp | 52 + states.json | 1 - states_final.json | 356 ---- states_live.json | 1 - zombie_final.png | Bin 27996 -> 0 bytes zombie_final.svg | 4208 --------------------------------------------- 13 files changed, 110 insertions(+), 4834 deletions(-) create mode 100644 .envrc delete mode 100644 .gitignore delete mode 100644 README.md delete mode 100644 chatgpt.exs create mode 100755 main create mode 100644 main.cpp delete mode 100644 states.json delete mode 100644 states_final.json delete mode 100644 states_live.json delete mode 100644 zombie_final.png delete mode 100644 zombie_final.svg diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 7ec2509..0000000 --- a/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -# The directory Mix will write compiled artifacts to. -/_build/ - -# If you run "mix test --cover", coverage assets end up here. -/cover/ - -# The directory Mix downloads your dependencies sources to. -/deps/ - -# Where third-party dependencies like ExDoc output generated docs. -/doc/ - -# If the VM crashes, it generates a dump, let's ignore it too. -erl_crash.dump - -# Also ignore archive artifacts (built via "mix archive.build"). -*.ez - -# Ignore package tarball (built via "mix hex.build"). -chatgpt-*.tar - -# Temporary files, for example, from tests. -/tmp/ diff --git a/README.md b/README.md deleted file mode 100644 index a6743b0..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# simulation de zombie -coder avec chat gpt - -# usage -`elixir chatgpt.exs` diff --git a/chatgpt.exs b/chatgpt.exs deleted file mode 100644 index 40589a3..0000000 --- a/chatgpt.exs +++ /dev/null @@ -1,163 +0,0 @@ -Mix.install([ - {:jason, "~> 1.4"}, - {:matplotex, "~> 0.4.71"} -]) - -defmodule ZombieApocalypse do - @moduledoc """ - Simulation zombie complète. - - - Chaque zombie a un niveau de faim. - - Faim augmente de 5 chaque heure. - - Si un zombie mange un humain, sa faim revient à 0 et l'humain devient un zombie. - - Certains zombies peuvent mourir. - - Sauvegarde JSON à chaque heure. - - Affichage dans le terminal avec pourcentages. - - Génération graphique final avec Matplotex. - """ - - @state_file "states.json" - - # ===================================== - # Démarrage de la simulation - # ===================================== - def start(humans \\ 10, zombies \\ 3, max_hours \\ 100) do - File.write!(@state_file, "[]") - IO.puts("🧟 Lancement de la simulation...") - - zombie_list = for _ <- 1..max(zombies, 0), do: 0 - - loop(0, humans, zombie_list, max_hours, humans, zombies) - - # Génération graphique - plot_final() - IO.puts("✅ Simulation terminée. JSON et graphique générés (zombie_final.png).") - end - - # ===================================== - # Boucle principale - # ===================================== - defp loop(hour, humans, zombie_list, max_hours, initial_humans, initial_zombies) - when hour < max_hours do - state = %{ - hour: hour, - humans: humans, - zombies: length(zombie_list), - timestamp: DateTime.utc_now() - } - - append_state(state) - - percent_humans = - if initial_humans > 0, do: humans / initial_humans * 100, else: 0 - - percent_zombies = - if initial_zombies > 0, do: length(zombie_list) / initial_zombies * 100, else: 0 - - IO.puts( - "Heure #{hour} : Humains = #{humans} (#{Float.round(percent_humans, 1)}%), " <> - "Zombies = #{length(zombie_list)} (#{Float.round(percent_zombies, 1)}%)" - ) - - cond do - humans <= 0 or length(zombie_list) == 0 -> - {humans, zombie_list} - - true -> - {new_humans, new_zombies} = simulate_hour(humans, zombie_list) - loop(hour + 1, new_humans, new_zombies, max_hours, initial_humans, initial_zombies) - end - end - - defp loop(_, humans, zombie_list, _, _, _), do: {humans, zombie_list} - - # ===================================== - # Simulation d'une heure - # ===================================== - defp simulate_hour(humans, zombie_list) do - new_zombie_list = Enum.map(zombie_list, &(&1 + 5)) - - {remaining_humans, zombies_after_hour} = - Enum.reduce(new_zombie_list, {humans, []}, fn hunger, {hum_left, acc} -> - if hum_left > 0 and :rand.uniform() <= 0.4 + hunger / 100 do - # zombie mange humain → nouveau zombie - {hum_left - 1, [0, 0 | acc]} - else - {hum_left, [hunger | acc]} - end - end) - - # Certains zombies peuvent mourir - killed = Enum.count(zombies_after_hour, fn _ -> :rand.uniform() <= 0.15 end) - final_zombies = Enum.drop(zombies_after_hour, killed) - - {remaining_humans, final_zombies} - end - - # ===================================== - # Sauvegarde JSON - # ===================================== - defp append_state(state) do - states = - File.read!(@state_file) - |> Jason.decode!() - - File.write!(@state_file, Jason.encode!(states ++ [state], pretty: false)) - end - - # ===================================== - # Graphique final - # ===================================== - defp plot_final do - states = - File.read!(@state_file) - |> Jason.decode!() - - humans = Enum.map(states, & &1["humans"]) |> Enum.filter(&is_number/1) - zombies = Enum.map(states, & &1["zombies"]) |> Enum.filter(&is_number/1) - hours = Enum.map(states, & &1["hour"]) |> Enum.filter(&is_number/1) - - if length(hours) > 0 and length(humans) == length(hours) and length(zombies) == length(hours) do - infection_rate = - if length(humans) >= 2 do - humans - |> Enum.chunk_every(2, 1, :discard) - |> Enum.map(fn [prev, next] -> prev - next end) - else - [] - end - - inf_hours = Enum.drop(hours, 1) - - fig = Matplotex.plot(hours, humans, color: "blue", label: "Humains") - fig = Matplotex.plot(fig, hours, zombies, color: "red", label: "Zombies") - - if infection_rate != [] and length(inf_hours) == length(infection_rate) do - fig = - Matplotex.plot(fig, inf_hours, infection_rate, - color: "green", - label: "Vélocité Infection" - ) - end - - fig_opts = %{figsize: {8, 5}} - fig = Matplotex.figure(fig, fig_opts) - fig = Matplotex.set_title(fig, "Simulation Zombie Apocalypse") - fig = Matplotex.set_xlabel(fig, "Heure") - fig = Matplotex.set_ylabel(fig, "Population / Infection rate") - - svg = Matplotex.show(fig) - File.write!("zombie_final.svg", svg) - System.cmd("rsvg-convert", ["zombie_final.svg", "-o", "zombie_final.png"]) - - IO.puts("🖼️ Graphique généré : zombie_final.png") - else - IO.puts("⚠️ Données insuffisantes pour tracer le graphique.") - end - end -end - -# ===================================== -# Lancement -# ===================================== -ZombieApocalypse.start(10_000_000, 3, 100) diff --git a/flake.lock b/flake.lock index 5fd6f52..8866c16 100644 --- a/flake.lock +++ b/flake.lock @@ -1,59 +1,23 @@ { "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1767379071, - "narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fb7944c166a3b630f177938e478f0378e64ce108", - "type": "github" + "lastModified": 1767480499, + "narHash": "sha256-8IQQUorUGiSmFaPnLSo2+T+rjHtiNWc+OAzeHck7N48=", + "rev": "30a3c519afcf3f99e2c6df3b359aec5692054d92", + "revCount": 905029, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.905029%2Brev-30a3c519afcf3f99e2c6df3b359aec5692054d92/019b8a16-97a4-7377-8bff-e3543affe919/source.tar.gz?rev=30a3c519afcf3f99e2c6df3b359aec5692054d92&revCount=905029" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" + "type": "tarball", + "url": "https://flakehub.com/f/NixOS/nixpkgs/0" } }, "root": { "inputs": { - "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 736bf32..e751e3d 100644 --- a/flake.nix +++ b/flake.nix @@ -1,39 +1,55 @@ { - description = "Environnement de développement Elixir pour la simulation d'apocalypse zombie"; + description = "A Nix-flake-based C/C++ development environment"; - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - flake-utils.url = "github:numtide/flake-utils"; - }; + inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0"; # stable Nixpkgs outputs = + { self, ... }@inputs: + + let + supportedSystems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + forEachSupportedSystem = + f: + inputs.nixpkgs.lib.genAttrs supportedSystems ( + system: + f { + pkgs = import inputs.nixpkgs { inherit system; }; + } + ); + in { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem ( - system: - let - pkgs = import nixpkgs { inherit system; }; - in - { - devShells.default = pkgs.mkShell { - name = "elixir-zombie-dev"; - - packages = with pkgs; [ - elixir - erlang - elixir-ls - - librsvg - ]; - - shellHook = '' - echo "🧟 Environnement Elixir prêt" - echo "➡️ Lance : iex zombie_apocalypse.ex" - ''; - }; - } - ); + devShells = forEachSupportedSystem ( + { pkgs }: + { + default = + pkgs.mkShell.override + { + # Override stdenv in order to change compiler: + # stdenv = pkgs.clangStdenv; + } + { + packages = + with pkgs; + [ + clang-tools + cmake + codespell + conan + cppcheck + doxygen + gtest + lcov + vcpkg + vcpkg-tool + ] + ++ (if stdenv.hostPlatform.system == "aarch64-darwin" then [ ] else [ gdb ]); + }; + } + ); + }; } diff --git a/main b/main new file mode 100755 index 0000000000000000000000000000000000000000..864c834b56bf204b59f141f473935fefd7300322 GIT binary patch literal 16080 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 +#include + +// sans ia et sans gluten + +const int base_zombies = 3; +const int base_humans = 1000; + +const float attack_chance = 0.8; +const float infection_chance = + 0.5; // 50% de chance de se faire infecté si non tué par l'attaque +const float death_chance = 0.2; // 20% de chance de mourir de l'attaque + +void attack(int humans, int zombies, int *new_humans, int *new_zombies) { + if (rand() % 100 < death_chance) { + *new_humans = humans - 1; + } else if (rand() % 100 < infection_chance) { + *new_humans = humans - 1; + *new_zombies = zombies + 1; + } else { + *new_humans = humans; + *new_zombies = zombies; + } +} + +void loop(int hour, int humans, int zombies) { + + int new_humans; + int new_zombies; + + std:printf("hour: %ld| zombies: %ld| humans: %ld \n", hour, zombies, humans); + + for (int n = 0; n < new_zombies; n++) { + if (rand() % 100 < attack_chance) { + attack(humans, zombies, &new_humans, &new_zombies); + } + } + + attack(humans, zombies, &new_humans, &new_zombies); + + if (new_humans <= 0 || new_zombies <= 0) { + std::printf("finito pipo"); + } else { + loop(hour+1, new_humans, new_zombies); + } +} + +int main() { + loop(0, base_humans, base_zombies); + + return 0; +} diff --git a/states.json b/states.json deleted file mode 100644 index 7662f14..0000000 --- a/states.json +++ /dev/null @@ -1 +0,0 @@ -[{"hour":0,"humans":10000000,"timestamp":"2026-01-06T13:03:12.229421Z","zombies":3},{"hour":1,"humans":10000000,"timestamp":"2026-01-06T13:03:12.244572Z","zombies":3},{"hour":2,"humans":10000000,"timestamp":"2026-01-06T13:03:12.244840Z","zombies":1},{"hour":3,"humans":10000000,"timestamp":"2026-01-06T13:03:12.244963Z","zombies":1},{"hour":4,"humans":9999999,"timestamp":"2026-01-06T13:03:12.245071Z","zombies":2},{"hour":5,"humans":9999998,"timestamp":"2026-01-06T13:03:12.245179Z","zombies":3},{"hour":6,"humans":9999998,"timestamp":"2026-01-06T13:03:12.245290Z","zombies":3},{"hour":7,"humans":9999996,"timestamp":"2026-01-06T13:03:12.245434Z","zombies":4},{"hour":8,"humans":9999996,"timestamp":"2026-01-06T13:03:12.245583Z","zombies":3},{"hour":9,"humans":9999995,"timestamp":"2026-01-06T13:03:12.245713Z","zombies":4},{"hour":10,"humans":9999992,"timestamp":"2026-01-06T13:03:12.245826Z","zombies":7},{"hour":11,"humans":9999989,"timestamp":"2026-01-06T13:03:12.245948Z","zombies":10},{"hour":12,"humans":9999983,"timestamp":"2026-01-06T13:03:12.246066Z","zombies":12},{"hour":13,"humans":9999977,"timestamp":"2026-01-06T13:03:12.246177Z","zombies":17},{"hour":14,"humans":9999966,"timestamp":"2026-01-06T13:03:12.246306Z","zombies":25},{"hour":15,"humans":9999951,"timestamp":"2026-01-06T13:03:12.246426Z","zombies":35},{"hour":16,"humans":9999932,"timestamp":"2026-01-06T13:03:12.246549Z","zombies":46},{"hour":17,"humans":9999912,"timestamp":"2026-01-06T13:03:12.246689Z","zombies":51},{"hour":18,"humans":9999881,"timestamp":"2026-01-06T13:03:12.246829Z","zombies":71},{"hour":19,"humans":9999847,"timestamp":"2026-01-06T13:03:12.247008Z","zombies":89},{"hour":20,"humans":9999807,"timestamp":"2026-01-06T13:03:12.247168Z","zombies":110},{"hour":21,"humans":9999759,"timestamp":"2026-01-06T13:03:12.247336Z","zombies":140},{"hour":22,"humans":9999695,"timestamp":"2026-01-06T13:03:12.247509Z","zombies":174},{"hour":23,"humans":9999603,"timestamp":"2026-01-06T13:03:12.247746Z","zombies":224},{"hour":24,"humans":9999500,"timestamp":"2026-01-06T13:03:12.247998Z","zombies":275},{"hour":25,"humans":9999373,"timestamp":"2026-01-06T13:03:12.248282Z","zombies":346},{"hour":26,"humans":9999204,"timestamp":"2026-01-06T13:03:12.248686Z","zombies":447},{"hour":27,"humans":9998986,"timestamp":"2026-01-06T13:03:12.249337Z","zombies":556},{"hour":28,"humans":9998738,"timestamp":"2026-01-06T13:03:12.250268Z","zombies":689},{"hour":29,"humans":9998382,"timestamp":"2026-01-06T13:03:12.251187Z","zombies":909},{"hour":30,"humans":9997950,"timestamp":"2026-01-06T13:03:12.251806Z","zombies":1137},{"hour":31,"humans":9997394,"timestamp":"2026-01-06T13:03:12.252289Z","zombies":1430},{"hour":32,"humans":9996700,"timestamp":"2026-01-06T13:03:12.252786Z","zombies":1801},{"hour":33,"humans":9995846,"timestamp":"2026-01-06T13:03:12.253580Z","zombies":2248},{"hour":34,"humans":9994775,"timestamp":"2026-01-06T13:03:12.255179Z","zombies":2778},{"hour":35,"humans":9993467,"timestamp":"2026-01-06T13:03:12.256293Z","zombies":3448},{"hour":36,"humans":9991821,"timestamp":"2026-01-06T13:03:12.257459Z","zombies":4334},{"hour":37,"humans":9989690,"timestamp":"2026-01-06T13:03:12.259207Z","zombies":5449},{"hour":38,"humans":9987191,"timestamp":"2026-01-06T13:03:12.260416Z","zombies":6714},{"hour":39,"humans":9984051,"timestamp":"2026-01-06T13:03:12.261889Z","zombies":8309},{"hour":40,"humans":9980071,"timestamp":"2026-01-06T13:03:12.263856Z","zombies":10439},{"hour":41,"humans":9975065,"timestamp":"2026-01-06T13:03:12.269086Z","zombies":13175},{"hour":42,"humans":9968863,"timestamp":"2026-01-06T13:03:12.272941Z","zombies":16538},{"hour":43,"humans":9960897,"timestamp":"2026-01-06T13:03:12.276752Z","zombies":20824},{"hour":44,"humans":9951088,"timestamp":"2026-01-06T13:03:12.281605Z","zombies":26094},{"hour":45,"humans":9938714,"timestamp":"2026-01-06T13:03:12.292027Z","zombies":32610},{"hour":46,"humans":9923306,"timestamp":"2026-01-06T13:03:12.301141Z","zombies":40897},{"hour":47,"humans":9903781,"timestamp":"2026-01-06T13:03:12.311698Z","zombies":51424},{"hour":48,"humans":9879237,"timestamp":"2026-01-06T13:03:12.328533Z","zombies":64449},{"hour":49,"humans":9848630,"timestamp":"2026-01-06T13:03:12.356184Z","zombies":80589},{"hour":50,"humans":9810361,"timestamp":"2026-01-06T13:03:12.377479Z","zombies":101022},{"hour":51,"humans":9762582,"timestamp":"2026-01-06T13:03:12.413216Z","zombies":126476},{"hour":52,"humans":9702606,"timestamp":"2026-01-06T13:03:12.458715Z","zombies":158629},{"hour":53,"humans":9627633,"timestamp":"2026-01-06T13:03:12.512304Z","zombies":198462},{"hour":54,"humans":9532986,"timestamp":"2026-01-06T13:03:12.578030Z","zombies":249148},{"hour":55,"humans":9414612,"timestamp":"2026-01-06T13:03:12.650610Z","zombies":312484},{"hour":56,"humans":9266177,"timestamp":"2026-01-06T13:03:12.757576Z","zombies":391826},{"hour":57,"humans":9079879,"timestamp":"2026-01-06T13:03:12.888450Z","zombies":491739},{"hour":58,"humans":8845616,"timestamp":"2026-01-06T13:03:13.063785Z","zombies":617112},{"hour":59,"humans":8551345,"timestamp":"2026-01-06T13:03:13.261404Z","zombies":774936},{"hour":60,"humans":8182867,"timestamp":"2026-01-06T13:03:13.574562Z","zombies":971588},{"hour":61,"humans":7720729,"timestamp":"2026-01-06T13:03:13.961153Z","zombies":1218493},{"hour":62,"humans":7142029,"timestamp":"2026-01-06T13:03:14.459197Z","zombies":1527709},{"hour":63,"humans":6415084,"timestamp":"2026-01-06T13:03:15.087293Z","zombies":1915509},{"hour":64,"humans":5504841,"timestamp":"2026-01-06T13:03:15.890527Z","zombies":2401179},{"hour":65,"humans":4362452,"timestamp":"2026-01-06T13:03:16.744407Z","zombies":3012039},{"hour":66,"humans":2929316,"timestamp":"2026-01-06T13:03:18.028834Z","zombies":3778002},{"hour":67,"humans":1132728,"timestamp":"2026-01-06T13:03:19.968161Z","zombies":4737336},{"timestamp":"2026-01-06T13:03:21.779691Z","hour":68,"humans":0,"zombies":4989869}] \ No newline at end of file diff --git a/states_final.json b/states_final.json deleted file mode 100644 index 86c61d4..0000000 --- a/states_final.json +++ /dev/null @@ -1,356 +0,0 @@ -[ - { - "hour": 0, - "humans": 5000000, - "timestamp": "2026-01-06T12:14:41.180887Z", - "zombies": 3 - }, - { - "hour": 1, - "humans": 5000000, - "timestamp": "2026-01-06T12:14:41.188896Z", - "zombies": 3 - }, - { - "hour": 2, - "humans": 4999998, - "timestamp": "2026-01-06T12:14:41.188929Z", - "zombies": 5 - }, - { - "hour": 3, - "humans": 4999996, - "timestamp": "2026-01-06T12:14:41.188949Z", - "zombies": 7 - }, - { - "hour": 4, - "humans": 4999993, - "timestamp": "2026-01-06T12:14:41.188963Z", - "zombies": 9 - }, - { - "hour": 5, - "humans": 4999990, - "timestamp": "2026-01-06T12:14:41.188984Z", - "zombies": 11 - }, - { - "hour": 6, - "humans": 4999983, - "timestamp": "2026-01-06T12:14:41.189001Z", - "zombies": 17 - }, - { - "hour": 7, - "humans": 4999975, - "timestamp": "2026-01-06T12:14:41.189020Z", - "zombies": 23 - }, - { - "hour": 8, - "humans": 4999961, - "timestamp": "2026-01-06T12:14:41.189040Z", - "zombies": 32 - }, - { - "hour": 9, - "humans": 4999948, - "timestamp": "2026-01-06T12:14:41.189075Z", - "zombies": 37 - }, - { - "hour": 10, - "humans": 4999931, - "timestamp": "2026-01-06T12:14:41.189109Z", - "zombies": 45 - }, - { - "hour": 11, - "humans": 4999910, - "timestamp": "2026-01-06T12:14:41.189157Z", - "zombies": 60 - }, - { - "hour": 12, - "humans": 4999885, - "timestamp": "2026-01-06T12:14:41.189188Z", - "zombies": 67 - }, - { - "hour": 13, - "humans": 4999845, - "timestamp": "2026-01-06T12:14:41.189218Z", - "zombies": 92 - }, - { - "hour": 14, - "humans": 4999803, - "timestamp": "2026-01-06T12:14:41.189268Z", - "zombies": 116 - }, - { - "hour": 15, - "humans": 4999747, - "timestamp": "2026-01-06T12:14:41.189316Z", - "zombies": 149 - }, - { - "hour": 16, - "humans": 4999659, - "timestamp": "2026-01-06T12:14:41.189366Z", - "zombies": 202 - }, - { - "hour": 17, - "humans": 4999563, - "timestamp": "2026-01-06T12:14:41.189412Z", - "zombies": 249 - }, - { - "hour": 18, - "humans": 4999444, - "timestamp": "2026-01-06T12:14:41.189465Z", - "zombies": 324 - }, - { - "hour": 19, - "humans": 4999288, - "timestamp": "2026-01-06T12:14:41.189529Z", - "zombies": 413 - }, - { - "hour": 20, - "humans": 4999096, - "timestamp": "2026-01-06T12:14:41.189635Z", - "zombies": 512 - }, - { - "hour": 21, - "humans": 4998841, - "timestamp": "2026-01-06T12:14:41.189864Z", - "zombies": 636 - }, - { - "hour": 22, - "humans": 4998553, - "timestamp": "2026-01-06T12:14:41.189989Z", - "zombies": 772 - }, - { - "hour": 23, - "humans": 4998179, - "timestamp": "2026-01-06T12:14:41.190176Z", - "zombies": 981 - }, - { - "hour": 24, - "humans": 4997721, - "timestamp": "2026-01-06T12:14:41.190360Z", - "zombies": 1245 - }, - { - "hour": 25, - "humans": 4997118, - "timestamp": "2026-01-06T12:14:41.190594Z", - "zombies": 1568 - }, - { - "hour": 26, - "humans": 4996382, - "timestamp": "2026-01-06T12:14:41.190901Z", - "zombies": 1954 - }, - { - "hour": 27, - "humans": 4995446, - "timestamp": "2026-01-06T12:14:41.191312Z", - "zombies": 2425 - }, - { - "hour": 28, - "humans": 4994294, - "timestamp": "2026-01-06T12:14:41.191968Z", - "zombies": 3052 - }, - { - "hour": 29, - "humans": 4992830, - "timestamp": "2026-01-06T12:14:41.192710Z", - "zombies": 3834 - }, - { - "hour": 30, - "humans": 4990950, - "timestamp": "2026-01-06T12:14:41.194421Z", - "zombies": 4869 - }, - { - "hour": 31, - "humans": 4988664, - "timestamp": "2026-01-06T12:14:41.196273Z", - "zombies": 6024 - }, - { - "hour": 32, - "humans": 4985753, - "timestamp": "2026-01-06T12:14:41.197687Z", - "zombies": 7587 - }, - { - "hour": 33, - "humans": 4982215, - "timestamp": "2026-01-06T12:14:41.199289Z", - "zombies": 9390 - }, - { - "hour": 34, - "humans": 4977787, - "timestamp": "2026-01-06T12:14:41.201555Z", - "zombies": 11751 - }, - { - "hour": 35, - "humans": 4972174, - "timestamp": "2026-01-06T12:14:41.203873Z", - "zombies": 14819 - }, - { - "hour": 36, - "humans": 4965252, - "timestamp": "2026-01-06T12:14:41.207054Z", - "zombies": 18508 - }, - { - "hour": 37, - "humans": 4956468, - "timestamp": "2026-01-06T12:14:41.213896Z", - "zombies": 23339 - }, - { - "hour": 38, - "humans": 4945253, - "timestamp": "2026-01-06T12:14:41.219102Z", - "zombies": 29327 - }, - { - "hour": 39, - "humans": 4931259, - "timestamp": "2026-01-06T12:14:41.227398Z", - "zombies": 36780 - }, - { - "hour": 40, - "humans": 4913827, - "timestamp": "2026-01-06T12:14:41.236964Z", - "zombies": 46208 - }, - { - "hour": 41, - "humans": 4892019, - "timestamp": "2026-01-06T12:14:41.252259Z", - "zombies": 57797 - }, - { - "hour": 42, - "humans": 4864582, - "timestamp": "2026-01-06T12:14:41.265113Z", - "zombies": 72434 - }, - { - "hour": 43, - "humans": 4830165, - "timestamp": "2026-01-06T12:14:41.282722Z", - "zombies": 90838 - }, - { - "hour": 44, - "humans": 4786828, - "timestamp": "2026-01-06T12:14:41.305416Z", - "zombies": 114058 - }, - { - "hour": 45, - "humans": 4732682, - "timestamp": "2026-01-06T12:14:41.344774Z", - "zombies": 142846 - }, - { - "hour": 46, - "humans": 4665123, - "timestamp": "2026-01-06T12:14:41.382320Z", - "zombies": 178719 - }, - { - "hour": 47, - "humans": 4580281, - "timestamp": "2026-01-06T12:14:41.432100Z", - "zombies": 224117 - }, - { - "hour": 48, - "humans": 4473784, - "timestamp": "2026-01-06T12:14:41.499129Z", - "zombies": 281086 - }, - { - "hour": 49, - "humans": 4340194, - "timestamp": "2026-01-06T12:14:41.584992Z", - "zombies": 352257 - }, - { - "hour": 50, - "humans": 4173153, - "timestamp": "2026-01-06T12:14:41.690964Z", - "zombies": 441440 - }, - { - "hour": 51, - "humans": 3962221, - "timestamp": "2026-01-06T12:14:41.811665Z", - "zombies": 554491 - }, - { - "hour": 52, - "humans": 3698707, - "timestamp": "2026-01-06T12:14:41.964906Z", - "zombies": 695545 - }, - { - "hour": 53, - "humans": 3368228, - "timestamp": "2026-01-06T12:14:42.159879Z", - "zombies": 872160 - }, - { - "hour": 54, - "humans": 2953399, - "timestamp": "2026-01-06T12:14:42.424475Z", - "zombies": 1093196 - }, - { - "hour": 55, - "humans": 2432909, - "timestamp": "2026-01-06T12:14:42.785990Z", - "zombies": 1370897 - }, - { - "hour": 56, - "humans": 1780644, - "timestamp": "2026-01-06T12:14:43.164048Z", - "zombies": 1718976 - }, - { - "hour": 57, - "humans": 963391, - "timestamp": "2026-01-06T12:14:43.642602Z", - "zombies": 2156863 - }, - { - "hour": 58, - "humans": 0, - "timestamp": "2026-01-06T12:14:44.297738Z", - "zombies": 2652703 - } -] \ No newline at end of file diff --git a/states_live.json b/states_live.json deleted file mode 100644 index 58b0823..0000000 --- a/states_live.json +++ /dev/null @@ -1 +0,0 @@ -[{"timestamp":"2026-01-06T12:28:29.675146Z","hour":0,"humans":10,"zombies":3}] \ No newline at end of file diff --git a/zombie_final.png b/zombie_final.png deleted file mode 100644 index d46e553a8a4e153db3ad14476d1c2b343a9b5e79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27996 zcmeAS@N?(olHy`uVBq!ia0y~yU}j)oV0^&A#=yWJ6vd^=z`($k|H*Y zfkA=6)5S5QV$Pep-&C2tZ z#q%_G|F(OctKd0Fg+laIiup93Lr^deOB*BSjC;<{WhTrQPKcU3Z?*d4eAC!k``JJD zeHWG7;8FL!TFG;B0+YhleYy?$Oz|h`<9I71XGCm1FLi+X!0H3Bwj$TH4tO81c+j`A zW*tAHK2tu^;%A?B?#j~mAeyk)FRz=~|9gPVX@>QT?-`Y?ZsuD)DxSyElk@23boOs7 zVGMHFk3N5EQ9NLMV9$ZGs>hW)Cz%`%V{#J?KlacXyH>`#LSVT(3xEAwX$P0kZ)sAsCr$+PhN>b^*6 zPbUAo&8s;b$|bn=u+CxjQ5EXBcZ9`ZQrh7Ko0unDxsc`}-hcb`spHJ??Em_|{rlw2 z;La2-e7A5_zrOOWU$QJZQ}Tb?8pwa}eX!VN`{d1y>YtuRiTw~O{QCRctj~J9HOm+5 z31h2~x?y?$f9V5zmsWem&&>9W+gOeefsl{sqJlrbLVPUEhbddzlwjptkOpN!adgKNlK9n5fT<`JGf@} zY$@VVjw-5iuMuk(y4!t^ObeZE6*$J%E*N*iiBkK`y7 za2Hs{N(XOb{}?xqb&W?&yx-a6m8QRUElqWr?y83;&ZvWP6H3te0*dEy5D9?CZ zICd4^ndAyF3-O9&&vqOdSC2R|6PUq?_ZZbkJ!F$ z&kEKDOZL2pdLZs{w4N>SXX}f7pUf9=U!L*j`P$Ax-cApLRr@B(SF;C7?(JCNu~ksi zvV$vwsm?p(&bjrKzWEpIBDSr*rmnSOx>%02P5<+AHuLrii2k?k)V{#r{q*A;=P!%x zXRpXmdl2rD`Z@l{^N&^&x9H51kIrS>F-Ic$qxggKKke2(yRE3TlG9?B+P1wN+TXtm zy#F2F@%f_h9;g z`5oWCGCr~nkp8~K=H2Gb^Hpqto$G#u)!mE!{QOsT-5F8S-&eLX+~KzIR9Uih--P$y zRTD1$dG6i8^>=A1VAXe8Uf&_+?0@sO?=#u%xa_HK?v(7Gw;y&Y zjrF^rN7h#Q7p10l9Lc;pt9ILo)Bh*f|MU4*(Z1`s)npH|)z9na{+N@k{rmRQ<8|Vm zla}cHGAVpo%oR9shTEA*#VQv?7p}5nToER8eqHrG?@ym@EqQRb^5*tW$BQpB1w2{( zvu^hFDQC49Ev7v3x~}l()f>~Fk5xbY)mwFY{jVDPd9FF3k{6>486#FF{66^e^V^tk zy9q0P+?`+_r*i-OpS<168YTFtuk3R=6b zi%hwG+^n;2t?F{&`#YCromzGBY$@yck2-JfE?wn$D~|Wu>avfw4DaWE-&GsNX6N=i z{A~HMzg~7{<}m2Elr;YeK5OXQdH(yBS;wzVYpv?PcyI4=spo}rj|BTZ>x%oFY*M~W z&2v_EALE3m+iQR3IwnXj+I{AnOZlXHA?B9XzvHe~ZG87}x69MtXLlKOtX@={UAXAb ze!jqo(q17l>EC~@zN`Og`GYxbd+v$8J~e-3^`CD!^FIG}`98t6Q!hBSH{I$(jH8X~ z`|4HN`CsG(b?DXqTg<{_665fwcB5__c*B- zbYGcz_H6d8SrWTHL@&B@qo+bj*X`<53w0BV;}e>SGS;*7Yww74-I8OnN&cc}TKKKw zO?zCon5iTg6#V_)xrlM?){muM_pT~SpMA%(#`#l3pZcU-+8yt Lb~dlj?j(EjLu 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 - - - - - - - - 0.0 - - - - - - - - - 9.71 - - - - - - - - - 19.43 - - - - - - - - - 29.14 - - - - - - - - - 38.86 - - - - - - - - - 48.57 - - - - - - - - - 58.29 - - - - - - - - - 68.0 - - - - - - - - - 0.0 - - - - - - - - - 2.5e6 - - - - - - - - - 5.0e6 - - - - - - - - - 7.5e6 - - - - - - - - - 1.0e7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Heure - - - Population / Infection rate - - - Simulation Zombie Apocalypse - - - - - - - Humains - - - - - - - - Zombies - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file