02.09.2013 Views

Sidste dSoftArk aflevering

Sidste dSoftArk aflevering

Sidste dSoftArk aflevering

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!