Добрый вечер,
Вроде подправила, но все равно есть несколько моментов которые мне не даются((
Это строчки №
1. 29
2. 139
3. 148
4. 165
Помогите пожалуйста, после завтра уже сдавать... горю...
<!DOCTYPE html>
<html>
<head>
<script>
var namePlayer = prompt("What is your name:","Player");
var timeFixe = 1000*prompt("Give the time for the tour(in secondes):","100");
var pointsPlayer = 0;
var pointsComp = 0;
</script>
</head>
<body>
<script>
var doCartes = function() {
var element = ["A","B","C"];
var compteur = 0;
for (var i=0; i<numValeur; i++) {
for (var j=0; j<numValeur; j++) {
for (var k=0; k<numValeur; k++) {
for (var l=0; l<numValeur; l++) {
cartes[compteur] = element[i]+element[j]+element[k]+element[l];
compteur++;
}
}
}
}
};
var swap = function(cartes,from,to)// переделала но все равно не работает, не перемешивает карты в колоде
{
++swap.calls;
var temp = cartes[from];
cartes[from] = cartes[to];
cartes[to] = temp;
};
var shuffleCartes = function(cartes)
{
if (cartes && cartes.length) {
for (var i=0; i<cartes.length; ++i) {
var j = Math.floor(Math.random() * cartes.length);
if (i !== j)
swap(cartes,i,j);
}
}
return cartes;
};
var carteOnClick = function(cell) {
tab = document.getElementById("ensemble");
if (cell.style.background == "") { // добавляют карту к сет
Uncaught TypeError: Cannot read property 'style' of undefined (repeated 4 times)
for (var i = 0; i < 3; i++) {
if (tab[i].value == "") {
tab[i].value = cell.innerText;
cell.style.background = "aqua";
break;
}
}
} else if (cell.style.background == "aqua") { // уберают карту из сета
cell.style.background = "";
for (var i = 0; i < 3; i++) {
if (tab[i].value == cell.innerText) {
for (var j=i+1; j<3; j++) tab[j-1].value = tab[j].value;
break;
}
}
tab[2].value = "";
}
};
<!-- этот код генерирует таблицу с элементами то есть картами. -->
function genererPlateauCartes() {
// get the reference for the body
var body = document.getElementsByTagName("body")[0];
// creates a <table> element and a <tbody> element
var tbl = document.createElement("table");
var tblBody = document.createElement("tbody");
// creating all cells
for (var i = 0; i < 4; i++) {
// creates a table row
var row = document.createElement("tr");
for (var j = 0; j < 3; j++) {
// Create a <td> element and a text node, make the text
// node the contents of the <td>, and put the <td> at
// the end of the table row
var cell = document.createElement("td");
var cellText = document.createTextNode(cartes[prochaineCarte++]);
cell.onclick = function() { carteOnClick(this) };
cell.appendChild(cellText);
row.appendChild(cell);
}
// add the row to the end of the table body
tblBody.appendChild(row);
}
// put the <tbody> in the <table>
tbl.appendChild(tblBody);
// appends <table> into <body>
body.appendChild(tbl);
// sets the border attribute of tbl to 1;
tbl.setAttribute("border", "3");
};
</script>
<h1> Set! </h1>
<h2 id="timer"> оставшиеся время</h2>
<script>
<!-- определяет таблицу карт. Имеются 81 карта. -->
var numFacteur = 4;
var numValeur = 3;
var numCartes = Math.pow(3,4);
var cartes = Array(numCartes);
var prochaineCarte = 0;
doCartes();
shuffleCartes();
genererPlateauCartes();
var od = Date.now()+timeFixe;
var myVar = setInterval(function(){myTimer()},1000);
var endOfRound = setInterval(function(){finTour()},timeFixe);
var myTimer = function() {
var d=Date.now();
// var t=d.toLocaleTimeString();
var timerSeconds = Math.round((od-d)/1000);
if (timerSeconds >= 0) {
document.getElementById("timer").innerHTML= "Time left for this tour: "+timerSeconds;
}
};
var tourOfComp = function() {
//я бы хотела спросить: здесь роль компьютера выполняю я
// искуственно, а возможно ли такое что бы компьютер сам выбрал нужные карты то есть
//те которые состовляют сет или это очень сложный и долгий код и я не смогу его сделать?
carteOnClick(); // помоему эта функция не вызывается, не знаю почему
//здесь компьютер должен начать свою игру (ну я вместо него) то есть вызвать функция
//для выбора карт в сет но при этом очки не добаляется а просто все стирается добавляются
//новые карты и игра переходит к игроку снова, но у меня помоему цикл этот не получился не знаю почему
// как сделать непрерывную игру пока не закончаться все карты?
tab = document.getElementById("ensemble");// здесь я хочу стереть выбранные компьютером карты
// но почему то нет перехода от вызова функции carteOnClick(); к этому коду
for (var i = 0; i < 12; i++) {
if (document.getElementsByTagName("td")[i].style.background=="aqua"){
document.getElementsByTagName("td")[i].innerHTML= cartes[prochaineCarte++]}}
for (var j = 0; j < 12; j++) {
if (document.getElementsByTagName("td")[j].style.background=="aqua")
document.getElementsByTagName("td")[j].style.background="none";
}
for (var k = 0; k < 3; k++) {
tab[k].value = "";
}
};
var finTour = function() {
tourOfComp();
od = Date.now()+TimeFixe;// я здесь хотела установить время
//что бы когда оно заканчивалось игра для игрока прерывалась и переходила к компьютеру
//ну что то не могу сообразить как это можно сделать
carteOnClick();//почему то эта функция не вызывается здесь
};
var verificationEnsemble = function() {
var tab = document.getElementById("ensemble");
var mot0= tab.children[0].value;
var mot1= tab.children[1].value;
var mot2= tab.children[2].value;
if ((mot0.charAt(0)==mot1.charAt(0)&& mot0.charAt(0)==mot2.charAt(0)||
mot0.charAt(0)!=mot1.charAt(0)&& mot0.charAt(0)!= mot2.charAt(0)&&
mot1.charAt(0)!=mot2.charAt(0))&&(mot0.charAt(1)==mot1.charAt(1)
&& mot0.charAt(1)==mot2.charAt(1)||mot0.charAt(1)!=mot1.charAt(1)
&&mot0.charAt(1)!=mot2.charAt(1)&&mot1.charAt(1)!=mot2.charAt(1))
&&(mot0.charAt(2)==mot1.charAt(2)&&mot0.charAt(2)==mot2.charAt(2)
||mot0.charAt(2)!=mot1.charAt(2)&&mot0.charAt(2)!=mot2.charAt(2)
&&mot1.charAt(2)!=mot2.charAt(2))&&(mot0.charAt(3)==mot1.charAt(3)
&&mot0.charAt(3)==mot2.charAt(3)||mot0.charAt(3)!=mot1.charAt(3)
&&mot0.charAt(3)!=mot2.charAt(3)&&mot1.charAt(3)!=mot2.charAt(3)))
{ pointsPlayer++;
document.getElementById('points').innerHTML = namePlayer + ":"+" "+ pointsPlayer +"<br>"+ "Computer:"+" "+ pointsComp;
deleteCartes();}
else
{finTour();}
};
var deleteCartes = function(){// эта функция уберает выбранные карты и ложит еще
//три из колоды в таблицу
tab = document.getElementById("ensemble");
for (var i = 0; i < 12; i++) {
if (document.getElementsByTagName("td")[i].style.background=="aqua"){
document.getElementsByTagName("td")[i].innerHTML= cartes[prochaineCarte++]}}
for (var j = 0; j < 12; j++) {
if (document.getElementsByTagName("td")[j].style.background=="aqua")
document.getElementsByTagName("td")[j].style.background="none";
}
for (var k = 0; k < 3; k++) {
tab[k].value = "";
}
finTour();
};
</script>
<br>
<h4> Ensemble: </h4>
<form id="ensemble">
<input type=text maxlength=4 size=4 readOnly=true />
<input type=text maxlength=4 size=4 readOnly=true />
<input type=text maxlength=4 size=4 readOnly=true />
<input type="button" value="Verifier!" onclick="verificationEnsemble()" />
</form>
<br>
<h2> Les Points </h2>
<h3 id="points">
<script>
document.write(namePlayer + ": " + pointsPlayer + "<br>")
document.write("Computer: " + pointsComp)
</script>
</h3>
</body>
</html>