Sidste dSoftArk aflevering
Sidste dSoftArk aflevering
Sidste dSoftArk aflevering
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
color(f) = player∧player = NONE<br />
color(f) = player ∧ player = NONE<br />
player = NONE<br />
dist(f, t) = dice − value ↑<br />
dist(f, t) = dice − value<br />
Det sidste vi skal have checket er om et felt er blocked (om der st˚ar 2 af<br />
fjendens brikker der eller mere). I vores partitionering har vi nu lige præcis<br />
en partition der er valid, den vil vi arbejde videre med, og efterlade de andre<br />
som de er (I dette eksempel bliver de restende 5 partitioner ikke valid af at vi<br />
finindeler dem). Vi definerer en ny funktion isBlocked(f, p) der afgør om et felt<br />
er blocked ud fra et felt og en player, lidt mere detaljeret kunne den beskrives<br />
s˚aledes:<br />
isBlocked(f, p) = count(f) >= 2 ∧ color(f) = p<br />
læg mærke til at vi brugte funktionen count, den tæller antallet af brikker p˚a et<br />
felt. vi opdeler nu den valide partition i 2 nye, defineret ud fra: isblocked(f, player)<br />
- Invalid<br />
¬isblocked(f, player) - Valid<br />
dist(f, t) = dice − value<br />
color(f) = player ∧ player = NONE<br />
color(f) = player ∧ player = NONE<br />
↑ ¬isBlocked(t, player)<br />
Udfra denne partionering er vi nu endt op med en masse ækvivalensklasser.<br />
De er intuitivt disjunkte da enhver slice vi har lavet har været mere eller mindre<br />
binær, og begge tilfælde er dækket, alle tilfælde er dækket og der er ingen<br />
ækvivalensklasser der overlapper hinanden.<br />
Udfra ækvivalensklasserne skal vi have følgende tests:<br />
2<br />
player = NONE