From dc95a4c25671689ea9ed4286c2cf3d217e017d64 Mon Sep 17 00:00:00 2001 From: Vincent Foriel Date: Sun, 1 Oct 2023 17:00:48 +0200 Subject: [PATCH] Added random_normal(mean,std) function to the lib --- .../functions/random_normal/gauss.mcfunction | 35 + .../random_normal/interface.mcfunction | 14 + .../functions/random_normal/loop.mcfunction | 39 + .../lib/tags/functions/random_normal.json | 5 + minigames/wolstreet_wolf.ipynb | 1001 +++++++++++++++++ 5 files changed, 1094 insertions(+) create mode 100644 __global__/data/lib/functions/random_normal/gauss.mcfunction create mode 100644 __global__/data/lib/functions/random_normal/interface.mcfunction create mode 100644 __global__/data/lib/functions/random_normal/loop.mcfunction create mode 100644 __global__/data/lib/tags/functions/random_normal.json create mode 100644 minigames/wolstreet_wolf.ipynb diff --git a/__global__/data/lib/functions/random_normal/gauss.mcfunction b/__global__/data/lib/functions/random_normal/gauss.mcfunction new file mode 100644 index 0000000..95eaf40 --- /dev/null +++ b/__global__/data/lib/functions/random_normal/gauss.mcfunction @@ -0,0 +1,35 @@ + +# Compute arg = (x-m)²/(2σ²) +scoreboard players operation #gauss.arg tmp = #gauss.input tmp +scoreboard players operation #gauss.arg tmp -= #mean tmp +scoreboard players operation #gauss.arg tmp *= #gauss.arg tmp +scoreboard players set 1000 const 1000 +scoreboard players operation #gauss.arg tmp *= 1000 const +scoreboard players set 2 const 2 +scoreboard players operation #gauss.arg tmp /= 2 const +scoreboard players operation #gauss.arg tmp /= #std tmp +scoreboard players operation #gauss.arg tmp /= #std tmp + +# Compute exp(arg) +execute store result storage bs:in math.exp.value double 0.001 run scoreboard players get #gauss.arg tmp +scoreboard players operation #math.exp bs.in = #gauss.arg tmp +function #bs.math:exp +execute store result score #math.exp bs.out run data get storage bs:out math.exp 1000 + +# Compute 1/(σ√(2π)) +scoreboard players set #gauss.norm tmp 1000000 +scoreboard players operation #gauss.norm tmp /= #std tmp +scoreboard players set 2507 const 2507 +scoreboard players operation #gauss.norm tmp /= 2507 const + +# Compute result -> 1/(σ√(2π)) / exp(arg) +scoreboard players operation #gauss.output tmp = #gauss.norm tmp +scoreboard players operation #gauss.output tmp *= 1000 const +scoreboard players operation #gauss.output tmp /= #math.exp bs.out + +# tellraw @a [{"text":"x: ","color":"gray"},{"score":{"name":"#gauss.input","objective":"tmp"}}] +# tellraw @a [{"text":"arg: ","color":"gray"},{"score":{"name":"#gauss.arg","objective":"tmp"}}] +# tellraw @a [{"text":"1/exp(arg): ","color":"gray"},{"score":{"name":"#math.exp","objective":"bs.out"}}] +# tellraw @a [{"text":"norm: ","color":"gray"},{"score":{"name":"#gauss.norm","objective":"tmp"}}] +# tellraw @a [{"text":"gauss: ","color":"gray"},{"score":{"name":"#gauss","objective":"tmp"}}] +# tellraw @a [{"text":" "}] \ No newline at end of file diff --git a/__global__/data/lib/functions/random_normal/interface.mcfunction b/__global__/data/lib/functions/random_normal/interface.mcfunction new file mode 100644 index 0000000..500e576 --- /dev/null +++ b/__global__/data/lib/functions/random_normal/interface.mcfunction @@ -0,0 +1,14 @@ + +scoreboard players operation #x tmp = #mean tmp +scoreboard players operation #delta tmp = #std tmp +scoreboard players operation #delta tmp *= 2 const +scoreboard players set #loop tmp 0 + +# Computing starting prob +scoreboard players operation #gauss.input tmp = #x tmp +function lib:random_normal/gauss +scoreboard players operation #p_o tmp = #gauss.output tmp + +function lib:random_normal/loop + +tellraw @a [{"text":"Result:","color":"green","bold":true},{"score":{"name":"#x","objective":"tmp"}}] \ No newline at end of file diff --git a/__global__/data/lib/functions/random_normal/loop.mcfunction b/__global__/data/lib/functions/random_normal/loop.mcfunction new file mode 100644 index 0000000..bac61aa --- /dev/null +++ b/__global__/data/lib/functions/random_normal/loop.mcfunction @@ -0,0 +1,39 @@ + + +# Computing step -> dx = (2*rand()-1) * delta +execute store result score #dx tmp run random value 0..2000 +scoreboard players remove #dx tmp 1000 +scoreboard players operation #dx tmp *= #delta tmp +scoreboard players operation #dx tmp /= 1000 const + +# Getting new position -> new_x = x + dx +scoreboard players operation #new_x tmp = #x tmp +scoreboard players operation #new_x tmp += #dx tmp + +# Computing new prob +scoreboard players operation #gauss.input tmp = #new_x tmp +function lib:random_normal/gauss +scoreboard players operation #p_n tmp = #gauss.output tmp + +# Computing acceptance probability -> p = min(1, p_n / p_o) +scoreboard players operation #a tmp = #p_n tmp +scoreboard players operation #a tmp *= 1000 const +scoreboard players operation #a tmp /= #p_o tmp +scoreboard players operation #a tmp < 1000 const + +# Deciding whether to accept or not -> if rand() < a: x = new_x +execute store result score #r tmp run random value 0..1000 +execute if score #r tmp < #a tmp run scoreboard players operation #x tmp = #new_x tmp +execute if score #r tmp < #a tmp run scoreboard players operation #p_o tmp = #p_n tmp + +# tellraw @a [{"text":"dx: "},{"score":{"name":"#dx","objective":"tmp"}}] +# tellraw @a [{"text":"p_n: "},{"score":{"name":"#p_n","objective":"tmp"}}] +# tellraw @a [{"text":"p_o: "},{"score":{"name":"#p_o","objective":"tmp"}}] +# tellraw @a [{"text":"a: ","color":"red"},{"score":{"name":"#a","objective":"tmp"}}] +# tellraw @a [{"text":"r: ","color":"red"},{"score":{"name":"#r","objective":"tmp"}}] +# tellraw @a [{"text":"x: ","color":"gold","bold":true},{"score":{"name":"#x","objective":"tmp"}}] +# tellraw @a [{"text":"----------"}] + +scoreboard players add #loop tmp 1 +execute unless score #loop tmp matches 5.. run function lib:random_normal/loop + diff --git a/__global__/data/lib/tags/functions/random_normal.json b/__global__/data/lib/tags/functions/random_normal.json new file mode 100644 index 0000000..9926f6e --- /dev/null +++ b/__global__/data/lib/tags/functions/random_normal.json @@ -0,0 +1,5 @@ +{ + "values": [ + "lib:random_normal/interface" + ] +} \ No newline at end of file diff --git a/minigames/wolstreet_wolf.ipynb b/minigames/wolstreet_wolf.ipynb new file mode 100644 index 0000000..81d2c44 --- /dev/null +++ b/minigames/wolstreet_wolf.ipynb @@ -0,0 +1,1001 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 386, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Répartition des ressources" + ] + }, + { + "cell_type": "code", + "execution_count": 387, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAA9hAAAPYQGoP6dpAADDcklEQVR4nOydd3hUdfbG3zs9k94bIaETepMeiqAIyiJYsIGg4lpYC5af7opiw7WA7IqKslLFRRdRUREQJEAQ6U0IIRBCgPTep97fH3e+NzOkTSYzt8x8P8+TZyaTO/ee9HfOec85DMuyLCgUCoVCoVC8BIXYAVAoFAqFQqG4EypuKBQKhUKheBVU3FAoFAqFQvEqqLihUCgUCoXiVVBxQ6FQKBQKxaug4oZCoVAoFIpXQcUNhUKhUCgUr4KKGwqFQqFQKF4FFTcUCoVCoVC8CipuKBQBGTduHMaNGyd2GA4cPnwYI0eOhL+/PxiGwYkTJ8QOyadITU0FwzBITU31+LUWLVoEhmFQXFzs8WuJhbO/Y0J+3SnCQ8UNRTacOXMGDzzwAOLj46HVahEXF4cHHngAZ8+eFTs0B86ePYtFixYhOzu71WNzc3OxaNEi0QSFyWTCXXfdhdLSUnz44YdYv349EhMTRYmF4j4WL16M77//XuwwKBTRUIkdAIXiDJs3b8a9996LsLAwPPzww+jUqROys7PxxRdfYNOmTfj6668xbdo0scMEwImb119/HePGjUNSUpLDx3bs2OHwfm5uLl5//XUkJSVhwIABwgVp4+LFi7h8+TJWrlyJRx55RPDrU4AxY8agrq4OGo3GbedcvHgx7rzzTtx+++1uOyeFIieouKFInosXL2LWrFno3Lkz9u7di8jISP5jTz/9NFJSUvDAAw/g1KlT6NSpk4iRto47/4G5g8LCQgBASEiIS8+vqamBv7+/GyMShvr6emg0GigU4ievFQoFdDqd2GHIntraWuj1erHDoEgE8X+zKZRWeP/991FbW4vPP//cQdgAQEREBD777DNUV1fj/fff5x+fM2dOo6wJ0OA5sGf16tW48cYbERUVBa1Wi169euHTTz9t9NykpCTcdtttSEtLw9ChQ6HT6dC5c2esW7eOP2bNmjW46667AADjx48HwzAOdX17P0BqaipuuOEGAMDcuXP5Y9esWYPXXnsNarUaRUVFjeJ49NFHERISgvr6+ha/br/99htSUlLg7++PkJAQTJs2Denp6Q5fo7FjxwIA7rrrLjAM06JXYc2aNWAYBnv27METTzyBqKgodOjQgf/4L7/8wl8vMDAQt956K86cOeNwjvz8fMydOxcdOnSAVqtFbGwspk2b1qiE98knn6B37958+fHJJ59EeXm5wzFJSUmYM2dOoziv91wQb8XGjRvxyiuvID4+Hnq9HpWVlQCAgwcPYsqUKQgNDYW/vz/69euHf/3rXw7nPHfuHO68806EhYVBp9NhyJAh2LJli8MxJpMJr7/+Orp16wadTofw8HCMHj0av/76a7NfU/v47L0f48aNQ58+fXD27FmMHz8eer0e8fHxeO+991o8FwAwDIOamhqsXbuW/5m6/utUXl6OOXPmICQkBMHBwZg7dy5qa2sbnevLL7/E4MGD4efnh7CwMNxzzz24cuVKi9c/deoUGIZx+PocPXoUDMNg0KBBDsdOnjwZw4YNc3jMme89+focPXoUY8aMgV6vx9///vdmY7p69Spuv/12+Pv7IyoqCs8++ywMBkOLnwdF3lBxQ5E8P/74I5KSkpCSktLkx8eMGYOkpCT8+OOPLp3/008/RWJiIv7+979jyZIlSEhIwBNPPIGPP/640bEXLlzAnXfeiZtuuglLlixBaGgo5syZw/8THzNmDJ566ikAwN///nesX78e69evR3JycqNzJScn44033gDACRZy7JgxYzBr1iyYzWZ8/fXXDs8xGo3YtGkT7rjjjhZf7e/cuROTJk1CYWEhFi1ahAULFuD333/HqFGjeCHx17/+lf+H8NRTT2H9+vX4xz/+0erX64knnsDZs2fx6quv4qWXXgIArF+/HrfeeisCAgLw7rvvYuHChTh79ixGjx7tIFzuuOMOfPfdd5g7dy4++eQTPPXUU6iqqkJOTg5/zKJFi/Dkk08iLi4OS5YswR133IHPPvsMN998M0wmU6vxNcebb76Jn3/+Gc8//zwWL14MjUaDX3/9FWPGjMHZs2fx9NNPY8mSJRg/fjx++ukn/nlnzpzB8OHDkZ6ejpdeeglLliyBv78/br/9dnz33XcOcb/++usYP348li9fjn/84x/o2LEjjh075lK8ZWVluOWWW9C/f38sWbIEPXv2xP/93//hl19+afF569evh1arRUpKCv8z9de//tXhmLvvvhtVVVV4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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Showing distribution of resources in the world\n", + "\n", + "def gauss(x, mu, sigma):\n", + " return np.exp(-np.power(x - mu, 2.) / (2 * np.power(sigma, 2.)))\n", + "\n", + "x = np.linspace(0,2500,1000)\n", + "plt.plot(x,gauss(x, 1500, 300), label=\"wood\")\n", + "plt.plot(x,gauss(x, 1000, 150), label=\"stone\")\n", + "plt.plot(x,gauss(x, 525, 75), label=\"iron\")\n", + "plt.plot(x,gauss(x, 250, 25), label=\"gold\")\n", + "plt.plot(x,gauss(x, 50, 5), label=\"diamond\")\n", + "plt.title(\"Quantity of resources in the world\")\n", + "plt.xlabel(\"Quantity (number of items)\")\n", + "plt.ylabel(\"Probability\")\n", + "plt.legend()\n", + "x=plt.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 388, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total ressources\n", + " wood: 177700 items | average price: 9.81 credits/item\n", + " stone: 102100 items | average price: 15.29 credits/item\n", + " iron: 54200 items | average price: 37.77 credits/item\n", + " gold: 26400 items | average price: 79.09 credits/item\n", + " diamond: 5000 items | average price: 433.65 credits/item\n", + "\n" + ] + } + ], + "source": [ + "#\n", + "wood_total_quantity = int(np.random.normal(1500,300)) * 100\n", + "stone_total_quantity = int(np.random.normal(1000,150)) * 100\n", + "iron_total_quantity = int(np.random.normal(525,75)) * 100\n", + "gold_total_quantity = int(np.random.normal(250,25)) * 100\n", + "diamond_total_quantity = int(np.random.normal(50,5)) * 100\n", + "\n", + "total_quantity = wood_total_quantity + stone_total_quantity + iron_total_quantity + gold_total_quantity + diamond_total_quantity\n", + "\n", + "wood_quantity_percentage = wood_total_quantity / total_quantity\n", + "stone_quantity_percentage = stone_total_quantity / total_quantity\n", + "iron_quantity_percentage = iron_total_quantity / total_quantity\n", + "gold_quantity_percentage = gold_total_quantity / total_quantity\n", + "diamond_quantity_percentage = diamond_total_quantity / total_quantity\n", + "\n", + "start_money = 5000 # crédits\n", + "buy_power = 1000 # items avec les crédits initiaux\n", + "\n", + "wood_price = start_money / buy_power / wood_quantity_percentage\n", + "stone_price = start_money / buy_power / stone_quantity_percentage\n", + "iron_price = start_money / buy_power / iron_quantity_percentage\n", + "gold_price = start_money / buy_power / gold_quantity_percentage\n", + "diamond_price = start_money / buy_power / diamond_quantity_percentage\n", + "\n", + "wood_price = np.random.normal(wood_price, 0.1*wood_price)\n", + "stone_price = np.random.normal(stone_price, 0.1*stone_price)\n", + "iron_price = np.random.normal(iron_price, 0.1*iron_price)\n", + "gold_price = np.random.normal(gold_price, 0.1*gold_price)\n", + "diamond_price = np.random.normal(diamond_price, 0.1*diamond_price)\n", + "\n", + "print(f\"\"\"\\\n", + "Total ressources\n", + " wood: {wood_total_quantity} items | average price: {wood_price:.2f} credits/item\n", + " stone: {stone_total_quantity} items | average price: {stone_price:.2f} credits/item\n", + " iron: {iron_total_quantity} items | average price: {iron_price:.2f} credits/item\n", + " gold: {gold_total_quantity} items | average price: {gold_price:.2f} credits/item\n", + " diamond: {diamond_total_quantity} items | average price: {diamond_price:.2f} credits/item\n", + "\"\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 389, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Villager 0:\n", + " wood: 1948 items | price: 8.69 credits/item\n", + " stone: 389 items | price: 22.82 credits/item\n", + " iron: 863 items | price: 16.21 credits/item\n", + " gold: 151 items | price: 126.89 credits/item\n", + " diamond: 42 items | price: 448.18 credits/item\n", + "\n", + "Villager 1:\n", + " wood: 3210 items | price: 1.82 credits/item\n", + " stone: 536 items | price: 19.91 credits/item\n", + " iron: 238 items | price: 59.14 credits/item\n", + " gold: 252 items | price: 73.07 credits/item\n", + " diamond: 65 items | price: 298.33 credits/item\n", + "\n", + "Villager 2:\n", + " wood: 1005 items | price: 13.49 credits/item\n", + " stone: 1122 items | price: 14.53 credits/item\n", + " iron: 139 items | price: 62.06 credits/item\n", + " gold: 277 items | price: 72.88 credits/item\n", + " diamond: 78 items | price: 198.41 credits/item\n", + "\n", + "Villager 3:\n", + " wood: 3131 items | price: 2.39 credits/item\n", + " stone: 582 items | price: 20.17 credits/item\n", + " iron: 571 items | price: 39.94 credits/item\n", + " gold: 263 items | price: 73.29 credits/item\n", + " diamond: 91 items | price: 82.31 credits/item\n", + "\n", + "Villager 4:\n", + " wood: 3187 items | price: 1.82 credits/item\n", + " stone: 1257 items | price: 10.68 credits/item\n", + " iron: 569 items | price: 35.30 credits/item\n", + " gold: 112 items | price: 142.44 credits/item\n", + " diamond: 1 items | price: 774.54 credits/item\n", + "\n", + "Villager 5:\n", + " wood: 885 items | price: 16.03 credits/item\n", + " stone: 1433 items | price: 8.27 credits/item\n", + " iron: 743 items | price: 23.38 credits/item\n", + " gold: 413 items | price: 36.84 credits/item\n", + " diamond: 34 items | price: 587.90 credits/item\n", + "\n", + "Villager 6:\n", + " wood: 140 items | price: 19.60 credits/item\n", + " stone: 611 items | price: 19.90 credits/item\n", + " iron: 212 items | price: 42.61 credits/item\n", + " gold: 402 items | price: 31.80 credits/item\n", + " diamond: 2 items | price: 797.65 credits/item\n", + "\n", + "Villager 7:\n", + " wood: 1428 items | price: 11.88 credits/item\n", + " stone: 119 items | price: 30.12 credits/item\n", + " iron: 895 items | price: 12.91 credits/item\n", + " gold: 261 items | price: 67.78 credits/item\n", + " diamond: 99 items | price: 45.96 credits/item\n", + "\n", + "Villager 8:\n", + " wood: 2813 items | price: 3.96 credits/item\n", + " stone: 802 items | price: 17.31 credits/item\n", + " iron: 742 items | price: 26.82 credits/item\n", + " gold: 82 items | price: 108.36 credits/item\n", + " diamond: 84 items | price: 120.69 credits/item\n", + "\n", + "Villager 9:\n", + " wood: 2172 items | price: 9.11 credits/item\n", + " stone: 1652 items | price: 6.26 credits/item\n", + " iron: 958 items | price: 8.67 credits/item\n", + " gold: 347 items | price: 64.48 credits/item\n", + " diamond: 60 items | price: 390.67 credits/item\n", + "\n", + "Villager 10:\n", + " wood: 2105 items | price: 8.45 credits/item\n", + " stone: 143 items | price: 32.58 credits/item\n", + " iron: 672 items | price: 28.92 credits/item\n", + " gold: 146 items | price: 111.53 credits/item\n", + " diamond: 92 items | price: 67.35 credits/item\n", + "\n", + "Villager 11:\n", + " wood: 1003 items | price: 11.91 credits/item\n", + " stone: 737 items | price: 22.26 credits/item\n", + " iron: 146 items | price: 61.89 credits/item\n", + " gold: 103 items | price: 124.41 credits/item\n", + " diamond: 92 items | price: 63.52 credits/item\n", + "\n", + "Villager 12:\n", + " wood: 872 items | price: 14.89 credits/item\n", + " stone: 1424 items | price: 7.19 credits/item\n", + " iron: 1035 items | price: 3.85 credits/item\n", + " gold: 435 items | price: 26.39 credits/item\n", + " diamond: 69 items | price: 273.06 credits/item\n", + "\n", + "Villager 13:\n", + " wood: 3220 items | price: 1.79 credits/item\n", + " stone: 1664 items | price: 5.76 credits/item\n", + " iron: 237 items | price: 56.78 credits/item\n", + " gold: 456 items | price: 22.52 credits/item\n", + " diamond: 95 items | price: 42.60 credits/item\n", + "\n", + "Villager 14:\n", + " wood: 491 items | price: 16.59 credits/item\n", + " stone: 802 items | price: 21.85 credits/item\n", + " iron: 964 items | price: 8.35 credits/item\n", + " gold: 490 items | price: 10.99 credits/item\n", + " diamond: 17 items | price: 667.11 credits/item\n", + "\n", + "Villager 15:\n", + " wood: 2558 items | price: 5.86 credits/item\n", + " stone: 118 items | price: 24.88 credits/item\n", + " iron: 940 items | price: 9.83 credits/item\n", + " gold: 318 items | price: 55.42 credits/item\n", + " diamond: 93 items | price: 64.40 credits/item\n", + "\n", + "Villager 16:\n", + " wood: 3233 items | price: 1.84 credits/item\n", + " stone: 1574 items | price: 7.63 credits/item\n", + " iron: 105 items | price: 62.09 credits/item\n", + " gold: 384 items | price: 42.73 credits/item\n", + " diamond: 37 items | price: 529.34 credits/item\n", + "\n", + "Villager 17:\n", + " wood: 1015 items | price: 13.50 credits/item\n", + " stone: 730 items | price: 23.12 credits/item\n", + " iron: 720 items | price: 20.03 credits/item\n", + " gold: 137 items | price: 124.21 credits/item\n", + " diamond: 54 items | price: 333.35 credits/item\n", + "\n", + "Villager 18:\n", + " wood: 3427 items | price: 1.01 credits/item\n", + " stone: 1364 items | price: 9.36 credits/item\n", + " iron: 804 items | price: 21.32 credits/item\n", + " gold: 304 items | price: 72.77 credits/item\n", + " diamond: 81 items | price: 197.49 credits/item\n", + "\n", + "Villager 19:\n", + " wood: 872 items | price: 14.03 credits/item\n", + " stone: 70 items | price: 24.85 credits/item\n", + " iron: 587 items | price: 28.37 credits/item\n", + " gold: 122 items | price: 133.42 credits/item\n", + " diamond: 51 items | price: 396.13 credits/item\n", + "\n", + "Villager 20:\n", + " wood: 566 items | price: 17.76 credits/item\n", + " stone: 1809 items | price: 3.75 credits/item\n", + " iron: 789 items | price: 22.24 credits/item\n", + " gold: 227 items | price: 88.70 credits/item\n", + " diamond: 62 items | price: 352.93 credits/item\n", + "\n", + "Villager 21:\n", + " wood: 3023 items | price: 2.49 credits/item\n", + " stone: 289 items | price: 26.89 credits/item\n", + " iron: 844 items | price: 17.42 credits/item\n", + " gold: 281 items | price: 81.86 credits/item\n", + " diamond: 91 items | price: 76.11 credits/item\n", + "\n", + "Villager 22:\n", + " wood: 1364 items | price: 11.95 credits/item\n", + " stone: 679 items | price: 21.66 credits/item\n", + " iron: 942 items | price: 10.00 credits/item\n", + " gold: 516 items | price: 7.67 credits/item\n", + " diamond: 94 items | price: 52.71 credits/item\n", + "\n", + "Villager 23:\n", + " wood: 789 items | price: 14.71 credits/item\n", + " stone: 568 items | price: 23.15 credits/item\n", + " iron: 79 items | price: 71.73 credits/item\n", + " gold: 262 items | price: 75.21 credits/item\n", + " diamond: 83 items | price: 162.93 credits/item\n", + "\n", + "Villager 24:\n", + " wood: 1885 items | price: 10.61 credits/item\n", + " stone: 1925 items | price: 1.70 credits/item\n", + " iron: 81 items | price: 77.06 credits/item\n", + " gold: 330 items | price: 64.74 credits/item\n", + " diamond: 51 items | price: 379.14 credits/item\n", + "\n", + "Villager 25:\n", + " wood: 122 items | price: 20.96 credits/item\n", + " stone: 98 items | price: 28.91 credits/item\n", + " iron: 608 items | price: 32.05 credits/item\n", + " gold: 54 items | price: 143.43 credits/item\n", + " diamond: 17 items | price: 561.23 credits/item\n", + "\n", + "Villager 26:\n", + " wood: 1210 items | price: 15.08 credits/item\n", + " stone: 160 items | price: 26.01 credits/item\n", + " iron: 794 items | price: 19.56 credits/item\n", + " gold: 186 items | price: 114.00 credits/item\n", + " diamond: 33 items | price: 630.31 credits/item\n", + "\n", + "Villager 27:\n", + " wood: 1690 items | price: 10.11 credits/item\n", + " stone: 610 items | price: 24.04 credits/item\n", + " iron: 476 items | price: 48.54 credits/item\n", + " gold: 391 items | price: 37.70 credits/item\n", + " diamond: 70 items | price: 300.29 credits/item\n", + "\n", + "Villager 28:\n", + " wood: 2409 items | price: 7.85 credits/item\n", + " stone: 178 items | price: 30.50 credits/item\n", + " iron: 318 items | price: 50.59 credits/item\n", + " gold: 365 items | price: 60.25 credits/item\n", + " diamond: 15 items | price: 774.36 credits/item\n", + "\n", + "Villager 29:\n", + " wood: 3191 items | price: 2.18 credits/item\n", + " stone: 1720 items | price: 3.82 credits/item\n", + " iron: 855 items | price: 12.21 credits/item\n", + " gold: 239 items | price: 77.41 credits/item\n", + " diamond: 71 items | price: 279.00 credits/item\n", + "\n", + "Villager 30:\n", + " wood: 1063 items | price: 11.15 credits/item\n", + " stone: 567 items | price: 28.43 credits/item\n", + " iron: 630 items | price: 32.50 credits/item\n", + " gold: 464 items | price: 21.11 credits/item\n", + " diamond: 80 items | price: 152.95 credits/item\n", + "\n", + "Villager 31:\n", + " wood: 1371 items | price: 12.66 credits/item\n", + " stone: 1824 items | price: 3.41 credits/item\n", + " iron: 185 items | price: 58.97 credits/item\n", + " gold: 21 items | price: 176.89 credits/item\n", + " diamond: 51 items | price: 439.84 credits/item\n", + "\n", + "Villager 32:\n", + " wood: 3531 items | price: 0.88 credits/item\n", + " stone: 40 items | price: 30.87 credits/item\n", + " iron: 1025 items | price: 3.76 credits/item\n", + " gold: 178 items | price: 110.90 credits/item\n", + " diamond: 88 items | price: 116.63 credits/item\n", + "\n", + "Villager 33:\n", + " wood: 2453 items | price: 6.32 credits/item\n", + " stone: 1908 items | price: 2.31 credits/item\n", + " iron: 624 items | price: 28.46 credits/item\n", + " gold: 186 items | price: 96.90 credits/item\n", + " diamond: 82 items | price: 138.38 credits/item\n", + "\n", + "Villager 34:\n", + " wood: 3190 items | price: 1.87 credits/item\n", + " stone: 236 items | price: 27.04 credits/item\n", + " iron: 749 items | price: 27.13 credits/item\n", + " gold: 71 items | price: 137.61 credits/item\n", + " diamond: 59 items | price: 457.33 credits/item\n", + "\n", + "Villager 35:\n", + " wood: 1423 items | price: 9.42 credits/item\n", + " stone: 1793 items | price: 3.43 credits/item\n", + " iron: 799 items | price: 18.57 credits/item\n", + " gold: 277 items | price: 88.19 credits/item\n", + " diamond: 44 items | price: 449.18 credits/item\n", + "\n", + "Villager 36:\n", + " wood: 159 items | price: 17.72 credits/item\n", + " stone: 1312 items | price: 13.07 credits/item\n", + " iron: 494 items | price: 40.94 credits/item\n", + " gold: 263 items | price: 73.17 credits/item\n", + " diamond: 94 items | price: 56.34 credits/item\n", + "\n", + "Villager 37:\n", + " wood: 1005 items | price: 14.39 credits/item\n", + " stone: 656 items | price: 22.02 credits/item\n", + " iron: 785 items | price: 20.21 credits/item\n", + " gold: 354 items | price: 46.60 credits/item\n", + " diamond: 91 items | price: 86.06 credits/item\n", + "\n", + "Villager 38:\n", + " wood: 2268 items | price: 7.12 credits/item\n", + " stone: 808 items | price: 18.22 credits/item\n", + " iron: 283 items | price: 71.51 credits/item\n", + " gold: 285 items | price: 62.18 credits/item\n", + " diamond: 49 items | price: 445.15 credits/item\n", + "\n", + "Villager 39:\n", + " wood: 440 items | price: 17.48 credits/item\n", + " stone: 438 items | price: 20.81 credits/item\n", + " iron: 975 items | price: 8.56 credits/item\n", + " gold: 404 items | price: 35.31 credits/item\n", + " diamond: 8 items | price: 753.33 credits/item\n", + "\n", + "Villager 40:\n", + " wood: 1173 items | price: 12.51 credits/item\n", + " stone: 1302 items | price: 9.50 credits/item\n", + " iron: 766 items | price: 28.36 credits/item\n", + " gold: 294 items | price: 61.72 credits/item\n", + " diamond: 30 items | price: 680.16 credits/item\n", + "\n", + "Villager 41:\n", + " wood: 2894 items | price: 4.35 credits/item\n", + " stone: 1627 items | price: 7.32 credits/item\n", + " iron: 489 items | price: 38.25 credits/item\n", + " gold: 391 items | price: 43.96 credits/item\n", + " diamond: 47 items | price: 488.22 credits/item\n", + "\n", + "Villager 42:\n", + " wood: 2178 items | price: 6.86 credits/item\n", + " stone: 689 items | price: 19.30 credits/item\n", + " iron: 587 items | price: 34.95 credits/item\n", + " gold: 341 items | price: 59.67 credits/item\n", + " diamond: 31 items | price: 637.19 credits/item\n", + "\n", + "Villager 43:\n", + " wood: 2793 items | price: 3.71 credits/item\n", + " stone: 1259 items | price: 9.33 credits/item\n", + " iron: 903 items | price: 13.17 credits/item\n", + " gold: 520 items | price: 7.04 credits/item\n", + " diamond: 20 items | price: 762.24 credits/item\n", + "\n", + "Villager 44:\n", + " wood: 1291 items | price: 10.07 credits/item\n", + " stone: 1076 items | price: 15.24 credits/item\n", + " iron: 391 items | price: 41.37 credits/item\n", + " gold: 327 items | price: 68.54 credits/item\n", + " diamond: 92 items | price: 76.21 credits/item\n", + "\n", + "Villager 45:\n", + " wood: 1370 items | price: 12.82 credits/item\n", + " stone: 1324 items | price: 10.11 credits/item\n", + " iron: 159 items | price: 72.15 credits/item\n", + " gold: 253 items | price: 84.32 credits/item\n", + " diamond: 98 items | price: 38.82 credits/item\n", + "\n", + "Villager 46:\n", + " wood: 246 items | price: 21.11 credits/item\n", + " stone: 1988 items | price: 1.77 credits/item\n", + " iron: 355 items | price: 51.61 credits/item\n", + " gold: 464 items | price: 20.06 credits/item\n", + " diamond: 7 items | price: 737.47 credits/item\n", + "\n", + "Villager 47:\n", + " wood: 381 items | price: 15.31 credits/item\n", + " stone: 792 items | price: 17.20 credits/item\n", + " iron: 539 items | price: 42.17 credits/item\n", + " gold: 424 items | price: 28.25 credits/item\n", + " diamond: 35 items | price: 536.32 credits/item\n", + "\n", + "Villager 48:\n", + " wood: 3098 items | price: 2.40 credits/item\n", + " stone: 169 items | price: 22.63 credits/item\n", + " iron: 730 items | price: 21.94 credits/item\n", + " gold: 360 items | price: 54.60 credits/item\n", + " diamond: 64 items | price: 326.64 credits/item\n", + "\n", + "Villager 49:\n", + " wood: 2731 items | price: 4.73 credits/item\n", + " stone: 1934 items | price: 1.55 credits/item\n", + " iron: 739 items | price: 19.68 credits/item\n", + " gold: 159 items | price: 109.76 credits/item\n", + " diamond: 73 items | price: 270.11 credits/item\n", + "\n", + "Villager 50:\n", + " wood: 1872 items | price: 7.83 credits/item\n", + " stone: 1215 items | price: 11.59 credits/item\n", + " iron: 890 items | price: 12.98 credits/item\n", + " gold: 149 items | price: 107.74 credits/item\n", + " diamond: 14 items | price: 667.54 credits/item\n", + "\n", + "Villager 51:\n", + " wood: 1641 items | price: 11.53 credits/item\n", + " stone: 1204 items | price: 13.79 credits/item\n", + " iron: 191 items | price: 53.91 credits/item\n", + " gold: 401 items | price: 34.15 credits/item\n", + " diamond: 31 items | price: 479.73 credits/item\n", + "\n", + "Villager 52:\n", + " wood: 3516 items | price: 1.09 credits/item\n", + " stone: 1886 items | price: 2.66 credits/item\n", + " iron: 704 items | price: 26.39 credits/item\n", + " gold: 521 items | price: 7.60 credits/item\n", + " diamond: 14 items | price: 750.19 credits/item\n", + "\n", + "Villager 53:\n", + " wood: 2674 items | price: 4.46 credits/item\n", + " stone: 626 items | price: 24.20 credits/item\n", + " iron: 1008 items | price: 5.26 credits/item\n", + " gold: 389 items | price: 35.87 credits/item\n", + " diamond: 88 items | price: 93.61 credits/item\n", + "\n", + "Villager 54:\n", + " wood: 932 items | price: 18.51 credits/item\n", + " stone: 1104 items | price: 15.52 credits/item\n", + " iron: 356 items | price: 47.64 credits/item\n", + " gold: 16 items | price: 186.11 credits/item\n", + " diamond: 69 items | price: 269.15 credits/item\n", + "\n", + "Villager 55:\n", + " wood: 2293 items | price: 6.64 credits/item\n", + " stone: 934 items | price: 19.73 credits/item\n", + " iron: 525 items | price: 38.78 credits/item\n", + " gold: 152 items | price: 129.16 credits/item\n", + " diamond: 35 items | price: 636.45 credits/item\n", + "\n", + "Villager 56:\n", + " wood: 229 items | price: 17.40 credits/item\n", + " stone: 1295 items | price: 10.68 credits/item\n", + " iron: 879 items | price: 12.98 credits/item\n", + " gold: 43 items | price: 156.68 credits/item\n", + " diamond: 37 items | price: 493.78 credits/item\n", + "\n", + "Villager 57:\n", + " wood: 829 items | price: 10.80 credits/item\n", + " stone: 1284 items | price: 12.40 credits/item\n", + " iron: 501 items | price: 41.83 credits/item\n", + " gold: 217 items | price: 91.66 credits/item\n", + " diamond: 46 items | price: 436.17 credits/item\n", + "\n", + "Villager 58:\n", + " wood: 2783 items | price: 4.39 credits/item\n", + " stone: 1009 items | price: 15.62 credits/item\n", + " iron: 288 items | price: 57.29 credits/item\n", + " gold: 110 items | price: 115.13 credits/item\n", + " diamond: 52 items | price: 380.64 credits/item\n", + "\n", + "Villager 59:\n", + " wood: 3118 items | price: 2.27 credits/item\n", + " stone: 1808 items | price: 3.19 credits/item\n", + " iron: 764 items | price: 21.20 credits/item\n", + " gold: 276 items | price: 69.62 credits/item\n", + " diamond: 86 items | price: 133.58 credits/item\n", + "\n", + "Villager 60:\n", + " wood: 2574 items | price: 6.16 credits/item\n", + " stone: 733 items | price: 19.97 credits/item\n", + " iron: 769 items | price: 24.38 credits/item\n", + " gold: 103 items | price: 136.58 credits/item\n", + " diamond: 46 items | price: 430.45 credits/item\n", + "\n", + "Villager 61:\n", + " wood: 384 items | price: 15.55 credits/item\n", + " stone: 1477 items | price: 9.00 credits/item\n", + " iron: 2 items | price: 78.06 credits/item\n", + " gold: 264 items | price: 87.08 credits/item\n", + " diamond: 20 items | price: 718.77 credits/item\n", + "\n", + "Villager 62:\n", + " wood: 604 items | price: 15.74 credits/item\n", + " stone: 729 items | price: 18.24 credits/item\n", + " iron: 324 items | price: 49.43 credits/item\n", + " gold: 338 items | price: 60.39 credits/item\n", + " diamond: 80 items | price: 149.46 credits/item\n", + "\n", + "Villager 63:\n", + " wood: 1932 items | price: 9.19 credits/item\n", + " stone: 806 items | price: 19.39 credits/item\n", + " iron: 1069 items | price: 3.80 credits/item\n", + " gold: 276 items | price: 74.51 credits/item\n", + " diamond: 44 items | price: 407.97 credits/item\n", + "\n", + "Villager 64:\n", + " wood: 3335 items | price: 1.09 credits/item\n", + " stone: 639 items | price: 18.85 credits/item\n", + " iron: 635 items | price: 24.91 credits/item\n", + " gold: 107 items | price: 121.44 credits/item\n", + " diamond: 24 items | price: 542.62 credits/item\n", + "\n", + "Villager 65:\n", + " wood: 2485 items | price: 5.60 credits/item\n", + " stone: 1083 items | price: 14.36 credits/item\n", + " iron: 964 items | price: 6.72 credits/item\n", + " gold: 275 items | price: 96.46 credits/item\n", + " diamond: 54 items | price: 405.16 credits/item\n", + "\n", + "Villager 66:\n", + " wood: 1716 items | price: 9.12 credits/item\n", + " stone: 1047 items | price: 15.05 credits/item\n", + " iron: 534 items | price: 44.99 credits/item\n", + " gold: 104 items | price: 144.91 credits/item\n", + " diamond: 90 items | price: 71.19 credits/item\n", + "\n", + "Villager 67:\n", + " wood: 3516 items | price: 1.05 credits/item\n", + " stone: 1322 items | price: 10.92 credits/item\n", + " iron: 711 items | price: 28.50 credits/item\n", + " gold: 447 items | price: 24.24 credits/item\n", + " diamond: 68 items | price: 332.71 credits/item\n", + "\n", + "Villager 68:\n", + " wood: 41 items | price: 17.21 credits/item\n", + " stone: 1631 items | price: 5.73 credits/item\n", + " iron: 280 items | price: 61.81 credits/item\n", + " gold: 470 items | price: 17.13 credits/item\n", + " diamond: 57 items | price: 378.99 credits/item\n", + "\n", + "Villager 69:\n", + " wood: 371 items | price: 18.54 credits/item\n", + " stone: 1322 items | price: 9.00 credits/item\n", + " iron: 766 items | price: 22.61 credits/item\n", + " gold: 237 items | price: 82.17 credits/item\n", + " diamond: 18 items | price: 659.01 credits/item\n", + "\n", + "Villager 70:\n", + " wood: 1208 items | price: 12.70 credits/item\n", + " stone: 15 items | price: 29.04 credits/item\n", + " iron: 194 items | price: 57.48 credits/item\n", + " gold: 460 items | price: 20.03 credits/item\n", + " diamond: 28 items | price: 583.66 credits/item\n", + "\n", + "Villager 71:\n", + " wood: 2621 items | price: 4.68 credits/item\n", + " stone: 1678 items | price: 5.87 credits/item\n", + " iron: 536 items | price: 36.02 credits/item\n", + " gold: 414 items | price: 35.64 credits/item\n", + " diamond: 13 items | price: 868.54 credits/item\n", + "\n", + "Villager 72:\n", + " wood: 8 items | price: 19.57 credits/item\n", + " stone: 1541 items | price: 7.36 credits/item\n", + " iron: 695 items | price: 26.53 credits/item\n", + " gold: 111 items | price: 130.18 credits/item\n", + " diamond: 90 items | price: 88.48 credits/item\n", + "\n", + "Villager 73:\n", + " wood: 846 items | price: 15.90 credits/item\n", + " stone: 1507 items | price: 7.77 credits/item\n", + " iron: 814 items | price: 14.29 credits/item\n", + " gold: 165 items | price: 104.64 credits/item\n", + " diamond: 81 items | price: 178.74 credits/item\n", + "\n", + "Villager 74:\n", + " wood: 2081 items | price: 7.14 credits/item\n", + " stone: 1752 items | price: 4.29 credits/item\n", + " iron: 592 items | price: 34.86 credits/item\n", + " gold: 216 items | price: 97.98 credits/item\n", + " diamond: 11 items | price: 749.19 credits/item\n", + "\n", + "Villager 75:\n", + " wood: 2803 items | price: 4.75 credits/item\n", + " stone: 367 items | price: 28.25 credits/item\n", + " iron: 102 items | price: 72.00 credits/item\n", + " gold: 354 items | price: 56.81 credits/item\n", + " diamond: 9 items | price: 771.19 credits/item\n", + "\n", + "Villager 76:\n", + " wood: 2337 items | price: 6.64 credits/item\n", + " stone: 660 items | price: 17.55 credits/item\n", + " iron: 123 items | price: 62.28 credits/item\n", + " gold: 277 items | price: 84.66 credits/item\n", + " diamond: 83 items | price: 117.88 credits/item\n", + "\n", + "Villager 77:\n", + " wood: 412 items | price: 17.61 credits/item\n", + " stone: 2038 items | price: 1.81 credits/item\n", + " iron: 411 items | price: 42.53 credits/item\n", + " gold: 96 items | price: 128.27 credits/item\n", + " diamond: 21 items | price: 559.99 credits/item\n", + "\n", + "Villager 78:\n", + " wood: 841 items | price: 16.47 credits/item\n", + " stone: 1691 items | price: 4.79 credits/item\n", + " iron: 999 items | price: 5.97 credits/item\n", + " gold: 467 items | price: 20.70 credits/item\n", + " diamond: 43 items | price: 503.12 credits/item\n", + "\n", + "Villager 79:\n", + " wood: 891 items | price: 16.56 credits/item\n", + " stone: 932 items | price: 16.47 credits/item\n", + " iron: 775 items | price: 21.69 credits/item\n", + " gold: 242 items | price: 81.64 credits/item\n", + " diamond: 95 items | price: 46.81 credits/item\n", + "\n", + "Villager 80:\n", + " wood: 358 items | price: 18.14 credits/item\n", + " stone: 505 items | price: 22.87 credits/item\n", + " iron: 583 items | price: 28.87 credits/item\n", + " gold: 495 items | price: 10.02 credits/item\n", + " diamond: 33 items | price: 474.07 credits/item\n", + "\n", + "Villager 81:\n", + " wood: 1562 items | price: 9.96 credits/item\n", + " stone: 1341 items | price: 9.52 credits/item\n", + " iron: 438 items | price: 44.66 credits/item\n", + " gold: 477 items | price: 13.13 credits/item\n", + " diamond: 4 items | price: 874.71 credits/item\n", + "\n", + "Villager 82:\n", + " wood: 2315 items | price: 6.95 credits/item\n", + " stone: 697 items | price: 22.62 credits/item\n", + " iron: 126 items | price: 67.44 credits/item\n", + " gold: 148 items | price: 92.13 credits/item\n", + " diamond: 16 items | price: 669.38 credits/item\n", + "\n", + "Villager 83:\n", + " wood: 159 items | price: 18.73 credits/item\n", + " stone: 1362 items | price: 9.01 credits/item\n", + " iron: 628 items | price: 30.00 credits/item\n", + " gold: 432 items | price: 32.72 credits/item\n", + " diamond: 65 items | price: 289.42 credits/item\n", + "\n", + "Villager 84:\n", + " wood: 2148 items | price: 8.20 credits/item\n", + " stone: 571 items | price: 23.83 credits/item\n", + " iron: 369 items | price: 56.52 credits/item\n", + " gold: 434 items | price: 30.72 credits/item\n", + " diamond: 86 items | price: 144.30 credits/item\n", + "\n", + "Villager 85:\n", + " wood: 3539 items | price: 0.89 credits/item\n", + " stone: 175 items | price: 35.70 credits/item\n", + " iron: 1021 items | price: 4.86 credits/item\n", + " gold: 470 items | price: 18.93 credits/item\n", + " diamond: 23 items | price: 653.07 credits/item\n", + "\n", + "Villager 86:\n", + " wood: 180 items | price: 16.87 credits/item\n", + " stone: 1911 items | price: 2.16 credits/item\n", + " iron: 788 items | price: 20.92 credits/item\n", + " gold: 442 items | price: 25.97 credits/item\n", + " diamond: 89 items | price: 86.48 credits/item\n", + "\n", + "Villager 87:\n", + " wood: 864 items | price: 13.20 credits/item\n", + " stone: 908 items | price: 16.25 credits/item\n", + " iron: 1058 items | price: 3.17 credits/item\n", + " gold: 198 items | price: 99.68 credits/item\n", + " diamond: 91 items | price: 71.50 credits/item\n", + "\n", + "Villager 88:\n", + " wood: 2880 items | price: 3.78 credits/item\n", + " stone: 1437 items | price: 9.34 credits/item\n", + " iron: 640 items | price: 37.22 credits/item\n", + " gold: 364 items | price: 50.78 credits/item\n", + " diamond: 60 items | price: 307.33 credits/item\n", + "\n", + "Villager 89:\n", + " wood: 1977 items | price: 8.64 credits/item\n", + " stone: 219 items | price: 30.33 credits/item\n", + " iron: 282 items | price: 50.53 credits/item\n", + " gold: 307 items | price: 56.16 credits/item\n", + " diamond: 25 items | price: 628.43 credits/item\n", + "\n", + "Villager 90:\n", + " wood: 2919 items | price: 3.37 credits/item\n", + " stone: 1727 items | price: 4.87 credits/item\n", + " iron: 733 items | price: 24.47 credits/item\n", + " gold: 270 items | price: 67.85 credits/item\n", + " diamond: 57 items | price: 385.00 credits/item\n", + "\n", + "Villager 91:\n", + " wood: 2051 items | price: 9.95 credits/item\n", + " stone: 1878 items | price: 2.45 credits/item\n", + " iron: 0 items | price: 82.40 credits/item\n", + " gold: 324 items | price: 56.49 credits/item\n", + " diamond: 37 items | price: 541.98 credits/item\n", + "\n", + "Villager 92:\n", + " wood: 3128 items | price: 1.96 credits/item\n", + " stone: 878 items | price: 18.91 credits/item\n", + " iron: 0 items | price: 76.19 credits/item\n", + " gold: 0 items | price: 154.45 credits/item\n", + " diamond: 0 items | price: 889.01 credits/item\n", + "\n", + "Villager 93:\n", + " wood: 564 items | price: 17.13 credits/item\n", + " stone: 1303 items | price: 11.55 credits/item\n", + " iron: 0 items | price: 69.56 credits/item\n", + " gold: 0 items | price: 147.29 credits/item\n", + " diamond: 0 items | price: 1021.03 credits/item\n", + "\n", + "Villager 94:\n", + " wood: 2149 items | price: 6.51 credits/item\n", + " stone: 796 items | price: 17.16 credits/item\n", + " iron: 0 items | price: 83.58 credits/item\n", + " gold: 0 items | price: 142.79 credits/item\n", + " diamond: 0 items | price: 821.56 credits/item\n", + "\n", + "Villager 95:\n", + " wood: 3520 items | price: 0.89 credits/item\n", + " stone: 1334 items | price: 9.20 credits/item\n", + " iron: 0 items | price: 72.00 credits/item\n", + " gold: 0 items | price: 140.27 credits/item\n", + " diamond: 0 items | price: 998.97 credits/item\n", + "\n", + "Villager 96:\n", + " wood: 2849 items | price: 3.12 credits/item\n", + " stone: 1868 items | price: 2.96 credits/item\n", + " iron: 0 items | price: 76.53 credits/item\n", + " gold: 0 items | price: 144.85 credits/item\n", + " diamond: 0 items | price: 966.52 credits/item\n", + "\n", + "Villager 97:\n", + " wood: 1417 items | price: 9.95 credits/item\n", + " stone: 523 items | price: 27.65 credits/item\n", + " iron: 0 items | price: 72.93 credits/item\n", + " gold: 0 items | price: 140.56 credits/item\n", + " diamond: 0 items | price: 751.34 credits/item\n", + "\n", + "Villager 98:\n", + " wood: 294 items | price: 19.31 credits/item\n", + " stone: 425 items | price: 23.97 credits/item\n", + " iron: 0 items | price: 78.83 credits/item\n", + " gold: 0 items | price: 156.86 credits/item\n", + " diamond: 0 items | price: 705.38 credits/item\n", + "\n", + "Villager 99:\n", + " wood: 1912 items | price: 0.00 credits/item\n", + " stone: 0 items | price: 0.00 credits/item\n", + " iron: 0 items | price: 0.00 credits/item\n", + " gold: 0 items | price: 0.00 credits/item\n", + " diamond: 0 items | price: 0.00 credits/item\n", + "\n" + ] + } + ], + "source": [ + "#\n", + "\n", + "class Actor:\n", + " def __init__(self, name:str):\n", + " self.name = name\n", + " self.wood_quantity = np.random.randint(100,200)\n", + " self.stone_quantity = np.random.randint(50,150)\n", + " self.iron_quantity = np.random.randint(25,75)\n", + " self.gold_quantity = np.random.randint(10,20)\n", + " self.diamond_quantity = np.random.randint(0,5)\n", + "\n", + "def get_price(quantity, average_quantity, average_price):\n", + " price = average_price * (1 - (quantity - average_quantity) / average_quantity)\n", + " price = max(0.1 * average_price, price)\n", + " price = min(10 * average_price, price)\n", + " price = np.random.normal(price, 0.1*price)\n", + " return price\n", + "\n", + "class Villager(Actor):\n", + " def __init__(self, name:str):\n", + " super().__init__(name)\n", + " self.wood_price = 0\n", + " self.stone_price = 0\n", + " self.iron_price = 0\n", + " self.gold_price = 0\n", + " self.diamond_price = 0\n", + "\n", + "villagers = [Villager(\"Villager \"+str(i)) for i in range(100)]\n", + "\n", + "remaining_wood = wood_total_quantity\n", + "remaining_stone = stone_total_quantity\n", + "remaining_iron = iron_total_quantity\n", + "remaining_gold = gold_total_quantity\n", + "remaining_diamond = diamond_total_quantity\n", + "\n", + "for villager in villagers[:-1]:\n", + " # * \n", + " villager.wood_quantity = min(int(np.random.rand()*2 * wood_total_quantity / len(villagers)), remaining_wood)\n", + " villager.stone_quantity = min(int(np.random.rand()*2 * stone_total_quantity / len(villagers)), remaining_stone)\n", + " villager.iron_quantity = min(int(np.random.rand()*2 * iron_total_quantity / len(villagers)), remaining_iron)\n", + " villager.gold_quantity = min(int(np.random.rand()*2 * gold_total_quantity / len(villagers)), remaining_gold)\n", + " villager.diamond_quantity = min(int(np.random.rand()*2 * diamond_total_quantity / len(villagers)), remaining_diamond)\n", + " remaining_wood -= villager.wood_quantity\n", + " remaining_stone -= villager.stone_quantity\n", + " remaining_iron -= villager.iron_quantity\n", + " remaining_gold -= villager.gold_quantity\n", + " remaining_diamond -= villager.diamond_quantity\n", + " villager.wood_price = get_price(villager.wood_quantity, wood_total_quantity / len(villagers), wood_price)\n", + " villager.stone_price = get_price(villager.stone_quantity, stone_total_quantity / len(villagers), stone_price)\n", + " villager.iron_price = get_price(villager.iron_quantity, iron_total_quantity / len(villagers), iron_price)\n", + " villager.gold_price = get_price(villager.gold_quantity, gold_total_quantity / len(villagers), gold_price)\n", + " villager.diamond_price = get_price(villager.diamond_quantity, diamond_total_quantity / len(villagers), diamond_price)\n", + "\n", + " print(f\"\"\"\\\n", + "{villager.name}:\n", + " wood: {villager.wood_quantity} items | price: {villager.wood_price:.2f} credits/item\n", + " stone: {villager.stone_quantity} items | price: {villager.stone_price:.2f} credits/item\n", + " iron: {villager.iron_quantity} items | price: {villager.iron_price:.2f} credits/item\n", + " gold: {villager.gold_quantity} items | price: {villager.gold_price:.2f} credits/item\n", + " diamond: {villager.diamond_quantity} items | price: {villager.diamond_price:.2f} credits/item\n", + "\"\"\")\n", + " \n", + "villagers[-1].wood_quantity = remaining_wood\n", + "villagers[-1].stone_quantity = remaining_stone\n", + "villagers[-1].iron_quantity = remaining_iron\n", + "villagers[-1].gold_quantity = remaining_gold\n", + "villagers[-1].diamond_quantity = remaining_diamond\n", + "\n", + "print(f\"\"\"\\\n", + "{villagers[-1].name}:\n", + " wood: {villagers[-1].wood_quantity} items | price: {villagers[-1].wood_price:.2f} credits/item\n", + " stone: {villagers[-1].stone_quantity} items | price: {villagers[-1].stone_price:.2f} credits/item\n", + " iron: {villagers[-1].iron_quantity} items | price: {villagers[-1].iron_price:.2f} credits/item\n", + " gold: {villagers[-1].gold_quantity} items | price: {villagers[-1].gold_price:.2f} credits/item\n", + " diamond: {villagers[-1].diamond_quantity} items | price: {villagers[-1].diamond_price:.2f} credits/item\n", + "\"\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 390, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Xz/4+PhIrx/nuiNHjpS1jo0aNQoODg7YsWOHlGZYP/11n3vuOaSlpeHixYuy6zk5OWHYsGHFlt0cbt26hTNnzmDo0KHw8vKS0ps0aYLnn39eVge9t956S/b6ueeeQ3JystTVSVSWMSAiKmdWrVqFPXv24KeffkL37t1x584dODk5ScevXLkCIQRmzZoFHx8f2WPOnDkAgKSkJADA+++/j/v376Nu3bpo3LgxJk+ejD///FO6lpOTExYsWIDffvsNarUa7du3x8KFC5GQkCDluX79OgCgXr16snIqlUrUrFlTOv44AgMDZa/146QaNWpU6Dmm1N+Uez/OdevUqSN77erqCn9/f9n4q/Pnz+PFF1+Eu7s73Nzc4OPjg1dffRUAkJKSIju/SpUqpTawu7DPFQAaNGiAO3fuQKvVytKrV68ue63vxi0smCYqSziGiKicad26tTTLrE+fPnj22WfxyiuvIC4uDq6ursjNzQUATJo0CWFhYUavUbt2bQBA+/btcfXqVWzduhW7d+/Gl19+iU8//RRr167FG2+8AQAYP348evbsiS1btmDXrl2YNWsWwsPDsX//fjRv3tyksutbcfLLyckxOtXbsPWkpEypf1Hy39tc1zV0//59dOjQAW5ubnj//fdRq1YtVKhQAadOncLUqVOlexZWprKmsOn6gqu7UDnAgIioHLO3t0d4eDg6deqElStXYtq0aahZsyYAwNHREaGhocVew8vLC8OGDcOwYcOg0WjQvn17zJ07VwqIAKBWrVqYOHEiJk6ciMuXL6NZs2ZYsmQJvvnmG9SoUQMAEBcXJ90bADIzMxEfHy8rg6enZ4GZZ4CuNcLw3MLUqlULABATE1No3Uytf0k9znUvX76MTp06Sa81Gg1u3bqF7t27A9DNAktOTsamTZvQvn17KV98fLxJZSss0HySvIafa34XL15EpUqVoFKpSnxforKOXWZE5VzHjh3RunVrLF26FOnp6fD19UXHjh3x2Wef4datWwXy3759W3qenJwsO+bq6oratWsjIyMDgG6dm/T0dFmeWrVqoWLFilKe0NBQKJVKLF++XNYS8NVXXyElJQU9evSQnXv06FFkZmZKadu3b8fNmzdLVNdnnnkGgYGBWLp0aYHASn9vU+pvise57ueff46srCzp9Zo1a5CdnY1u3boByGtRMXzfMjMzsXr1apPK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jiXLaVWWXoeIaxARERGZnynf3yatVC2EQO3atXH+/HnUqVMH1apVe6KCEhEREZUFJnWZ2dnZoU6dOkhOTrZUeYiIiIhKncljiObPn4/JkycjxtiAFyIiIqJyyOS9zDw9PZGWlobs7GwolUo4OzvLjt+9e9esBSwLLD2GSL/GUFKSbiFGQDfAWr9Io0bDWWhERESmstgYIgBYunTp45aLCqEPdnx989J8fKxTFiIiIltkckA0ZMgQS5SD8jFcmdrwOVuKiIiIzM/kgGjHjh2wt7dHWFiYLH337t3IyclBt27dzFY4W2MY7Oi7zgD5Xmacgk9ERGR+j7W5a05OToH03NxcTJs2zSyFIiIiIipNJgdEly9fRlBQUIH0+vXr48qVK2YplC3SanWDqo1N3ouJARITuVo1ERGRpZjcZebu7o5r164hICBAln7lyhWoOMDlsRW1eat+thm7y4iIiCzD5Bai3r17Y/z48bh69aqUduXKFUycOBG9evUya+GIiIiISoPJAdHChQuhUqlQv359BAYGIjAwEA0aNIC3tzcWL15siTLaBHaHERERWc9jdZkdOXIEe/bswdmzZ+Hs7IwmTZqgffv2liifzWBvIxERkfWYvFK1LbL0StV63PWeiIjIfEz5/i5Rl9mGDRtKfPObN2/i8OHDJc5PREREZG0lCojWrFmDBg0aYOHChYiNjS1wPCUlBTt27MArr7yCZ555BsnJyWYvKBEREZGllGgMUVRUFLZt24YVK1Zg+vTpUKlUUKvVqFChAu7du4eEhARUqlQJQ4cORUxMDNSGSysTERERlXEmjyG6c+cODh06hOvXr+Phw4eoVKkSmjdvjubNm8POzuRJa+VCaY0hMrbr/bVreZu+cuA1ERFRyVl0t/tKlSqhT58+j1s2KoKxXe99fRkIERERWdrT2aRDREREZAIGRERERGTzGBCVca6ueWOLiIiIyDLKVUA0f/58KBQKjB8/XkpLT0/H6NGj4e3tDVdXV/Tr1w+JiYmy827cuIEePXrAxcUFvr6+mDx5MrKzs0u59MXTavMextKJiIjIMh47IMrMzERcXFypBRbHjx/HZ599hiZNmsjS3333Xfzyyy/48ccfERUVhX///Rd9+/aVjufk5KBHjx7IzMzEkSNHsH79ekRERGD27NmlUm5TuLrqHvlXLVCr2VJERERkSSYHRGlp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for villager in villagers:\n", + " plt.scatter(villager.wood_quantity, villager.wood_price, color=\"brown\", marker=\"+\")\n", + " plt.scatter(villager.stone_quantity, villager.stone_price, color=\"grey\", marker=\"+\")\n", + " plt.scatter(villager.iron_quantity, villager.iron_price, color=\"black\", marker=\"+\")\n", + " plt.scatter(villager.gold_quantity, villager.gold_price, color=\"yellow\", marker=\"+\")\n", + " plt.scatter(villager.diamond_quantity, villager.diamond_price, color=\"blue\", marker=\"+\")\n", + "\n", + "plt.title(\"Ressource repartition\")\n", + "plt.xlabel(\"Quantity (number of items)\")\n", + "plt.ylabel(\"Price (credits/item)\")\n", + "plt.legend([\"wood\",\"stone\",\"iron\",\"gold\",\"diamond\"])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 439, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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9fLLLysnJ6fLh+UHe79299oyUMJyxOWaa67RsGHD2jzdXFNTI6fT2e4+TqczqPKDTUFBgfbs2aO33npLEyZMCGrf6Oho3XLLLfroo4/6qXb9Iy4uTtdff32H9Ta9Tz/99FMdOHBAf/M3fxPUfqb2Z2u/BNNnPTnXB5PW0PLpp5+qpKSk09GW9nR1DgxW1157ra655poO6216v0rS73//e1VUVAR9/kqDq187urY4nU41Njaqrq4uoHxX19nWMt3dpz1hGVxiYmKUlpam0tJS/7qWlhaVlpYG/M/061wuV0B5SSopKemw/GBhWZYKCgq0e/duHTx4UCkpKUEfo7m5WadOndL48eP7oYb959KlS/r44487rLepfdpq69atSkhIUFZWVlD7mdqfKSkpcjqdAX3m8/l07NixDvusJ+f6YNEaWs6ePasDBw5o7NixQR+jq3NgsPrss8/0xRdfdFhvk/u11UsvvaS0tDRNnz496H0HQ792dW1JS0tTdHR0QB9VVFSoqqqqwz7qyTneUeXC0s6dO63Y2Fhr27Zt1pkzZ6ylS5dacXFxlsfjsSzLshYvXmytWrXKX/7w4cNWVFSU9dOf/tT64IMPrLVr11rR0dHWqVOnQtWEbsnLy7Psdrt16NAh6/z58/7lyy+/9Je5uq0/+clPrP3791sff/yxVV5ebi1atMgaPny4dfr06VA0odseeeQR69ChQ1ZlZaV1+PBhKyMjw7rmmmus2tpay7LCp08t66s3KJKTk62VK1e22WZyf168eNF69913rXfffdeSZP3sZz+z3n33Xf+bNOvXr7fi4uKs119/3fqP//gPa/78+VZKSor1xz/+0X+MWbNmWc8995z/c1fneqh01tbGxkbru9/9rjVhwgTrvffeCzh3Gxoa/Me4uq1dnQOh0llbL168aD366KOW2+22KisrrQMHDli33nqrdd1111n19fX+Y4RDv7byer3WyJEjrc2bN7d7DBP6tTvXlh/+8IdWcnKydfDgQeudd96xXC6X5XK5Ao5zww03WL/97W/9n7tzjnclbIOLZVnWc889ZyUnJ1sxMTHW7bffbh09etS/7c///M+t3NzcgPKvvvqqdf3111sxMTHWjTfeaO3du3eAaxw8Se0uW7du9Ze5uq3Lly/3/704HA7r7rvvtk6ePDnwlQ/S/fffb40fP96KiYmx/uRP/sS6//77rY8++si/PVz61LIsa//+/ZYkq6Kios02k/vzrbfeavffa2t7WlparMcff9xyOBxWbGysNXv27DZ/BxMnTrTWrl0bsK6zcz1UOmtrZWVlh+fuW2+95T/G1W3t6hwIlc7a+uWXX1pz5syxxo0bZ0VHR1sTJ060Hn744TYBJBz6tdWLL75ojRgxwqqrq2v3GCb0a3euLX/84x+tv/u7v7O+8Y1vWCNHjrT+6q/+yjp//nyb43x9n+6c412J+L8DAwAADHph+YwLAAAITwQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABAADGILgAAABjEFwAAIAxCC4AAMAYBBcAAGAMggsAADAGwQUAABjjfwFu7wVtRp7yhwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "m = 10\n", + "s = 5\n", + "\n", + "def random_normal(m,s):\n", + " x = m\n", + " delta = s\n", + " for _ in range(2):\n", + " dx = (np.random.rand()*2-1) * delta\n", + " new_x = x + dx\n", + "\n", + " if np.random.rand() < gauss(new_x, m, s) / gauss(x, m, s):\n", + " x = new_x\n", + "\n", + " return x\n", + "\n", + "hist = []\n", + "for _ in range(10000):\n", + " hist.append(random_normal(m,s))\n", + "\n", + "hist = np.array(hist)\n", + "plt.hist(hist, bins=50)\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +}