final version
This commit is contained in:
@@ -1,6 +1,17 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head> <meta charset="UTF-8"> </head>
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<link rel="stylesheet" href="style.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript" src="main.js"> </script>
|
<h2 id="record">RECORD: -</h2>
|
||||||
</body>
|
<h3 id="shots">SHOTS: 0 / 35</h3>
|
||||||
|
|
||||||
|
<table id="board"></table>
|
||||||
|
<script src="main.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -1,51 +1,108 @@
|
|||||||
var x1=Math.floor(Math.random()*5)+1;
|
window.onload = function () {
|
||||||
var x2=x1+1;
|
|
||||||
var x3=x1+2;
|
|
||||||
|
|
||||||
var guess;
|
var shots = 0;
|
||||||
var hits=0;
|
var hits = 0;
|
||||||
var guesses=0;
|
var maxShots = 35;
|
||||||
var isSunk=false;
|
var gameOver = false;
|
||||||
var y1=Math.floor(Math.random()*7)+1;
|
|
||||||
var sea=[
|
|
||||||
[null, null, null, null, null, null, null, null],
|
|
||||||
[null, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
[null, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
[null, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
[null, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
[null, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
[null, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
[null, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
];
|
|
||||||
|
|
||||||
sea[y1][x1]=1;
|
var record = localStorage.getItem("record") || "-";
|
||||||
sea[y1][x2]=1;
|
document.getElementById("record").innerHTML = "RECORD: " + record;
|
||||||
sea[y1][x3]=1;
|
|
||||||
|
|
||||||
while (isSunk == false) {
|
var sea = [];
|
||||||
guess = prompt("Ready, aim, fire! (enter two numbers 1-7):");
|
|
||||||
|
var sea = [
|
||||||
|
[null, null, null, null, null, null, null, null],
|
||||||
|
[null, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[null, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[null, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[null, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[null, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[null, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[null, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
];
|
||||||
|
|
||||||
|
function createShip() {
|
||||||
|
|
||||||
|
var x, y;
|
||||||
|
|
||||||
|
do {
|
||||||
|
x = Math.floor(Math.random() * 5) + 1;
|
||||||
|
y = Math.floor(Math.random() * 7) + 1;
|
||||||
|
|
||||||
|
} while (
|
||||||
|
sea[y][x] == 1 ||
|
||||||
|
sea[y][x + 1] == 1 ||
|
||||||
|
sea[y][x + 2] == 1
|
||||||
|
);
|
||||||
|
|
||||||
|
sea[y][x] = 1;
|
||||||
|
sea[y][x + 1] = 1;
|
||||||
|
sea[y][x + 2] = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < 5; i++) {
|
||||||
|
createShip();
|
||||||
|
}
|
||||||
|
|
||||||
if (guess === null) {
|
console.log("FIELD:");
|
||||||
break;
|
console.log(sea);
|
||||||
}
|
|
||||||
|
|
||||||
guess = Number(guess);
|
|
||||||
|
|
||||||
if (guess < 1 || guess > 7) {
|
|
||||||
alert("Please enter a valid cell number!");
|
|
||||||
} else {
|
|
||||||
++guesses;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
var table = document.getElementById("board");
|
||||||
|
|
||||||
console.log(sea[1]);
|
for (var i = 1; i <= 7; i++) {
|
||||||
console.log(sea[2]);
|
|
||||||
console.log(sea[3]);
|
var row = document.createElement("tr");
|
||||||
console.log(sea[4]);
|
|
||||||
console.log(sea[5]);
|
for (var j = 1; j <= 7; j++) {
|
||||||
console.log(sea[6]);
|
|
||||||
console.log(sea[7]);
|
var cell = document.createElement("td");
|
||||||
console.log(sea);
|
|
||||||
console.log(x1,x2,x3);
|
cell.dataset.y = i;
|
||||||
console.log(y1);
|
cell.dataset.x = j;
|
||||||
|
|
||||||
|
cell.onclick = function () {
|
||||||
|
|
||||||
|
if (gameOver || this.innerHTML != "") return;
|
||||||
|
|
||||||
|
var y = this.dataset.y;
|
||||||
|
var x = this.dataset.x;
|
||||||
|
|
||||||
|
shots++;
|
||||||
|
document.getElementById("shots").innerHTML =
|
||||||
|
"SHOTS: " + shots + " / " + maxShots;
|
||||||
|
|
||||||
|
if (sea[y][x] == 1) {
|
||||||
|
|
||||||
|
this.innerHTML = "X";
|
||||||
|
sea[y][x] = 0;
|
||||||
|
hits++;
|
||||||
|
|
||||||
|
if (hits == 15) {
|
||||||
|
|
||||||
|
alert("ВЫ ВЫИГРАЛИ");
|
||||||
|
|
||||||
|
if (record == "-" || shots < record) {
|
||||||
|
localStorage.setItem("record", shots);
|
||||||
|
}
|
||||||
|
|
||||||
|
gameOver = true;
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.innerHTML = "O";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (shots > maxShots && hits < 15) {
|
||||||
|
alert("ВЫ ПРОИГРАЛИ");
|
||||||
|
gameOver = true;
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
row.appendChild(cell);
|
||||||
|
}
|
||||||
|
|
||||||
|
table.appendChild(row);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
body {
|
||||||
|
text-align: center;
|
||||||
|
font-family: Arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
margin: auto;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
border: 1px solid black;
|
||||||
|
font-size: 24px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user