Bene, il titolo non è molto appropriato, per favore continua a leggere (non potrei averne uno migliore)
Nota: utilizzo di Python 2.7, ma sarà utile anche un algoritmo.
Sto facendo un gioco a scorrimento laterale, in cui sto generando gli ostacoli al volo. Il problema che sto avendo è capire come generare gli ostacoli. o_O
Ho una specie di logica, ma poi ho problemi a capire l'intera logica.
Quindi ecco il mio problema da una prospettiva di implementazione:
Ho un Surface
, in cui ho messo un po 'di Element
s, che sono tutti rettangoli.
Pensala come:
0 0 0 0 0 0 0
0 0 0 0 1 1 0
0 0 0 0 1 1 0
0 0 0 0 1 1 0
0 0 0 0 0 0 0
0 1 1 0 0 1 1
0 0 0 0 0 1 1
Come nella struttura sopra, come posso determinare se un rettangolo axb
può essere aggiunto senza sovrapporre un altro rettangolo (di 1 secondo) e dove tutto. Inoltre, con il mantenimento di una distanza di x elementi (anche diagonalmente) da tutti gli altri oggetti, significa che l'intero rettangolo è (x + 3, x + 4). Qualcosa come se x=1, a=3, b=4
, c'è solo un possibile accordo:
(2s rappresenta il nuovo oggetto)
2 2 2 0 0 0 0
2 2 2 0 1 1 0
2 2 2 0 1 1 0
2 2 2 0 1 1 0
0 0 0 0 0 0 0
0 1 1 0 0 1 1
0 0 0 0 0 1 1
Fondamentalmente, ho bisogno di trovare tutti i punti, da cui un rettangolo di lati a
e b
può avere, per esempio, un angolo in alto a sinistra. Come si può ottenere?
Nota: apri a idee migliori per generare gli ostacoli al volo!
PS: non sono chiaro?