using System.Collections.Generic;
public class HangmanClass
public static List<char> ZodisKuriNorimaAtspetiBruksneliais(int ilgis)
List<char> zodisBruksneliais = new();
zodisBruksneliais.Add('_');
return zodisBruksneliais;
public static bool PatikrintiVartotojoIvesti(string ivestis)
ivestis = ivestis.Trim();
Console.WriteLine("Iveskite bent viena raide.");
public static void SpausdintiSpetasRaides(List<char>spetosRaides)
Console.WriteLine("Spetos raides:");
foreach (var item in spetosRaides)
Console.Write($"{item}, ");
Console.WriteLine("-----------");
public static void SpausdintiSpetusZodzius(List<string>spetiZodziai)
Console.WriteLine("Speti zodziai:");
foreach (var item in spetiZodziai)
Console.Write($"{item}, ");
Console.WriteLine("-----------");
public static void SpausdintiZodiSuBruksneliais (List<char> zodisBruksneliais)
foreach (var item in zodisBruksneliais)
Console.Write($"{item} ");
public static void VisuSarasuSpausdinimas(List<char>spetosRaides, List<string>spetiZodziai, List<char> zodisBruksneliais)
SpausdintiZodiSuBruksneliais(zodisBruksneliais);
SpausdintiSpetasRaides(spetosRaides);
SpausdintiSpetusZodzius(spetiZodziai);
public static void ArZaistiIsNaujo()
Console.WriteLine("Ar norite pradeti nauja zaidima?");
Console.WriteLine("t - taip,");
Console.WriteLine("n - ne, baigti zaidima.");
var arTesiam = Console.ReadKey().KeyChar;
Console.WriteLine("Pradedame nauja zaidima");
Console.WriteLine("Aciu uz zaidima. Zaidimo pabaiga.");
public static bool ArToksSpejimasJauBuvo(string arJauSpetas, List<string> spetiZodziai)
bool toksZodisJauSpetas = false;
foreach (var item in spetiZodziai)
toksZodisJauSpetas = true;
Console.WriteLine("Toks zodis jau buvo spetas. Irasykite kita.");
return toksZodisJauSpetas;
public static bool ArToksSpejimasJauBuvo(char arJauSpetas, List<char> spetosRaides)
bool toksZodisJauSpetas = false;
foreach (var item in spetosRaides)
toksZodisJauSpetas = true;
Console.WriteLine("Tokia raide jau buvo speta. Irasykite kita.");
return toksZodisJauSpetas;
public static string ZodzioInicializavimas(int pasirinkimas)
string[] salys = {"Latvija", "Estija", "Bulgarija", "Kinija", "Mozambikas", "Tailandas", "Danija", "Prancuzija", "Uganda", "Alzyras", "Zibutis"};
int ilgis = salys.Length;
Random rand = new Random();
int atsitiktinisPasirinkimas = rand.Next(ilgis);
string zodisKuriNorimaAtspetiPaduotasKaipString = salys[atsitiktinisPasirinkimas];
return zodisKuriNorimaAtspetiPaduotasKaipString.ToUpper();
string[] miestai = {"Latvija", "Estija", "Bulgarija", "Kinija", "Mozambikas", "Tailandas", "Danija", "Prancuzija", "Uganda", "Alzyras", "Zibutis"};
int ilgis = miestai.Length;
Random rand = new Random();
int atsitiktinisPasirinkimas = rand.Next(ilgis);
string zodisKuriNorimaAtspetiPaduotasKaipString = miestai[atsitiktinisPasirinkimas];
return zodisKuriNorimaAtspetiPaduotasKaipString.ToUpper();
string[] medziai = {"Latvija", "Estija", "Bulgarija", "Kinija", "Mozambikas", "Tailandas", "Danija", "Prancuzija", "Uganda", "Alzyras", "Zibutis"};
int ilgis = medziai.Length;
Random rand = new Random();
int atsitiktinisPasirinkimas = rand.Next(ilgis);
string zodisKuriNorimaAtspetiPaduotasKaipString = medziai[atsitiktinisPasirinkimas];
return zodisKuriNorimaAtspetiPaduotasKaipString.ToUpper();
public static List<char> PatikrintiArSpejimasGeras(List<char> spetosRaides, char vartotojoSpetaRaide, string zodisKuriNorimaAtspetiPaduotasKaipString, List<char> zodisBruksneliais)
spetosRaides.Add(vartotojoSpetaRaide);
bool arTeisingasSpejimas = false;
foreach (var item in zodisKuriNorimaAtspetiPaduotasKaipString)
if (vartotojoSpetaRaide == item )
zodisBruksneliais[indexas] = vartotojoSpetaRaide;
arTeisingasSpejimas = true;
Console.WriteLine("Jus atspejote raide!");
Console.WriteLine("Deja tokios raides nera");
return zodisBruksneliais;
public static void AtspausdintiPagrindiniPasirinkimuMeniu()
Console.WriteLine("Galimos temos:");
Console.WriteLine("1. Salys");
Console.WriteLine("2. Miestai");
Console.WriteLine("3. Medziu pavadinimai");
public static string PagrindinioPasirinkimuMeniuTemosPasirinkimas()
bool arPasirinkimasKlaidingas = true;
while (arPasirinkimasKlaidingas)
Console.WriteLine("Pasirinkite tema, irasydami jos numeri:");
string irasas = Console.ReadLine();
if (PatikrintiVartotojoIvesti(irasas))
string isrinktasZodis = ZodzioInicializavimas(1);
arPasirinkimasKlaidingas = false;
string isrinktasZodis = ZodzioInicializavimas(2);
arPasirinkimasKlaidingas = false;
string isrinktasZodis = ZodzioInicializavimas(3);
arPasirinkimasKlaidingas = false;
Console.WriteLine("Prasom pasirinkti tema is pateikto saraso.");
AtspausdintiPagrindiniPasirinkimuMeniu();
arPasirinkimasKlaidingas = true;
Console.WriteLine("Prasom pasirinkti tema is pateikto saraso.");
AtspausdintiPagrindiniPasirinkimuMeniu();
arPasirinkimasKlaidingas = true;
public static void Main(string[] args)
bool arPirmaKartaPaleistaPrograma = true;
if (arPirmaKartaPaleistaPrograma)
AtspausdintiPagrindiniPasirinkimuMeniu();
arPirmaKartaPaleistaPrograma = false;
string zodisKuriNorimaAtspetiPaduotasKaipString = PagrindinioPasirinkimuMeniuTemosPasirinkimas();
Console.WriteLine($"Teisingas zodis****{zodisKuriNorimaAtspetiPaduotasKaipString}");
Console.WriteLine($"Teisingas zodis****{zodisKuriNorimaAtspetiPaduotasKaipString}");
Console.WriteLine($"Teisingas zodis****{zodisKuriNorimaAtspetiPaduotasKaipString}");
int zodzioIlgis = zodisKuriNorimaAtspetiPaduotasKaipString.Length;
var zodisBruksneliais = ZodisKuriNorimaAtspetiBruksneliais(zodzioIlgis);
List<char> spetosRaides = new();
List<string>spetiZodziai = new();
SpausdintiZodiSuBruksneliais(zodisBruksneliais);
int maxBandymuSkaicius = 7;
while(bandymai<maxBandymuSkaicius)
Console.WriteLine("Iveskite spejama raide:");
string vartotojoIvestis = Console.ReadLine().ToUpper();
if (PatikrintiVartotojoIvesti(vartotojoIvestis))
if (vartotojoIvestis.Length > 1)
while(ArToksSpejimasJauBuvo(vartotojoIvestis, spetiZodziai))
var pasikartojimas = vartotojoIvestis;
vartotojoIvestis = Console.ReadLine().ToUpper();
if (!PatikrintiVartotojoIvesti(vartotojoIvestis))
vartotojoIvestis = pasikartojimas;
if (vartotojoIvestis.Length <= 1)
Console.WriteLine("Zodi turi sudaryti daugiau nei vienas simbolis");
vartotojoIvestis = pasikartojimas;
if (vartotojoIvestis == zodisKuriNorimaAtspetiPaduotasKaipString)
Console.WriteLine("Atspejote zodi!");
Console.WriteLine($"Teisingas zodis: {zodisKuriNorimaAtspetiPaduotasKaipString}");
bandymai=maxBandymuSkaicius;
Console.WriteLine("nepavyko atspeti zodzio...");
spetiZodziai.Add(vartotojoIvestis);
VisuSarasuSpausdinimas(spetosRaides, spetiZodziai, zodisBruksneliais);
char vartotojoSpetaRaide =char.Parse(vartotojoIvestis);
while(ArToksSpejimasJauBuvo(vartotojoSpetaRaide, spetosRaides))
var pasikartojimas = vartotojoSpetaRaide;
vartotojoIvestis = Console.ReadLine().ToUpper();
vartotojoSpetaRaide =char.Parse(vartotojoIvestis);
if (!PatikrintiVartotojoIvesti(vartotojoIvestis))
vartotojoSpetaRaide = pasikartojimas;
Console.WriteLine($"Teisingas zodis*222***{zodisKuriNorimaAtspetiPaduotasKaipString}");
string z = zodisKuriNorimaAtspetiPaduotasKaipString;
zodisBruksneliais = PatikrintiArSpejimasGeras(spetosRaides, vartotojoSpetaRaide, z, zodisBruksneliais);
VisuSarasuSpausdinimas(spetosRaides, spetiZodziai, zodisBruksneliais);