2024-06-24 15:02:51
  • Hello!
  • Whats ya doin?
  • ByeBye

[&]

3.142.255.225

Tablice oraz dostęp do nich (inwentarz gracza)

exercises: #js5-cw-tab-for.html

Ćwiczenie JS: tablice i iterowanie przez nie

Obsługa tablic, manipulacja zawartością tablic

Przygotowanie

  1. Otwórz poprzednio opracowywany skrypt obsługi Gry i Gracza
  2. Uzupełnij go o mechanizmy obsługi inwentarza / plecaka - tablice i warunki
  3. Mechanizmy inwentarza:
    • [1.1] zwracanie liczby elementów w inwentarzu
    • [1.2] zapisuj zasoby w tablicy na kolejnych pozycjach,
    • [1.2] wprowadź zabezpieczenia, jak kontrolę kluczy/zawartości oraz Limit 5 sztuk w inwentarzu
    • [1.3] pozbywa się elementu z tablicy zwracając jego wartość,
    • [1.4] odczytuj zawartość tworząc listę,
  4. [1.5] Przygotuj mechanizm do testowania: testowa tablica z elementami oraz funkcja, która uzupełnia automatycznie tablice przy użyciu elementów z testowej tablicy
  5. Przetestuj opracowane mechanizmy
1.1Struktura inwentarza
// poniżej istniejących zmiennych dot. gracza umieść te, dotyczące inwentarza
let limit = 5;
let list = [];
let count = function(){
   return list.length;	// zwraca liczbę elementów inwentarza
}
1.2Utwórz metodę pobrania elementu i zapisania w tablicy inwentarza
// 
let pick = function(item){
   if( list.length < limit )
   {	// jeżeli obecna długość listy (liczba elemntów w tablicy) jest mniejsza niż ustalony limit, to...
	list.unshift(item); // ...umieszcza element na ostatniej dostępnej pozycji inwentarza
   } else {
	console.log('No space left in the basket');
   }
}
1.3Usuwanie elementu z tablicy inwentarza
// usuwanie wraz ze sprawdzeniem
let drop = function(item){
   if( list.includes(item) )
   {	// sprawdź, czy eskazany element znajduje się w tablicy, jeżeli tak...
	let pos = list.indexOf(item);	// ...sprawdź jego pozycję (indeks)...
	let rem = list.splice(pos,1);	// ...pozbądź się go z tablicy
	console.log(item+' removed from Array');	// oraz zwróć jego wartość
   } else {
	console.log('There is no '+item+' in the basket');
   }
}
1.4Przegląd zawartości tablicy
// stosując mechanizm pętli FOR zostanie wylistowana zawartość tablicy
let overview = function(){
   if( list.length > 0 )
   {	// jeżeli w tablicy znajduje się min. 1 element
   for( let i=0; i<list.length; i++){
	let it = list[i];
	console.log('#'+i+' '+it);
   }
}
1.5Testowanie i autouzupełnianie tablicy
// niektóre metody służą tylko i wyłącznie do testowania innych metod
var items = ['apple','bannana','cherry','lime','orange','watermelon','peach'];
let populate = function(items){
   if( Array.isArray(items) ){	// sprawdzenie czy to jest tablica
      for( let i=0; i<limit; i++ )
		pick(items[i]);
   }
}

Podsumowanie