Jak przetwarzać napisy
Implementacja algorytmu gry w wisielca w języku Java
Zapoznaj się z filmem i napisz program.

Film dostępny pod adresem /preview/resource/RvzRr5dzYWoPh
Film nawiązujący do treści materiału: Algorytmy tekstowe - gra w wisielca.
W tej sekcji zapoznasz się z alternatywną (do zaprezentowanej w poprzedniej sekcji) implementacją gry w wisielca.
Pierwszym krokiem jest zadeklarowanie dwóch zmiennych:
Pierwsza z nich o nazwie pozostaleProby to zmienna całkowita integer, która określa, ile prób pozostało graczowi na odgadnięcie słowa wymyślonego przez innego gracza (łańcuch znaków String wymyslone).
Kolejnym krokiem jest pobranie od użytkownika (w tym przypadku gracza) słowa, które drugi gracz będzie miał za zadanie odgadnąć. Ciąg znaków, który uzyskujemy za pomocą klasy Scanner oraz funkcji wbudowanej nextLine(), zapisujemy do zmiennej wymyslone.
Ponieważ użyta została zewnętrza klasa Scanner, należy pamiętać o dodaniu:
Deklarujemy tablicę znaków char[] o nazwie odgadywane, która będzie przechowywać ciąg znaków zawierający litery (w przypadku gdy gracz odgadł daną literę) oraz znaki podkreślenia (jeżeli dana litera nie została jeszcze odgadnięta).
Na samym początku gry nie są jeszcze odgadnięte żadne litery, więc wypełniamy zmienną odgadywane znakami podkreślenia.
Zmienna następnie jest wypisywana na ekran, aby drugi gracz znał długość słowa.
Następnie deklarujemy kolejne dwie zmienne:
boolean czyOdgadniete = false;- zmienna logiczna, określająca, czy gracz odgadł już pełne słowo (przyjmie wartośćtrue), czy nie (przyjmie wartośćfalse),String proba;- łańcuch znaków, do którego zapisywać będziemy to, co wprowadzi drugi gracz - literę lub całe słowo, które będzie chciał sprawdzić.
Deklarujemy pętlę while, w której będziemy pobierać od użytkownika kolejne litery (bądź całe słowa) i sprawdzać czy występują w wymyślonym przez pierwszego gracza wyrazie.
Tworzymy blok instrukcji warunkowej, która sprawdza, czy użytkownik wprowadził pojedynczy znak (długość równa 1), czy ciąg znaków (długość większa od 1).
W przypadku, gdy został wprowadzony pojedynczy znak, w pętli zostaje sprawdzone, czy wymyślone słowo zawiera podany znak – jeżeli tak, w kolejnej instrukcji warunkowej w tablicy znaków odgadywane zamieniane są znaki podkreślenia (w odpowiednich miejscach) na rzeczywiste litery. W przeciwnym przypadku (gdy użytkownik podał literę, która nie znajduje się wymyślonym przez pierwszego gracza wyrazie) wartość zmiennej pozostaleProby zostaje zmniejszona o 1.
Zdefiniujmy teraz operacje, które mają zostać wykonane w przypadku, gdy nie została wprowadzona pojedyncza litera, tylko ciąg znaków.
Sprawdzane jest, czy ciąg znaków, który podał gracz, zgadza się z wymyślonym słowem. Jeżeli tak, algorytm kończy działanie. W przeciwnym przypadku zmniejsza się liczba pozostałych prób.
Po wyjściu z pętli while wyświetlany jest końcowy komunikat o wynikach rozgrywki:
Oto kod całego programu:

Film dostępny pod adresem /preview/resource/RvzRr5dzYWoPh
Film nawiązujący do treści materiału: Algorytmy tekstowe - gra w wisielca.
Zaimplementuj algorytm wyszukujący w zadanym przez użytkownika ciągu znaków wszystkie podciągi o zadanej długości, w których wszystkie litery są różne.
Specyfikacja:
Dane:
ciagZnakow– łańcuch znakówdlPodlancucha– liczba naturalna; zmienna typu int
Wynik:
Program na wyjściu standardowym wypisze podciągi o zadanej długości, w których wszystkie litery są różne.

Film dostępny pod adresem /preview/resource/R16MxBlrHWSdv
Film nawiązujący do treści materiału: Algorytmy tekstowe.
Słownik
element algorytmu pozwalający na sprawdzenie jednego lub kilku warunków, a następnie zdefiniowanie, jakie czynności mają być wykonane, jeśli dane warunki są spełnione lub niespełnione (służy do sterowania programem)
ciąg znaków o ustalonej wcześniej lub dowolnej długości, gdzie znaki to kolejno zapisane bajty w pamięci