Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 30. 11. 2010 16:21

Tomasktm
Zelenáč
Příspěvky: 21
Reputace:   
 

Visual Basic - hadani slov

Dobry den, mam problem - profesorka zadala priklad na hadani slova ( uzivatel zada slovo - to se prevede na hvezdicky a pak druhy uzivatel hádá), mam to napsaný a funguje mi to, ale bohužel mi to profesorka neuznala , jelikoz tam mam GoTo a to nesmíme používat - Mám to prý předělat aby se mi to vracelo cyklem Do   Loop - ale tento cyklus neumím a nevím jak na to ??? Je to v programu Visual Basic - ConsoleApplication... Díky za pomoc


Module Module1

    Sub Main()
        Dim slovo() As Char
        Dim i As Integer
        Dim pocetznaku As Integer
        Dim pismeno As String
        Dim pocetpokusu As Integer
        Dim pokus As Integer
        Dim spousteni As String
        Dim zadani As String
start:
        System.Console.WriteLine("! ! ! Šibenice ! ! !")
        System.Console.Write("Klávesa Enter program spustí, slovo -konec- program ukončí:")
        spousteni = System.Console.ReadLine
        If spousteni = "konec" Then
            End
        Else
            GoTo zacatek
        End If
zacatek:
        System.Console.WriteLine()
        System.Console.Write("Zadejte slovo pro hádajícího: ")
        zadani = System.Console.ReadLine()
        Dim hadane As String = zadani.ToLower
        System.Console.Clear()
        Console.WriteLine("Slovo bylo vloženo do schránky, prosím předejte hru hráči dva a stiskněte Enter pro pokračování...")
        Console.ReadLine()
        System.Console.Clear()
        pocetznaku = Len(hadane)
        pocetpokusu = pocetznaku * 4
        REM
        System.Console.WriteLine("Hráči dva, hádáš slovo o " & pocetznaku & " znacích!")
        ReDim slovo(pocetznaku - 1)
        For i = 0 To pocetznaku - 1
            slovo(i) = "*"
        Next
        For pokus = 1 To pocetpokusu
            System.Console.WriteLine()
            System.Console.Write("Hledané slovo: ")
            System.Console.WriteLine(slovo)
            System.Console.WriteLine("Pokus číslo " & pokus & ", zbývá/jí " & pocetpokusu - pokus & " pokusů/y.")
            System.Console.WriteLine()

            System.Console.Write("Zadej písmeno: ")
            pismeno = System.Console.ReadLine()

hadej:      For i = 0 To pocetznaku - 1
                If hadane(i) = pismeno Then
                    slovo(i) = pismeno

                    If slovo = hadane Then
                        GoTo uhadnuto
                    End If
                End If
            Next
        Next
        System.Console.WriteLine("Lituji, neuhodl jsi. Hádané slovo bylo: " & hadane)
        System.Console.WriteLine("")
        GoTo start
uhadnuto:
        System.Console.WriteLine()
        System.Console.WriteLine("Gratuluji! Uhodl jsi slovo : " & hadane)
        System.Console.WriteLine("Uhodl jsi to na " & pokus & ". pokus z celkových " & pocetpokusu)
        System.Console.WriteLine()
        System.Console.ReadLine()
        System.Console.Clear()
        GoTo start
    End Sub

End Module

Offline

  • (téma jako vyřešené označil(a) jelena)

#2 30. 11. 2010 19:20

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: Visual Basic - hadani slov

Do ... Loop napriklad tady nebo tady jsem nasel.
Mohlo by to vypadat treba takhle:
(snazil jsem se co nejmensi upravy, ale vymenil jsem ty dve posledni casti na konci)

Module Module1

    Sub Main()
        Dim slovo() As Char
        Dim i As Integer
        Dim pocetznaku As Integer
        Dim pismeno As String
        Dim pocetpokusu As Integer
        Dim pokus As Integer
        Dim spousteni As String
        Dim zadani As String
        Dim uhadnuto As Boolean
        Do
            System.Console.WriteLine("! ! ! Šibenice ! ! !")
            System.Console.Write("Klávesa Enter program spustí, slovo -konec- program ukončí:")
            spousteni = System.Console.ReadLine
            If spousteni = "konec" Then
                End
            End If
            System.Console.WriteLine()
            System.Console.Write("Zadejte slovo pro hádajícího: ")
            zadani = System.Console.ReadLine()
            Dim hadane As String = zadani.ToLower
            System.Console.Clear()
            Console.WriteLine("Slovo bylo vloženo do schránky, prosím předejte hru hráči dva a stiskněte Enter pro pokračování...")
            Console.ReadLine()
            System.Console.Clear()
            pocetznaku = Len(hadane)
            pocetpokusu = pocetznaku * 4
            REM
            System.Console.WriteLine("Hráči dva, hádáš slovo o " & pocetznaku & " znacích!")
            ReDim slovo(pocetznaku - 1)
            For i = 0 To pocetznaku - 1
                slovo(i) = "*"
            Next
            uhadnuto = 0
            For pokus = 1 To pocetpokusu
                System.Console.WriteLine()
                System.Console.Write("Hledané slovo: ")
                System.Console.WriteLine(slovo)
                System.Console.WriteLine("Pokus číslo " & pokus & ", zbývá/jí " & pocetpokusu - pokus & " pokusů/y.")
                System.Console.WriteLine()

                System.Console.Write("Zadej písmeno: ")
                pismeno = System.Console.ReadLine()

                For i = 0 To pocetznaku - 1
                    If hadane(i) = pismeno Then
                        slovo(i) = pismeno
                        If slovo = hadane Then
                            uhadnuto = True
                        End If
                    End If
                Next
                If uhadnuto Then Exit For
            Next
            If uhadnuto Then
                System.Console.WriteLine()
                System.Console.WriteLine("Gratuluji! Uhodl jsi slovo : " & hadane)
                System.Console.WriteLine("Uhodl jsi to na " & pokus & ". pokus z celkových " & pocetpokusu)
                System.Console.WriteLine()
                System.Console.ReadLine()
                System.Console.Clear()
            Else
                System.Console.WriteLine("Lituji, neuhodl jsi. Hádané slovo bylo: " & hadane)
                System.Console.WriteLine("")
            End If
        Loop
    End Sub

End Module

Offline

 

#3 30. 11. 2010 19:39

Tomasktm
Zelenáč
Příspěvky: 21
Reputace:   
 

Re: Visual Basic - hadani slov

↑ Lumikodlak: Moc dekuji vypadá to jednoduse a funguje to.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson