mirror of
https://github.com/SHOGGOTH-SECTOR/sica-fondt.git
synced 2026-08-01 16:40:24 +00:00
Delete soul-tarot.ads
This commit is contained in:
parent
e6204218c5
commit
c0f53b993d
@ -1,200 +0,0 @@
|
||||
-- Silicon Dawn Tarot encoding alphabet — 56-card identity system.
|
||||
-- Thoth/Golden-Dawn rooted; Silicon Dawn (Egypt Urnash) retitlings applied.
|
||||
--
|
||||
-- Alphabet breakdown:
|
||||
-- 31 Major Arcana (25 standard + 6 Silicon Dawn unique)
|
||||
-- 20 Court/99 (4 suits × 5 positions: 99, King, Queen, Chevalier, P)
|
||||
-- 5 (VOID) suit (Queen, King, Chevalier, Progeny, 0)
|
||||
-- ──────────────
|
||||
-- 56 total
|
||||
--
|
||||
-- Numbered minors (Ace–10) are in the deck but outside the encoding alphabet.
|
||||
with Mafiabot_Types; use Mafiabot_Types;
|
||||
|
||||
package Soul.Tarot
|
||||
with SPARK_Mode => On
|
||||
is
|
||||
|
||||
-- -----------------------------------------------------------------------
|
||||
-- Major Arcana — 31 cards
|
||||
|
||||
type Major_Arcana is (
|
||||
-- Standard 22 (0–XXI), Thoth-aligned titles
|
||||
The_Fool, -- 0
|
||||
The_Magician, -- I
|
||||
The_High_Priestess, -- II
|
||||
The_Empress, -- III
|
||||
The_Emperor, -- IV
|
||||
The_Hierophant, -- V
|
||||
The_Lovers, -- VI
|
||||
The_Chariot, -- VII
|
||||
Adjustment, -- VIII (Thoth: Adjustment = Justice)
|
||||
The_Hermit, -- IX
|
||||
Fortune, -- X (Thoth: Fortune = Wheel)
|
||||
Lust, -- XI (Thoth: Lust = Strength)
|
||||
The_Hanged_Man, -- XII
|
||||
Death, -- XIII
|
||||
Art, -- XIV (Thoth: Art = Temperance)
|
||||
The_Devil, -- XV
|
||||
The_Tower, -- XVI
|
||||
The_Star, -- XVII
|
||||
The_Moon, -- XVIII
|
||||
The_Sun, -- XIX
|
||||
The_Aeon, -- XX (Thoth: Aeon = Judgement)
|
||||
The_Universe, -- XXI (Thoth: Universe = World)
|
||||
-- Silicon Dawn additions — 9 unique cards
|
||||
SD_Maya, -- 8.5 (between VIII and IX)
|
||||
SD_History, -- SD unique
|
||||
SD_Virus, -- SD unique
|
||||
SD_Achievement, -- SD unique
|
||||
SD_Digital, -- SD unique
|
||||
SD_Vulture_Mother, -- SD retitling of Death position (kept as alias)
|
||||
SD_She_Is_Legend, -- SD retitling of Adjustment
|
||||
SD_Schrodinger, -- SD unique
|
||||
SD_Singularity -- SD unique
|
||||
);
|
||||
|
||||
-- -----------------------------------------------------------------------
|
||||
-- Standard suits — court tier per suit: 99 > King > Queen > Chevalier > P
|
||||
|
||||
type Suit is (Wands, Cups, Swords, Pentacles);
|
||||
|
||||
-- P slot is Princess or Prince, gendered OPPOSITE to the element's gender.
|
||||
-- (Silicon Dawn swapped mapping: Pentacles=Fire, Wands=Earth.)
|
||||
type Court_Rank is (Ninety_Nine, King, Queen, Chevalier, P);
|
||||
|
||||
-- -----------------------------------------------------------------------
|
||||
-- (VOID) suit — 5 cards: Queen > King > Chevalier > Progeny > Zero
|
||||
|
||||
type Void_Card is (Void_Queen, Void_King, Void_Chevalier, Void_Progeny,
|
||||
Void_Zero);
|
||||
|
||||
-- -----------------------------------------------------------------------
|
||||
-- Unified card discriminated record
|
||||
|
||||
type Card_Kind is (Major, Court, Void_Suit);
|
||||
|
||||
type Card (Kind : Card_Kind := Major) is record
|
||||
case Kind is
|
||||
when Major => Major_Value : Major_Arcana := The_Fool;
|
||||
when Court => Suit_Value : Suit := Wands;
|
||||
Rank_Value : Court_Rank := Ninety_Nine;
|
||||
when Void_Suit => Void_Value : Void_Card := Void_Zero;
|
||||
end case;
|
||||
end record;
|
||||
|
||||
-- -----------------------------------------------------------------------
|
||||
-- Full 56-card encoding alphabet
|
||||
|
||||
Total_Alphabet : constant := 56;
|
||||
type Alphabet_Index is range 1 .. Total_Alphabet;
|
||||
type Alphabet is array (Alphabet_Index) of Card;
|
||||
|
||||
-- The canonical alphabet (built at elaboration time)
|
||||
Full_Alphabet : constant Alphabet;
|
||||
|
||||
-- -----------------------------------------------------------------------
|
||||
-- Big-Three — immutable personality anchors (Sun / Moon / Ascendant)
|
||||
|
||||
type Big_Three is record
|
||||
Sun : Card;
|
||||
Moon : Card;
|
||||
Ascendant : Card;
|
||||
end record;
|
||||
|
||||
-- Validate that three cards are distinct (Big-3 must not repeat)
|
||||
function Big_Three_Distinct (B3 : Big_Three) return Boolean;
|
||||
|
||||
-- -----------------------------------------------------------------------
|
||||
-- Working deck — 56 slots; entries may be "absent" (flagged by a sentinel)
|
||||
|
||||
type Slot_State is (Present, Absent);
|
||||
|
||||
type Deck_Slot is record
|
||||
State : Slot_State := Absent;
|
||||
Value : Card;
|
||||
end record;
|
||||
|
||||
type Deck_Index is range 1 .. Total_Alphabet;
|
||||
type Deck is array (Deck_Index) of Deck_Slot;
|
||||
|
||||
-- Build a full, ordered deck from the canonical alphabet
|
||||
function Full_Deck return Deck;
|
||||
|
||||
-- Remove the three Big-3 cards from a deck (returns dynamic 53-card pool)
|
||||
procedure Remove_Big_Three
|
||||
(D : in out Deck;
|
||||
B3 : in Big_Three;
|
||||
Status : out Operation_Status);
|
||||
|
||||
-- Count present cards
|
||||
function Present_Count (D : Deck) return Natural;
|
||||
|
||||
private
|
||||
|
||||
-- Build the canonical 56-card alphabet at compile time.
|
||||
-- Order: 31 Majors, then 20 Court (suit-major order), then 5 VOID.
|
||||
Full_Alphabet : constant Alphabet :=
|
||||
(
|
||||
-- Majors 1..31
|
||||
1 => (Kind => Major, Major_Value => The_Fool),
|
||||
2 => (Kind => Major, Major_Value => The_Magician),
|
||||
3 => (Kind => Major, Major_Value => The_High_Priestess),
|
||||
4 => (Kind => Major, Major_Value => The_Empress),
|
||||
5 => (Kind => Major, Major_Value => The_Emperor),
|
||||
6 => (Kind => Major, Major_Value => The_Hierophant),
|
||||
7 => (Kind => Major, Major_Value => The_Lovers),
|
||||
8 => (Kind => Major, Major_Value => The_Chariot),
|
||||
9 => (Kind => Major, Major_Value => Adjustment),
|
||||
10 => (Kind => Major, Major_Value => The_Hermit),
|
||||
11 => (Kind => Major, Major_Value => Fortune),
|
||||
12 => (Kind => Major, Major_Value => Lust),
|
||||
13 => (Kind => Major, Major_Value => The_Hanged_Man),
|
||||
14 => (Kind => Major, Major_Value => Death),
|
||||
15 => (Kind => Major, Major_Value => Art),
|
||||
16 => (Kind => Major, Major_Value => The_Devil),
|
||||
17 => (Kind => Major, Major_Value => The_Tower),
|
||||
18 => (Kind => Major, Major_Value => The_Star),
|
||||
19 => (Kind => Major, Major_Value => The_Moon),
|
||||
20 => (Kind => Major, Major_Value => The_Sun),
|
||||
21 => (Kind => Major, Major_Value => The_Aeon),
|
||||
22 => (Kind => Major, Major_Value => The_Universe),
|
||||
23 => (Kind => Major, Major_Value => SD_Maya),
|
||||
24 => (Kind => Major, Major_Value => SD_History),
|
||||
25 => (Kind => Major, Major_Value => SD_Virus),
|
||||
26 => (Kind => Major, Major_Value => SD_Achievement),
|
||||
27 => (Kind => Major, Major_Value => SD_Digital),
|
||||
28 => (Kind => Major, Major_Value => SD_Vulture_Mother),
|
||||
29 => (Kind => Major, Major_Value => SD_She_Is_Legend),
|
||||
30 => (Kind => Major, Major_Value => SD_Schrodinger),
|
||||
31 => (Kind => Major, Major_Value => SD_Singularity),
|
||||
-- Court cards 32..51 (Wands, Cups, Swords, Pentacles × 5 ranks)
|
||||
32 => (Kind => Court, Suit_Value => Wands, Rank_Value => Ninety_Nine),
|
||||
33 => (Kind => Court, Suit_Value => Wands, Rank_Value => King),
|
||||
34 => (Kind => Court, Suit_Value => Wands, Rank_Value => Queen),
|
||||
35 => (Kind => Court, Suit_Value => Wands, Rank_Value => Chevalier),
|
||||
36 => (Kind => Court, Suit_Value => Wands, Rank_Value => P),
|
||||
37 => (Kind => Court, Suit_Value => Cups, Rank_Value => Ninety_Nine),
|
||||
38 => (Kind => Court, Suit_Value => Cups, Rank_Value => King),
|
||||
39 => (Kind => Court, Suit_Value => Cups, Rank_Value => Queen),
|
||||
40 => (Kind => Court, Suit_Value => Cups, Rank_Value => Chevalier),
|
||||
41 => (Kind => Court, Suit_Value => Cups, Rank_Value => P),
|
||||
42 => (Kind => Court, Suit_Value => Swords, Rank_Value => Ninety_Nine),
|
||||
43 => (Kind => Court, Suit_Value => Swords, Rank_Value => King),
|
||||
44 => (Kind => Court, Suit_Value => Swords, Rank_Value => Queen),
|
||||
45 => (Kind => Court, Suit_Value => Swords, Rank_Value => Chevalier),
|
||||
46 => (Kind => Court, Suit_Value => Swords, Rank_Value => P),
|
||||
47 => (Kind => Court, Suit_Value => Pentacles, Rank_Value => Ninety_Nine),
|
||||
48 => (Kind => Court, Suit_Value => Pentacles, Rank_Value => King),
|
||||
49 => (Kind => Court, Suit_Value => Pentacles, Rank_Value => Queen),
|
||||
50 => (Kind => Court, Suit_Value => Pentacles, Rank_Value => Chevalier),
|
||||
51 => (Kind => Court, Suit_Value => Pentacles, Rank_Value => P),
|
||||
-- VOID 52..56
|
||||
52 => (Kind => Void_Suit, Void_Value => Void_Queen),
|
||||
53 => (Kind => Void_Suit, Void_Value => Void_King),
|
||||
54 => (Kind => Void_Suit, Void_Value => Void_Chevalier),
|
||||
55 => (Kind => Void_Suit, Void_Value => Void_Progeny),
|
||||
56 => (Kind => Void_Suit, Void_Value => Void_Zero)
|
||||
);
|
||||
|
||||
end Soul.Tarot;
|
||||
Loading…
x
Reference in New Issue
Block a user