Discuss Scratch
- Discussion Forums
- » Polski
- » Pomoc z funkcją "lista"
- Szymon_________
-
1 post
Pomoc z funkcją "lista"
Witam serdecznie,
Chciałbym zrobić algorytm, który sprawdza czy wpisana odpowiedź zawiera element z utworzonej przeze mnie listy.
Przykładowo, utworzyłem listę zawierającą znaki specjalne.

Teraz chciałbym, aby jeżeli ktoś w odpowiedzi (na zadane przez duszka pytanie) użyje znaku specjalnego to będzie wyskakiwał komunikat “dobrze” , a jeżeli nie użyje znaku specjalnego w odpowiedzi, to wyskoczy komunikat “Źle”.
Na ten moment algorytm działa tylko wtedy jeżeli odpowiedź jest dokładnie taka jak jeden z elementów na liście.
Przykład: odpowiedź “@” jest zgodna ze elementem na 2 na liście, pod którym kryje się właśnie ten znak specjalny (@).
Natomiast jeżeli odpowiedź zawiera elelement z listy, ale również inne dodatkowe znaki np. “tata@” to algorytm nie działa, a chciałbym, żeby w takim wypadku również wyskakiwał komunikat “dobrze”.
Podsumowując poszukuję rozwiązania, które będzie sprawdzać całą odpowiedź (ciąg znaków), a nie tylko porównywać 1 do1 czy odpowiedź jest zgodna z którymś z elementów na liście. Jeżeli chodź jeden znak z ciągu znaków zawartych w odpowiedzi zawiera element listy to chcę aby algorytm to wyłapywał i żeby wyskakiwał komunikat “dobrze”
Z góry dziękuję za wszystkie sugestie.
Pozdrawiam Szymon
Chciałbym zrobić algorytm, który sprawdza czy wpisana odpowiedź zawiera element z utworzonej przeze mnie listy.
Przykładowo, utworzyłem listę zawierającą znaki specjalne.

Teraz chciałbym, aby jeżeli ktoś w odpowiedzi (na zadane przez duszka pytanie) użyje znaku specjalnego to będzie wyskakiwał komunikat “dobrze” , a jeżeli nie użyje znaku specjalnego w odpowiedzi, to wyskoczy komunikat “Źle”.
Na ten moment algorytm działa tylko wtedy jeżeli odpowiedź jest dokładnie taka jak jeden z elementów na liście.
Przykład: odpowiedź “@” jest zgodna ze elementem na 2 na liście, pod którym kryje się właśnie ten znak specjalny (@).
Natomiast jeżeli odpowiedź zawiera elelement z listy, ale również inne dodatkowe znaki np. “tata@” to algorytm nie działa, a chciałbym, żeby w takim wypadku również wyskakiwał komunikat “dobrze”.
Podsumowując poszukuję rozwiązania, które będzie sprawdzać całą odpowiedź (ciąg znaków), a nie tylko porównywać 1 do1 czy odpowiedź jest zgodna z którymś z elementów na liście. Jeżeli chodź jeden znak z ciągu znaków zawartych w odpowiedzi zawiera element listy to chcę aby algorytm to wyłapywał i żeby wyskakiwał komunikat “dobrze”
Z góry dziękuję za wszystkie sugestie.
Pozdrawiam Szymon

- KaaBEL_sk
-
100+ posts
Pomoc z funkcją "lista"
Dzień (czy raczej wieczór) dobry Szymonie
Gdy wszystkie elementy listy są tworzone jedynym znakiem, blok listy wraca ciąg znaków połączonych (nie wklejając spacji). Moźna tego sprawdzić tak:
Mam nadzieje źe wspomoźe.
Takže Pozdrawiam
Gdy wszystkie elementy listy są tworzone jedynym znakiem, blok listy wraca ciąg znaków połączonych (nie wklejając spacji). Moźna tego sprawdzić tak:
ukryj :: lookwtedy moźna jej uźyć do szukania znaku spacjalnego wpośród ciągu
ustaw [i v] na (0) :: variables
powtórz (długość [znakispecjalne v] :: list) razy :: control
jeźeli <(długość (element (i) z [znakispecjalne v] :: list) :: operators) = (1)> to {
zmień [i v] o (1) :: variables
} w preciwnym razie {
zapytaj (połącz [napraw element: ] i (i) :: operators) i czekaj :: sensing
} :: control
end
zapytaj (połącz [dobra robota: ] i (znakispecjalne) :: operators) i czekaj :: sensing
ukryj :: lookW przypadku gdy lista nie jest niezbędna da się blok listy poprostu zamienić w ciąg znaków specjalnych.
ustaw [i v] na (0) :: variables
powtórz (długość (odpowiedź :: sensing) :: operators) razy :: control
jeźeli <Czy (znakispecjalne :: list) zawiera (litera (i) z (odpowiedź :: sensing)) ? :: operators)> to {
zapytaj [dobrze] i czekaj :: sensing
} w preciwnym razie {
zmień [i v] o (1) :: variables
} :: control
<Czy [!@#$%^&*{...] zawiera (litera (i) z (odpowiedź :: sensing)) ? :: operators)>
Mam nadzieje źe wspomoźe.
Takže Pozdrawiam
- Opisek
-
1000+ posts
Pomoc z funkcją "lista"
Odpowiedź powyżej działa świetnie jeżeli tylko chcemy sprawdzić pojedyńcze litery. Jeżeli jednak nas interesuje całe słowo, to musimy trochę zmodyfikować środek pętli.
W tym projekcie jest zaprezentowane w jaki sposób możemy wyszukać ciąg liter w innym ciągu. Dałbym sobie nogę urwać, że gdzieś na forum opisałem w szczegółach jak ta metoda działa, po kilku godzinach przeszukiwania starych postów się jednak poddałem.
Jako ciekawostka, istnieje dużo róźnych algorytmów na rozwiązanie tego problemu. Metoda zaprezentowana przeze mnie powyżej należy do wolniejszych, co jednak wystarcza jeśli chodzi o Scratch.
W tym projekcie jest zaprezentowane w jaki sposób możemy wyszukać ciąg liter w innym ciągu. Dałbym sobie nogę urwać, że gdzieś na forum opisałem w szczegółach jak ta metoda działa, po kilku godzinach przeszukiwania starych postów się jednak poddałem.
Jako ciekawostka, istnieje dużo róźnych algorytmów na rozwiązanie tego problemu. Metoda zaprezentowana przeze mnie powyżej należy do wolniejszych, co jednak wystarcza jeśli chodzi o Scratch.
- Discussion Forums
- » Polski
-
» Pomoc z funkcją "lista"