Stap 3: Overwinning voorwaarden Module
Nu hebben we de LEDs en de knoppen werken, moeten we het vertellen van het bestuur op zoek naar win voorwaarden (of het ontbreken daarvan). Om dit te doen, zullen we gebruiken een paar grote "als" verklaringen binnenkant van processen.
Het eerste proces controleert alle 8 mogelijke winst (3 horizontale, 3 verticale en 2 diagonal) voor elke speler voor een totaal van 16 als verklaringen.
process (in1t, in2t, in3t, in4t, in5t, in6t, in7t, in8t, in9t) is begin --player 1 conditions -- horizontal if (in1t(1) = '1' and in2t(1) = '1' and in3t(1) = '1') then p1 <= '1'; elsif (in4t(1) = '1' and in5t(1) = '1' and in6t(1) = '1') then p1 <= '1'; elsif (in7t(1) = '1' and in8t(1) = '1' and in9t(1) = '1') then p1 <= '1'; -- vertical elsif (in1t(1) = '1' and in4t(1) = '1' and in7t(1) = '1') then p1 <= '1'; elsif (in2t(1) = '1' and in5t(1) = '1' and in8t(1) = '1') then p1 <= '1'; elsif (in3t(1) = '1' and in6t(1) = '1' and in9t(1) = '1') then p1 <= '1'; -- diagonal elsif (in1t(1) = '1' and in5t(1) = '1' and in9t(1) = '1') then p1 <= '1'; elsif (in3t(1) = '1' and in5t(1) = '1' and in7t(1) = '1') then p1 <= '1'; else p1 <= '0'; end if; -- player 2 conditions -- horizontal if (in1t(0) = '1' and in2t(0) = '1' and in3t(0) = '1') then p2 <= '1'; elsif (in4t(0) = '1' and in5t(0) = '1' and in6t(0) = '1') then p2 <= '1'; elsif (in7t(0) = '1' and in8t(0) = '1' and in9t(0) = '1') then p2 <= '1'; -- vertical elsif (in1t(0) = '1' and in4t(0) = '1' and in7t(0) = '1') then p2 <= '1'; elsif (in2t(0) = '1' and in5t(0) = '1' and in8t(0) = '1') then p2 <= '1'; elsif (in3t(0) = '1' and in6t(0) = '1' and in9t(0) = '1') then p2 <= '1'; -- diagonal elsif (in1t(0) = '1' and in5t(0) = '1' and in9t(0) = '1') then p2 <= '1'; elsif (in3t(0) = '1' and in5t(0) = '1' and in7t(0) = '1') then p2 <= '1'; else p2 <= '0'; end if; end process;
Vervolgens moeten we een veel kleinere tweede proces dat de P1 en P2 win staat om te bepalen vergelijkt of er een gelijkspel was.
process (P1, P2) is<br>begin if (P1 = '0' and P2 = '0') then T <= '1'; else T <= '0'; end if; end process;
Tot slot moeten we de waarden die zijn opgeslagen in de signalen aan onze uitgangen doorgeven.
p1win <= P1; p2win <= P2; tie <= t;