Atölye › Mayın Tarlası › 16/26. adım

Sağ tuşla bayrak

Ne yapıyoruz

Oyuncular altında mayın olduğundan emin oldukları hücreyi bayrakla işaretler; bunun için sağ tuş kullanılır. Hücreye yeni bir bilgi: flagged (bayraklı mı).

Sağ tıklayınca tarayıcı 'contextmenu' olayını gönderir ve normalde kendi menüsünü açar. Olayı dinleyen fonksiyonda event.preventDefault() çağırırsak bu varsayılan davranış durur; sağ tuş artık sadece oyunundur.

```js
    Array.from({ length: SIZE }, (_, col) => ({ row, col, mine: false, count: 0, revealed: false, flagged: false })),

function toggleFlag(cell) {
  if (cell.revealed || state === 'lost') return
  cell.flagged = !cell.flagged
}

canvas.addEventListener('contextmenu', (event) => {
  event.preventDefault() // no browser menu: right click places a flag
  const cell = cellAt(event)
  if (cell) toggleFlag(cell)
})
```

Ne işe yarıyor

Sıra sende

  1. newGame içindeki hücre nesnesine flagged: false ekle.
  2. function lose() { satırının üstüne toggleFlag fonksiyonunu yaz; arada bir boş satır kalsın.
  3. function draw() { satırının üstüne contextmenu dinleyicisini yaz; arada bir boş satır kalsın.
  4. Çalıştır. Bayrağı bir sonraki adımlarda çizeceğiz; kontroller onu okuyor.

Beceriler: Klavye ve fare girdisi

Tüm adımlar

  1. Hücre nesnelerinden bir ızgara
  2. Tuval ve kalem
  3. Tarlayı çiz
  4. Her karede çiz
  5. Komşular
  6. Mayınlar, ama ilk tıklamanın altına değil
  7. Adayları karıştır
  8. Çevredeki mayınları say
  9. Hücre aç
  10. Açık hücre farklı görünür
  11. Renkli sayılar
  12. Tıkla ve aç
  13. Mayına basmak
  14. Mayınları göster
  15. Taşma dolgusu
  16. Sağ tuşla bayrak
  17. Bayrak hücresini korur
  18. Bayrakları çiz
  19. Kalan mayınlar
  20. Kazanmak
  21. Son ve yeni oyun
  22. Saat kaç?
  23. Saat
  24. Saati durdur
  25. En iyi süre
  26. Kendin yap: yanlış bayraklar