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 0000000..864c834 Binary files /dev/null and b/main differ diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..adb34fe --- /dev/null +++ b/main.cpp @@ -0,0 +1,52 @@ +#include +#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 d46e553..0000000 Binary files a/zombie_final.png and /dev/null differ diff --git a/zombie_final.svg b/zombie_final.svg deleted file mode 100644 index 06f83f0..0000000 --- a/zombie_final.svg +++ /dev/null @@ -1,4208 +0,0 @@ - - - - - - - - - 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