Kontrollera om en figur får plats i ett fält
Postat: 7 januari 2019, 18:29:20
Har funderat lite till och från på hur man programmatiskt snabbast kollar om olika figurer uppbyggda av rutor, som tetris-block ungefär, får plats på ett fält som består av 10x10 rutor.
Fältet fylls på med figurerna man plockar upp (som slumpas fram) och släpper ner och när det finns en hel rad försvinner den, utan att andra rader flyttar efter. Till sist får inga av de framslumpade figurerna plats och spelet är över.
Det går inte att vrida på figurerna, utan de dyker upp färdigvridna så att säga.
Allra enklast är ju några nestade loopar som kollar om figurens rutor för varje position överlappar fyllda rutor i fältet, men det blir långsamt.
I språket som används finns inga matriser eller multidimensionella variabler. Det finns dock ett litet "arbetsminne" på 256 positioner som är till för att stoppa numeriska data i och plocka fram vid behov.
Det finns inga möjligheter alls att jobba med bits.
Nån som har en klurig idé?
I värsta fall får jag väl helt enkelt sätta en tidsgräns på varje drag och inte kolla alls utan bara vänta på att man inte kan lägga någon figur.
Fältet fylls på med figurerna man plockar upp (som slumpas fram) och släpper ner och när det finns en hel rad försvinner den, utan att andra rader flyttar efter. Till sist får inga av de framslumpade figurerna plats och spelet är över.
Det går inte att vrida på figurerna, utan de dyker upp färdigvridna så att säga.
Allra enklast är ju några nestade loopar som kollar om figurens rutor för varje position överlappar fyllda rutor i fältet, men det blir långsamt.
I språket som används finns inga matriser eller multidimensionella variabler. Det finns dock ett litet "arbetsminne" på 256 positioner som är till för att stoppa numeriska data i och plocka fram vid behov.
Det finns inga möjligheter alls att jobba med bits.
Nån som har en klurig idé?
I värsta fall får jag väl helt enkelt sätta en tidsgräns på varje drag och inte kolla alls utan bara vänta på att man inte kan lägga någon figur.