Miejsce, w którym nauczyciele i przedsiębiorcy mogą wymieniać się informacjami, aktualizować swoją wiedzę i konsultować problemy. Dzięki przepływowi wiedzy szkoły i przedsiębiorcy zdobywają wiedzę na temat swoich wzajemnych oczekiwań. Przedsiębiorcy dostarczają tu informacji o swoich potrzebach dotyczących kompetencji przyszłych kadr.
20:11
30 listopada 2013
Poniżej zamieszczam kod do zadania. Zadanie zawiera trzy pliki – index.html, style.css oraz tictactoe.js. Waszym zadaniem jest uzupełnienie pliku tictactoe.js tak, aby gra działała. Kod trzeba skopiować i zapisać w odpowiednich plikach tekstowych.
index.html
<html>
<head>
<title>Gra kółĸo i krzyżyk</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="style.css" />
<script type="text/javascript" src="tictactoe.js"></script>
</head>
<body onload="start();">
<table>
<tr>
<td x="0" y="0"></td>
<td x="1" y="0"></td>
<td x="2" y="0"></td>
</tr>
<tr>
<td x="0" y="1"></td>
<td x="1" y="1"></td>
<td x="2" y="1"></td>
</tr>
<tr>
<td x="0" y="2"></td>
<td x="1" y="2"></td>
<td x="2" y="2"></td>
</tr>
</table>
</body>
</html>
style.css
tictactoe.js
* zadanie: napisać grę kółko i krzyżyk. Można dostarczyć dokument html
*
* poruszane zagadnienia ze slajdów:
* funkcje, tablice, pętle, Document Object Model, zdarzenia
*/
// Tablica 2 wymiarowa reprezentująca planszę do gry
var result = new Array(new Array(3),new Array(3),new Array(3));
// Zmiana przechowująca oznaczenie gracza, który ma wykonać ruch (rozpoczynamy od kółka)
var player = ‚O’;
function start() {
}
// Sprawdzenie czy wszystkie pola są już zajęte, jeżeli tak to remin.
// Wcześniej sprawdzaliśmy czy ktoś wygrał, więc nie potrzeba nam dodatkowego sprawdzenia
// True oznacza, że wszystkie pola są zajęte (więc remis), false że są jeszcze wolne pola
function draw() {
}
// Sprawdzenie czy gra została zakończona zwycieństwem zadanego gracza (wywoływane po ruchu gracza)
// True oznacza że zadany gracz wygrał, false że gra jeszcze jest nie rozstrzygnięta lub jest remis
function win(player) {
}
Życzę powodzenia,
Dawid Bąk
Linux is like a wigwam: no windows, no gates, apache inside !
17:58
19 listopada 2013
22:44
30 listopada 2013
Zamieszczam przykładowe rozwiązanie. Proszę porównać ze swoimi.
// Tablica 2 wymiarowa reprezentująca planszę do gry
var result = new Array(new Array(3),new Array(3),new Array(3));
// Zmiana przechowująca oznaczenie gracza, który ma wykonać ruch (rozpoczynamy od kółka)
var player = ‚O’;
function start() {
// Pobieramy wszystkie komórki tabeli (td)
var tds = document.getElementsByTagName(‚td’);
// Iterujemy po tablicy z komórkami tabeli
for (var i=0; i< tds.length; i++) {
// Dodajemy "słuchacza" na zdarzenie kliknięcia myszką
tds[i].addEventListener(‚click’,function(e){
// Pobieramy atrybuty x i y, aby zidentyfikować pole na "planszy"
var x = this.getAttribute(‚x’);
var y = this.getAttribute(‚y’);
// Jeżeli pole nie było jeszcze wypełnione to je wypełniamy i sprawdzamy czy gra się już zakończyła (wygrana gracza lub remisem)
if ( !result[x][y] ) {
result[x][y] = player;
this.innerText = player;
if ( win(player) ) {
alert(‚wygrał gracz: ‚ + player);
return;
} else if ( draw() ) {
alert(‚remis’);
return;
}
// Przełączamy gracza
if ( player === ‚O’) {
player = ‚X’;
} else {
player = ‚O’;
}
} else {
// Informujemy gracza o niedozowolonym ruchu, w momencie gdy dane pole jest już wypełnione
alert(‚Niedozwolony ruch’);
}
}, false);
}
}
// Sprawdzenie czy wszystkie pola są już zajęte, jeżeli tak to remin.
// Wcześniej sprawdzaliśmy czy ktoś wygrał, więc nie potrzeba nam dodatkowego sprawdzenia
// True oznacza, że wszystkie pola są zajęte (więc remis), false że są jeszcze wolne pola
function draw() {
for(var i = 0; i < 3; i++) {
for(var j = 0; j < 3; j++) {
if ( !result[i][j] )
return false;
}
}
return true;
}
// Sprawdzenie czy gra została zakończona zwycieństwem zadanego gracza (wywoływane po ruchu gracza)
// True oznacza że zadany gracz wygrał, false że gra jeszcze jest nie rozstrzygnietą lub jest remis
function win(player) {
// sprawdzenie "skosów"
if((result[0][0] === player) && (result[1][1] === player) && (result[2][2] === player)) return true;
if((result[0][2] === player) && (result[1][1] === player) && (result[2][0] === player)) return true;
for(var i = 0; i < 3; i++)
{
// Sprawdzenie wierszy
if((result[i][0] === player) && (result[i][1] === player) && (result[i][2] === player)) return true;
// Sprawdzenie kolumn
if((result[0][i] === player) && (result[1][i] === player) && (result[2][i] === player)) return true;
}
return false;
}
Linux is like a wigwam: no windows, no gates, apache inside !
Najwięcej użytkowników online: 22
Obecnie online:
2 Gość(i)
Obecnie przeglądają tę stronę:
1 Gość(i)
Najaktywniejsi na forum:
S_Pawlowski: 8
EwaG: 7
Worie: 4
dbak: 4
cichon: 3
jackflower: 2
swiatloplis: 2
overkiller: 2
w.tyziniec: 1
Jolanta Balicka: 1
Statystyki użytkowników:
Posty gości: 4
Użytkownicy: 35
Moderatorzy: 0
Administratorzy: 1
Statystyki forum:
Grupy: 1
Fora: 7
Tematy:19
Posty: 38
Najnowsi użytkownicy:
Administratorzy: kkeller: 2