mirror of
https://github.com/SHOGGOTH-SECTOR/sica-fondt.git
synced 2026-07-31 16:16:26 +00:00
Delete soul-tarot.adb
This commit is contained in:
parent
bd7e7ddaf8
commit
e6204218c5
@ -1,70 +0,0 @@
|
||||
package body Soul.Tarot
|
||||
with SPARK_Mode => On
|
||||
is
|
||||
|
||||
function Cards_Equal (A, B : Card) return Boolean is
|
||||
begin
|
||||
if A.Kind /= B.Kind then
|
||||
return False;
|
||||
end if;
|
||||
case A.Kind is
|
||||
when Major => return A.Major_Value = B.Major_Value;
|
||||
when Court => return A.Suit_Value = B.Suit_Value
|
||||
and then A.Rank_Value = B.Rank_Value;
|
||||
when Void_Suit => return A.Void_Value = B.Void_Value;
|
||||
end case;
|
||||
end Cards_Equal;
|
||||
|
||||
function Big_Three_Distinct (B3 : Big_Three) return Boolean is
|
||||
begin
|
||||
return not Cards_Equal (B3.Sun, B3.Moon)
|
||||
and then not Cards_Equal (B3.Sun, B3.Ascendant)
|
||||
and then not Cards_Equal (B3.Moon, B3.Ascendant);
|
||||
end Big_Three_Distinct;
|
||||
|
||||
function Full_Deck return Deck is
|
||||
D : Deck;
|
||||
begin
|
||||
for I in Deck_Index loop
|
||||
D (I) := (State => Present, Value => Full_Alphabet (Alphabet_Index (I)));
|
||||
end loop;
|
||||
return D;
|
||||
end Full_Deck;
|
||||
|
||||
procedure Remove_Big_Three
|
||||
(D : in out Deck;
|
||||
B3 : in Big_Three;
|
||||
Status : out Operation_Status)
|
||||
is
|
||||
Removed : Natural := 0;
|
||||
begin
|
||||
for I in Deck_Index loop
|
||||
if D (I).State = Present then
|
||||
if Cards_Equal (D (I).Value, B3.Sun)
|
||||
or else Cards_Equal (D (I).Value, B3.Moon)
|
||||
or else Cards_Equal (D (I).Value, B3.Ascendant)
|
||||
then
|
||||
D (I).State := Absent;
|
||||
Removed := Removed + 1;
|
||||
end if;
|
||||
end if;
|
||||
end loop;
|
||||
if Removed = 3 then
|
||||
Status := OK;
|
||||
else
|
||||
Status := Error_Config; -- Big-3 cards not found in deck
|
||||
end if;
|
||||
end Remove_Big_Three;
|
||||
|
||||
function Present_Count (D : Deck) return Natural is
|
||||
Count : Natural := 0;
|
||||
begin
|
||||
for I in Deck_Index loop
|
||||
if D (I).State = Present then
|
||||
Count := Count + 1;
|
||||
end if;
|
||||
end loop;
|
||||
return Count;
|
||||
end Present_Count;
|
||||
|
||||
end Soul.Tarot;
|
||||
Loading…
x
Reference in New Issue
Block a user