Atölye › Amiral Battı › 27/35. adım
Bilgisayarın ne düşündüğünü görmek eğlenceli. showHeat açıkken küçük denizin turuncuya boyansın: kare ne kadar
sıcaksa o kadar parlak. drawSea'ya isteğe bağlı yeni bir parametre ekliyoruz: heat.
```js
let showHeat
showHeat = false
function drawSea(origin, size, shotsGrid, fleet, showShips, heat) {
const max = heat ? Math.max(1, ...heat.flat()) : 1
// The heat map: brighter where the computer thinks a ship is more likely.
if (heat && heat[r][c] > 0) ctx.fillStyle = `rgba(249, 115, 22, ${(0.15 + (0.85 * heat[r][c]) / max).toFixed(2)})`
drawSea(SEA, BIG, myShots, enemyFleet, false, null)
drawSea(HOME, SMALL, theirShots, myFleet, true, showHeat ? heatMap() : null)
```heat → ya bir ısı haritası ya da null (renk yok). Düşman denizini çizerken null veriyoruz.Math.max(1, ...heat.flat()) → flat ızgarayı tek listeye açar, ... listeyi tek tek sayılara dağıtır, max
en büyüğünü bulur. En az 1, ki sıfıra bölmeyelim.`rgba(249, 115, 22, ${...})` → ters tırnaklı şablon metin: ${ } içindeki değer metnin içine yazılır.0.15 + (0.85 * heat[r][c]) / max → saydamlık: en soğuk 0,15, en sıcak 1. heat / max her zaman 0 ile 1 arası..toFixed(2) → sayıyı 2 ondalıkla yazar (0.4712... → "0.47").showHeat ? heatMap() : null → açıksa haritayı hesapla, kapalıysa hiç hesaplama.let shots ... satırının altına let showHeat, reset içinde shots = 0 satırının altına showHeat = false
yaz.drawSea'nın parametrelerinin sonuna , heat ekle; ilk satırına max satırını yaz; showShips satırının altına
yorumu ve ısı satırını yaz.draw içindeki iki drawSea çağrısının sonuna yeni parametreyi ekle: düşman denizine null, seninkine
showHeat ? heatMap() : null.Beceriler: Canvas üzerine çizim
← İsabetin çevresini ara Isı için H →