Discuss Scratch

Arcio123
New Scratcher
12 posts

Tablice (listy)

Po wielu próbach stwierdziłem, że nie można za pomocą pętli tworzyć nowych tablic i zacząłem się zastanawiać jaka opcja jest lepsza:
1. Napisanie funkcji tworzącej tablice wielowymiarowe.
2. Używanie bardzo długiej tablicy
Proszę o uczciwe głosy i dobre pomysły.
Pozdrawiam,
Arcio123
Opisek
Scratcher
1000+ posts

Tablice (listy)

Sam nie wiem :s Na scratch chyba lepiej zrobić długą tablicę i zapisywać pozycję “nowego działu” w innej tablicy, tak jakbyśmy pocięli tamtą tablicę na części i pozapisywali w osobnej tablicy gdzie te części się kończą.

Chociaż sam kiedyś zastanawiałem się nad tablicą wielowymiarową, nie uważam tego za stosowne na Scratch.

Last edited by Opisek (Dec. 12, 2014 21:18:06)

Arcio123
New Scratcher
12 posts

Tablice (listy)

Dziękuję Opisek za radę.
Jest tylko jeden problem … ja muszę stworzyć 5000^5001-1 tablic każdą zapełnioną 127 polami, wiec liczę na dalsze sugestie.
Cześć
Opisek
Scratcher
1000+ posts

Tablice (listy)

Myślałem nad wielowymiarówką i wymyśliłem (niestety TYLKO cyfry (0-9)):

Tworzenie tablicy
kiedy kliknięto zieloną flagę
ustaw [0 v] na []
powtórz (poziomy wymiar tablicy::operators) razy
ustaw [0 v] na (połącz (0::variables) i [0])
end
usuń (wszystko v) z [tablica v]
powtórz (pionowy wymiar tablicy::operators) razy

dodaj (0::variables) do [tablica v]
end

Wczytywanie liczby z tablicy
zapytaj [Pozycja x?] i czekaj
ustaw [x v] na (odpowiedź)
zapytaj [Pozycja y?] i czekaj
ustaw [y v] na (odpowiedź)
ustaw [liczba v] na (litera (x::variables) z (element (y::variables) z [tablica v]))

Zamiana liczby
zapytaj [Pozycja x?] i czekaj
ustaw [x v] na (odpowiedź)
zapytaj [Pozycja y?] i czekaj
ustaw [y v] na (odpowiedź)
zapytaj [Cyfra?] i czekaj
ustaw [cyfra v] na (odpowiedź)
ustaw [liczba v] na (element (y::variables) z [tablica v])
ustaw [pozycja v] na [0]
ustaw [nowa liczba v] na []
powtórz ((x::variables)-(1)) razy
zmień [pozycja v] o (1)
ustaw [nowa liczba v] na (połącz (nowa liczba::variables) i (litera (pozycja::variables) z (liczba)))
end
zmień [pozycja v] o (1)
ustaw [nowa liczba v] na (połącz (nowa liczba::variables) i (cyfra::variables))
powtórz ((długość (liczba))-(x::variables)) razy
zmień [pozycja v] o (1)
ustaw [nowa liczba v] na (połącz (nowa liczba::variables) i (litera (pozycja::variables) z (liczba)))
end
zamień element (y::variables) z [tablica v] na (nowa liczba::variables)

Liczę na wielkie podziękowania w projekcie.
Zrobienie tego nie zajęło trzech minut, a tablica wielowymiarowa na Scratch to naprawdę wyczyn.

Tutaj projekt: Klik!
Wszystko działa pięknie i szybko

Last edited by Opisek (Dec. 13, 2014 10:56:23)

Arcio123
New Scratcher
12 posts

Tablice (listy)

DZIEKUJĘ
Arcio123
maks1
Scratcher
2 posts

Tablice (listy)

możecie mi pomóc ja robię pokera (nie na prawdziwe pieniądze duuh) i mama mi poradziła tablice i wysłała tutaj potrzebuję takiej która sprawi żeby kart się nie powtarzały ktoś pomoże?

Last edited by maks1 (Nov. 5, 2016 11:24:31)

OpiGames
Scratcher
100+ posts

Tablice (listy)

Proste!

Użyję dla przykładu liczb od 1 do 10.
Liczby zostaną 10 razy wylosowane, tak, żeby żadna się nie powtarzała.

usuń (wszystko v) z [los v] // Tablica 'los' dla wylosowanych liczb.
powtórz (10) razy // Liczby zostaną wylosowane 10 razy
ustaw [los v] na [null]
powtarzaj aż <<nie <[los v] zawiera (los) ?>> i <nie <(los) = [null]>>> // Sprawdza, czy wylosowanej liczby nie ma już w tablicy
ustaw [los v] na (losuj od (1) do (10))
end
dodaj (los) do [los v]
end
maks1
Scratcher
2 posts

Tablice (listy)

chy już rozumiem oco chodzi mój program zmienia cyfry na karty które pojawiają się na liści zamiast cyfr drobna modyfikacja by podziała BTW mam sbne wartoci dla każdej karty pomożesz ?

Last edited by maks1 (Nov. 5, 2016 16:49:49)

OpiGames
Scratcher
100+ posts

Tablice (listy)

Jeśli kart jest 13 dla każdego koloru, a kolorów jest 4, to łącznie kart mamy 52, więc do systemu losowania dajemy liczby od 1 do 52.

Teraz wystarczy mały system rozpoznający karty:

ustaw [kolor v] na ([sufit v] z ((los::variables) / (13)))
jeżeli <(kolor) = [1]> to
ustaw [kolor v] na [kier]
end
jeżeli <(kolor) = [2]> to
ustaw [kolor v] na [karo]
end
jeżeli <(kolor) = [3]> to
ustaw [kolor v] na [trefl]
end
jeżeli <(kolor) = [4]> to
ustaw [kolor v] na [pik]
end
ustaw [wartosc v] na ((los::variables) - (([podłoga v] z ((los::variables) / (13))) * (13)))
jeżeli <(wartosc) = [1]> to
ustaw [wartosc v] na [as]
end
jeżeli <(wartosc) = [11]> to
ustaw [wartosc v] na [waler]
end
jeżeli <(wartosc) = [12]> to
ustaw [wartosc v] na [dama]
end
jeżeli <(wartosc) = [13]> to
ustaw [wartosc v] na [król]
end
powiedz (połącz (połącz [Wylosowana karta to ] i (połącz (wartosc) i [ ])) i (kolor))
To puste pole w ostatnim bloku to spacja, żeby był odstęp między wartością i kolorem.
Mam nadzieję, że trafię do podziękowań

P.S. Widzę, że na górze (los) jest listą. Oczywiście powinien być zmienną, myślę, że wiesz o co chodzi.


Last edited by OpiGames (Nov. 6, 2016 20:40:09)

pawelkat
Scratcher
6 posts

Tablice (listy)

(help () do (10))
AS201834444
Scratcher
24 posts

Tablice (listy)

Użytkownik osiągnął wynik 43 punkt ,a następny gracz zobaczył jego wynik na liście. Jak to zrobić???
AANNTTOONNII
Scratcher
1000+ posts

Tablice (listy)

Zobacz tą dyskusję.

Powered by DjangoBB