From a70503303b4dc9ba94f1da55c2081450f8cefa3a Mon Sep 17 00:00:00 2001 From: xolatile Date: Sun, 15 Oct 2023 16:17:17 -0400 Subject: [PATCH] Commiting... --- core.adb | 7 +++++ core.ads | 5 ++- item.adb | 32 +++++++++++-------- item.ads | 105 +++++++++++++++++++++++++++++++-------------------------------- main.adb | 2 +- 5 files changed, 82 insertions(+), 69 deletions(-) diff --git a/core.adb b/core.adb index f7bf0a5..7d89fad 100644 --- a/core.adb +++ b/core.adb @@ -11,6 +11,13 @@ with ada.text_io; package body core is ------------------------------------------------------------------------------------------ +r : natural := 1; + function randomize (minimum : natural; + maximum : natural) return natural is + begin + r := r + 1; + return minimum + (r mod maximum); + end randomize; procedure screen_delete is begin diff --git a/core.ads b/core.ads index 7f37a4d..e406d26 100644 --- a/core.ads +++ b/core.ads @@ -68,8 +68,8 @@ package core is type variable_type is tagged record - x : integer := 0; -- Global X coordinate. y : integer := 0; -- Global Y coordinate. + x : integer := 0; -- Global X coordinate. end record; ------------------------------------------------------------------------------------------ @@ -118,6 +118,9 @@ package core is ------------------------------------------------------------------------------------------ + function randomize (minimum : natural; + maximum : natural) return natural; + procedure screen_delete; procedure screen_offset; procedure screen_hide_cursor; diff --git a/item.adb b/item.adb index ed6ad4e..fc4b4a8 100644 --- a/item.adb +++ b/item.adb @@ -12,26 +12,32 @@ package body item is ------------------------------------------------------------------------------------------ - procedure create (this : list; - y : map.height; - x : map.width) is + procedure generate is + y : natural := 0; + x : natural := 0; + identifier : natural := 0; begin - map.variable_data (0) := (1, 1, core.item, list'pos (this)); - end create; + for this in map.mark + loop + y := core.randomize (0, natural (map.height'last)); + x := core.randomize (0, natural (map.width'last)); + identifier := core.randomize (0, natural (list'size)); + map.variable_data (this) := (integer (y), integer (x), core.item, identifier); + end loop; + end generate; procedure render is symbol : character := ' '; colour : character := core.colour.white; effect : character := core.effect.normal; begin - symbol := constant_data (list'val (map.variable_data (0).identifier)).symbol; - colour := constant_data (list'val (map.variable_data (0).identifier)).colour; - effect := constant_data (list'val (map.variable_data (0).identifier)).effect; - core.render_character (symbol, colour, effect, core.screen_height (map.variable_data (0).y), core.screen_width (map.variable_data (0).x)); - --~for this in mark - --~loop - --~core.render_character ('@', core.colour.cyan, core.effect.bold, core.screen_height (map.variable_data (0)), core.screen_width (map.variable_data (0))); - --~end loop; + for this in map.mark + loop + symbol := constant_data (list'val (map.variable_data (this).identifier)).symbol; + colour := constant_data (list'val (map.variable_data (this).identifier)).colour; + effect := constant_data (list'val (map.variable_data (this).identifier)).effect; + core.render_character (symbol, colour, effect, core.screen_height (map.variable_data (this).y), core.screen_width (map.variable_data (this).x)); + end loop; end render; ------------------------------------------------------------------------------------------ diff --git a/item.ads b/item.ads index 51108ed..aae3ffe 100644 --- a/item.ads +++ b/item.ads @@ -43,66 +43,63 @@ package item is ------------------------------------------------------------------------------------------ constant_data : constant constant_list := ( - (core.item, "Wood ", '+', core.colour.yellow, core.effect.normal, 2, 2), - (core.item, "Bark ", '+', core.colour.yellow, core.effect.normal, 1, 2), - (core.item, "Flax ", '+', core.colour.yellow, core.effect.normal, 3, 1), - (core.item, "Plank ", '+', core.colour.yellow, core.effect.normal, 2, 2), - (core.item, "Stick ", '+', core.colour.yellow, core.effect.normal, 2, 2), - (core.item, "Braces ", '+', core.colour.yellow, core.effect.normal, 2, 1), - (core.item, "Nails ", '+', core.colour.yellow, core.effect.normal, 1, 1), - (core.item, "Linen ", '+', core.colour.yellow, core.effect.normal, 23, 1), - (core.item, "Chamomile ", '+', core.colour.yellow, core.effect.normal, 3, 1), - (core.item, "Mint ", '+', core.colour.yellow, core.effect.normal, 5, 1), - (core.item, "Wax ", '+', core.colour.yellow, core.effect.normal, 7, 1), - (core.item, "Salt ", '+', core.colour.yellow, core.effect.normal, 13, 1), - (core.item, "Sugar ", '+', core.colour.yellow, core.effect.normal, 17, 1), - (core.item, "Pepper ", '+', core.colour.yellow, core.effect.normal, 11, 1), - (core.item, "Cinnamon ", '+', core.colour.yellow, core.effect.normal, 23, 1), - (core.item, "Yeast ", '+', core.colour.yellow, core.effect.normal, 5, 1), - (core.item, "Skull ", '+', core.colour.yellow, core.effect.normal, 2, 1), - (core.item, "Bone ", '+', core.colour.yellow, core.effect.normal, 1, 1), - (core.item, "Intestines ", '+', core.colour.yellow, core.effect.normal, 1, 1), - (core.item, "Fur ", '+', core.colour.yellow, core.effect.normal, 7, 2), - (core.item, "Leather ", '+', core.colour.yellow, core.effect.normal, 3, 1), - (core.item, "Fat ", '+', core.colour.yellow, core.effect.normal, 1, 1), - (core.item, "Horn ", '+', core.colour.yellow, core.effect.normal, 2, 1), - (core.item, "Tusk ", '+', core.colour.yellow, core.effect.normal, 3, 5), - (core.item, "Copper Ore ", '+', core.colour.yellow, core.effect.normal, 5, 7), - (core.item, "Iron Ore ", '+', core.colour.yellow, core.effect.normal, 7, 11), - (core.item, "Silver Ore ", '+', core.colour.yellow, core.effect.normal, 17, 7), - (core.item, "Gold Ore ", '+', core.colour.yellow, core.effect.normal, 23, 7), - (core.item, "Coal Ore ", '+', core.colour.yellow, core.effect.normal, 2, 7), - (core.item, "Tin Ore ", '+', core.colour.yellow, core.effect.normal, 13, 7), - (core.item, "Zinc Ore ", '+', core.colour.yellow, core.effect.normal, 13, 7), - (core.item, "Lead Ore ", '+', core.colour.yellow, core.effect.normal, 11, 13), - (core.item, "Copper ", '+', core.colour.yellow, core.effect.normal, 17, 5), - (core.item, "Iron ", '+', core.colour.yellow, core.effect.normal, 19, 7), - (core.item, "Silver ", '+', core.colour.yellow, core.effect.normal, 23, 5), - (core.item, "Gold ", '+', core.colour.yellow, core.effect.normal, 29, 5), - (core.item, "Coal ", '+', core.colour.yellow, core.effect.normal, 19, 5), - (core.item, "Tin ", '+', core.colour.yellow, core.effect.normal, 11, 5), - (core.item, "Zinc ", '+', core.colour.yellow, core.effect.normal, 13, 5), - (core.item, "Lead ", '+', core.colour.yellow, core.effect.normal, 47, 7), - (core.item, "Bronze ", '+', core.colour.yellow, core.effect.normal, 61, 5), - (core.item, "Brass ", '+', core.colour.yellow, core.effect.normal, 67, 5), - (core.item, "Steel ", '+', core.colour.yellow, core.effect.normal, 71, 7), - (core.item, "Mercury ", '+', core.colour.yellow, core.effect.normal, 97, 11), - (core.item, "Oil ", '+', core.colour.yellow, core.effect.normal, 5, 1), - (core.item, "Ink ", '+', core.colour.yellow, core.effect.normal, 13, 1), - (core.item, "Venom ", '+', core.colour.yellow, core.effect.normal, 11, 1), - (core.item, "Silk ", '+', core.colour.yellow, core.effect.normal, 13, 1), - (core.item, "Papers ", '+', core.colour.yellow, core.effect.normal, 1, 1), - (core.item, "Paperweight ", '+', core.colour.yellow, core.effect.normal, 2, 1) + (core.item, "Wood ", '=', core.colour.pink, core.effect.normal, 2, 2), + (core.item, "Bark ", '+', core.colour.pink, core.effect.normal, 1, 2), + (core.item, "Flax ", '+', core.colour.pink, core.effect.normal, 3, 1), + (core.item, "Plank ", '+', core.colour.pink, core.effect.normal, 2, 2), + (core.item, "Stick ", '+', core.colour.pink, core.effect.normal, 2, 2), + (core.item, "Braces ", '+', core.colour.pink, core.effect.normal, 2, 1), + (core.item, "Nails ", '+', core.colour.pink, core.effect.normal, 1, 1), + (core.item, "Linen ", '+', core.colour.pink, core.effect.normal, 23, 1), + (core.item, "Chamomile ", '+', core.colour.pink, core.effect.normal, 3, 1), + (core.item, "Mint ", '+', core.colour.pink, core.effect.normal, 5, 1), + (core.item, "Wax ", '+', core.colour.pink, core.effect.normal, 7, 1), + (core.item, "Salt ", '+', core.colour.pink, core.effect.normal, 13, 1), + (core.item, "Sugar ", '+', core.colour.pink, core.effect.normal, 17, 1), + (core.item, "Pepper ", '+', core.colour.pink, core.effect.normal, 11, 1), + (core.item, "Cinnamon ", '+', core.colour.pink, core.effect.normal, 23, 1), + (core.item, "Yeast ", '+', core.colour.pink, core.effect.normal, 5, 1), + (core.item, "Skull ", '+', core.colour.pink, core.effect.normal, 2, 1), + (core.item, "Bone ", '+', core.colour.pink, core.effect.normal, 1, 1), + (core.item, "Intestines ", '+', core.colour.pink, core.effect.normal, 1, 1), + (core.item, "Fur ", '+', core.colour.pink, core.effect.normal, 7, 2), + (core.item, "Leather ", '+', core.colour.pink, core.effect.normal, 3, 1), + (core.item, "Fat ", '+', core.colour.pink, core.effect.normal, 1, 1), + (core.item, "Horn ", '+', core.colour.pink, core.effect.normal, 2, 1), + (core.item, "Tusk ", '+', core.colour.pink, core.effect.normal, 3, 5), + (core.item, "Copper Ore ", '+', core.colour.pink, core.effect.normal, 5, 7), + (core.item, "Iron Ore ", '+', core.colour.pink, core.effect.normal, 7, 11), + (core.item, "Silver Ore ", '+', core.colour.pink, core.effect.normal, 17, 7), + (core.item, "Gold Ore ", '+', core.colour.pink, core.effect.normal, 23, 7), + (core.item, "Coal Ore ", '+', core.colour.pink, core.effect.normal, 2, 7), + (core.item, "Tin Ore ", '+', core.colour.pink, core.effect.normal, 13, 7), + (core.item, "Zinc Ore ", '+', core.colour.pink, core.effect.normal, 13, 7), + (core.item, "Lead Ore ", '+', core.colour.pink, core.effect.normal, 11, 13), + (core.item, "Copper ", '+', core.colour.pink, core.effect.normal, 17, 5), + (core.item, "Iron ", '+', core.colour.pink, core.effect.normal, 19, 7), + (core.item, "Silver ", '+', core.colour.pink, core.effect.normal, 23, 5), + (core.item, "Gold ", '+', core.colour.pink, core.effect.normal, 29, 5), + (core.item, "Coal ", '+', core.colour.pink, core.effect.normal, 19, 5), + (core.item, "Tin ", '+', core.colour.pink, core.effect.normal, 11, 5), + (core.item, "Zinc ", '+', core.colour.pink, core.effect.normal, 13, 5), + (core.item, "Lead ", '+', core.colour.pink, core.effect.normal, 47, 7), + (core.item, "Bronze ", '+', core.colour.pink, core.effect.normal, 61, 5), + (core.item, "Brass ", '+', core.colour.pink, core.effect.normal, 67, 5), + (core.item, "Steel ", '+', core.colour.pink, core.effect.normal, 71, 7), + (core.item, "Mercury ", '+', core.colour.pink, core.effect.normal, 97, 11), + (core.item, "Oil ", '+', core.colour.pink, core.effect.normal, 5, 1), + (core.item, "Ink ", '+', core.colour.pink, core.effect.normal, 13, 1), + (core.item, "Venom ", '+', core.colour.pink, core.effect.normal, 11, 1), + (core.item, "Silk ", '+', core.colour.pink, core.effect.normal, 13, 1), + (core.item, "Papers ", '+', core.colour.pink, core.effect.normal, 1, 1), + (core.item, "Paperweight ", '+', core.colour.pink, core.effect.normal, 2, 1) ); variable_data : variable_list; ------------------------------------------------------------------------------------------ - procedure create (this : list; - y : map.height; - x : map.width); - + procedure generate; procedure render; ------------------------------------------------------------------------------------------ diff --git a/main.adb b/main.adb index 49dbf73..e37c69a 100644 --- a/main.adb +++ b/main.adb @@ -25,8 +25,8 @@ begin core.screen_hide_cursor; map.generate; + item.generate; - item.create (item.paperweight, 1, 1); weapon.create (weapon.iron_mace, 2, 2); ------------------------------------------------------------------------------------------