Saya bermain-main dengan PyGame.
Sekarang saya mencoba menerapkan klon QIX .
Saya memiliki loop permainan saya, dan saya dapat memindahkan pemain (kursor) di layar.
Di QIX, pergerakan pemain meninggalkan jejak (ekor) di layar, membuat polyline.
Jika polyline dengan batas layar membuat poligon, area tersebut terisi.
Bagaimana saya bisa menyelesaikan perilaku ini?
Bagaimana cara menyimpan ekornya di memori?
Bagaimana mendeteksi ketika itu membangun bentuk tertutup yang harus diisi?
Saya tidak membutuhkan solusi kerja yang tepat, beberapa petunjuk, nama algo akan keren.
Pada awal, hanya ada batas abu-abu, di mana pemain dapat menggerakkan kursornya.
- Skenario pertama:
Pengguna memindahkan kursornya dari titik A melalui titik B, menggambar multiline merah hingga titik C. Pada titik ini, karena melintasi perbatasan, titik A harus dihubungkan dengan titik C secara otomatis, membuat poligon, yang harus diisi ( hal oranye pada gambar saya). Mengisi poligon sangat sederhana di PyGame, karena saya memberikan urutan poin, dan PyGame peduli sisanya.
- Skenario kedua:
Pengguna bergerak di perbatasan ke titik D, dari mana ia menggambar garis ke titik E. Karena ia melintasi garis poligon sebelumnya, dan dengan garis dan perbatasannya poligon lain dapat dibuat, itu harus diisi juga. (yang hijau).
- Skenario ketiga:
Pemain bergerak lebih jauh pada poligon (dia bisa bergerak pada garis poligon yang ada), dan menggambar garis dari titik G ke titik F. Di sini sekali lagi, karena perbatasan dan garis yang ada, poligon lain harus diisi (yang biru) .