Den fantastiska labyrint spel för Nexys 3 (24 / 31 steg)
Steg 24: MazeArray - arrayen labyrint
MazeArray startas med full förklaringen av alla översta ingångar och utgångar, fortsätter med för att förklara alla delkomponenter och signaler och sedan ansluter dem upp.
Labyrinten data hålls i en signal, som kallas "labyrint", av anpassade "maze_type" typen. 'Maze_type' är en 2-dimensionell array av 3-bitars standard logik vektorer. Alla vektorelement lagrar data på typ av utrymme på den platsen. När komme till matrisen, anges Y dimension först.
Koderna för array-platser är:
- "000": tomma väggytor
- "001": vägg
- "010": öppna spelaren utrymme
- "011": spelare
- "100": startpunkt
- "101": slut punkt
Labyrinten växlar mellan väggen och spelaren utrymmen. Player utrymmen är omgiven på alla sidor av väggen blanksteg och två utrymmen från varje andra spelare utrymme, vinkelrätt.
Arrayen labyrint som används väljs med hjälp av select-uttrycket och styrelsen ingång, som är ansluten till en serie av växlar. Styrelsen kan ändras när som helst så bör inte man byta under spelets gång.
Nya styrelser kan programmeras, även om det är tillrådligt att utforma dem externt och sedan kopiera dem i, eftersom detta tillåter användning av alternativa tecken när du skriver en labyrint (så du behöver inte utforma labyrinten i binär), som sedan kan ersättas med de sanna binära koderna. Select-uttrycket kan utökas för att möjliggöra för fler brädor.