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

Mayınlar, ama ilk tıklamanın altına değil

Ne yapıyoruz

Kimse ilk tıklamada patlamayı sevmez. Gerçek oyun bu yüzden mayınları ilk tıklamadan sonra koyar: tıklanan hücreye ve komşularına asla koymaz. Böylece ilk tıklama hep biraz alan açar.

Her hücreye yeni bir bilgi ekliyoruz: mine (mayın var mı). placeMines(safe) yasak hücreleri ayırıp kalanlara 10 mayın koyacak. Bu adımda mayınları henüz sırayla koyuyoruz; bir sonraki adımda karıştıracağız.

```js
const MINES = 10

    Array.from({ length: SIZE }, (_, col) => ({ row, col, mine: false })),

// Mines are placed on the first click, never on or next to the clicked cell, so the first click always opens space.
function placeMines(safe) {
  const forbidden = new Set([safe, ...neighbors(safe)])
  const candidates = grid.flat().filter((cell) => !forbidden.has(cell))
  for (const cell of candidates.slice(0, MINES)) cell.mine = true
}
```

Ne işe yarıyor

Sıra sende

  1. TOP satırının altına const MINES = 10 yaz.
  2. newGame içindeki hücre nesnesine mine: false ekle: ({ row, col, mine: false }).
  3. neighbors fonksiyonunun altına bir boş satır bırakıp yorum satırını ve placeMines'ı yaz.
  4. Çalıştır. Mayınlar gizli; kontroller onları sayıyor.

Beceriler: Diziler ve nesneler

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