fotki 3

Na ekranie wyświetlane są cztery zdjęcia i tajemnicze podpowiedzi. Zdjęcia są powiększonymi fragmentami naszej szkoły, np. ułamek kredy na tablicy, wycinek płytki w ubikacji, część dywanu w gabinecie dyrektora, itp. Będziesz musiał szybko wybrać to właściwe. Wyniki indywidualne i klasowe są zapisywane, a statystyki prezentowane na szkolnym telebimie. HTML, CSS, JS, PHP,… 500 zdjęć, 2000 wierszy kodu, 60000 znaków.

fotki 1fotki 2

30 letnie doświadczenie w tworzeniu programów komputerowych, ale zupełny brak praktyki w PHP, to mieszanka wybuchowa, która zmusiła mnie do wielogodzinnego szukania za pomocą „googla” nawet najprostszych rozwiązań. Wymiana danych poprzez pliki tekstowe, a nie - jak by to wypadało – w oparciu o system bazodanowy. Jeśli jeszcze raz zabiorę się za aplikację, to powstanie wersja na smartfona.

Fragment programu odpowiedzialny za: wczytanie poprzednich wyników, zapisanie wylosowanych fotek, sprawdzanie odliczania czasu, sprawdzanie współrzednych klikniętego obrazka i zapisywanie wyników...

//odejmować po 10 sekundach czy nie liczyć
	$odejmowac = false;
//wczytanie wyników do tablicy 
//WYNIKI.TXT ilosc odświeżen ; ilosc klikniec ; ilosc poprawnych
	$fil = fopen('wyniki.txt', 'r');
	$linia=fread($fil,1024);
	$wyniki=explode(';',$linia);
	fclose($fil);
//zapisane poprzednio losowanie odczytujemy
	$losy1 = file('losy.txt');
	$losy2 ';
	$wyniki[0]=$wyniki[0]+1;
//a może jednak zlicza wszystko nawet niekliknięte po 10 sekundach i na minus	
	if ($odejmowac == true) {$wyniki[1] = $wyniki[1] + 1;}
//tak można sprawdzać który jest kliknięty
	for ($pp = 1; $pp <= 4; $pp++) {
		$x = 'xx'.$pp.'_x';
		$y = 'xx'.$pp.'_y';
//gdy kliknięto w obrazek
		if (isset($_POST[$x])) {
//zwiększamy tylko licznik klikniętych
//gdy samo się odświeży po 10 sekundach - nie liczymy
		if ($odejmowac == false) {$wyniki[1] = $wyniki[1] + 1;}
//gdy poprawny wynik zwiekszamy licznik poprawnych
			if ($losy1[$pp] == $losy1[0]){ $wyniki[2] = $wyniki[2] + 1;}
//wyzerować to co było zapełnione
			$_POST=array(); //też nie działa
		}
	}
	
//zapisanie wyników do tablicy
	$fil = fopen('wyniki.txt', 'w');
	$linia=implode(';',$wyniki);
	fwrite($fil,$linia);
	fclose($fil);
	$_POST=array();//nie zeruje POST i cały czas pamięta poprzedni wynik!!

I cały kod dla zainteresowanych

Wacław Libront