Tablice oraz dostęp do nich (inwentarz gracza)
exercises: #js5-cw-tab-for.html
Zasoby lekcji
Ćwiczenie JS: tablice i iterowanie przez nie
Obsługa tablic, manipulacja zawartością tablic
Przygotowanie
- Otwórz poprzednio opracowywany skrypt obsługi Gry i Gracza
- Uzupełnij go o mechanizmy obsługi inwentarza / plecaka - tablice i warunki
- 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ę,
- [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
- Przetestuj opracowane mechanizmy
// 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
}
//
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');
}
}
// 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');
}
}
// 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);
}
}
// 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]);
}
}