Moje hra - přičítání život - chyba Vyřešeno

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
Skelller
Level 2
Level 2
Příspěvky: 222
Registrován: červenec 14
Bydliště: Opava
Pohlaví: Muž
Stav:
Offline

Moje hra - přičítání život - chyba  Vyřešeno

Příspěvekod Skelller » 27 zář 2014 20:18

Ahoj.. Zrovna dělám konzolovou hru.. neumím najít chybu.. Když dám všechny body do obrany nepřítele to léči.. nevíte proč?

Kód: Vybrat vše

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Bojovka
{
    class postava
    {
        public string jmeno;
        public int utok = 0;
        public int obrana = 0;
        public int zivoty;
        public int bodyrozdeleni = 35;

        public void VyberAtributy()
        {
            Console.WriteLine("----------------");
            Console.WriteLine(jmeno);
            Console.WriteLine("Útok: " + utok);
            Console.WriteLine("Obrana: " + obrana);
            Console.WriteLine("Životy " + zivoty);
            Console.WriteLine("----------------");
        }
        public void RozdeleniAtributu()
        {
            Console.WriteLine("Zbývá rozdělit " + bodyrozdeleni + " bodů");
            Console.WriteLine("Které dovednosti chcete zlepšit?");
            Console.WriteLine("U pro útok");
            Console.WriteLine("O pro obranu");
        }
        public int VyhodnoceniObrany()
        {
            int konecnyutok = utok - obrana;
            return konecnyutok;
        }

        public void DalsiNepratele(string Jmeno, int Utok, int Obrana, int Zivoty)
        {
            jmeno = Jmeno;
            utok = Utok;
            obrana = Obrana;
            zivoty = Zivoty;
        }
    }
    class Program
    {

        static void Main(string[] args)
        {
           
            //Vytvoření všeho a rozdělení atributů
            postava postavahrace = new postava();
            postava nepritel1 = new postava();
           
            Console.WriteLine("Zadejte prosím svoji přezdívku: ");
            postavahrace.zivoty = 100;
            postavahrace.jmeno = Console.ReadLine();
            Console.WriteLine("Vytvořte postavu rozdělením bodů mezi jednotlivé atributy");
            while (postavahrace.bodyrozdeleni > 0)
            {
                postavahrace.VyberAtributy();
                postavahrace.RozdeleniAtributu();

                    switch (Console.ReadLine())
                    {
                        case "U":
                            postavahrace.bodyrozdeleni -= 5;
                            postavahrace.utok += 5;
                            postavahrace.VyberAtributy();
                            postavahrace.RozdeleniAtributu();
                            break;

                        case "O":
                            postavahrace.bodyrozdeleni -= 5;
                            postavahrace.obrana += 5;
                            postavahrace.VyberAtributy();
                            postavahrace.RozdeleniAtributu();
                            break;

                        default:
                            Console.WriteLine("Neplatný vstup!");
                            break;
                    }
                    if (postavahrace.bodyrozdeleni == 0)
                    {
                        Console.WriteLine();
                    }
                }

                //Bojování proti nepřátelům
                Random nahodnacisla = new Random();
                nepritel1.DalsiNepratele("Kostlivec", 20, 10, 80);
                Console.WriteLine("Potkal jsi kostlivce, který má tyto atributy");
                nepritel1.VyberAtributy();
                Console.WriteLine("Chceš na něho zaútočit? [A/N]");
                if (Console.ReadLine() == "A")
                {
                    Console.WriteLine();
                    Console.WriteLine("Souboj začíná!");
                    Console.WriteLine("----------------");

                    while (postavahrace.zivoty > 0 && nepritel1.zivoty > 0)
                    {
                        int konecnyutokhrace = postavahrace.utok - nepritel1.obrana;
                        int konecnyutoknepritele = nepritel1.utok - postavahrace.obrana;
                        if (postavahrace.obrana > konecnyutoknepritele)
                        {
                            konecnyutoknepritele = 0;
                        }
                        else if (nepritel1.obrana > konecnyutokhrace)
                        {
                            konecnyutokhrace = 0;
                        }
                        Console.WriteLine("Útok začíná");
                        while (true)
                        {
                            if (postavahrace.zivoty <= 0 || nepritel1.zivoty <= 0)
                            {
                                break;
                            }
                            nepritel1.zivoty -= konecnyutokhrace;
                            postavahrace.zivoty -= konecnyutoknepritele;
                            Console.WriteLine("Po útoku máš " + postavahrace.zivoty + " životů");
                            Console.WriteLine("Kostlivec má " + nepritel1.zivoty + " životů");
                            Console.WriteLine("Pro další útok stiskni libovolnou klávesu");
                            Console.ReadKey();

                        }
   
                    }
                }
               
           


            Console.ReadKey();
        }
    }
}
Notebook Acer Aspire E15 E5-571G-57N2
==========================
Procesor: Intel i5-5200U
Grafika: NVIDIA GeForce GT840M
RAM: 8GB DDR3

Reklama
Uživatelský avatar
Skelller
Level 2
Level 2
Příspěvky: 222
Registrován: červenec 14
Bydliště: Opava
Pohlaví: Muž
Stav:
Offline

Re: Moje hra - přičítání život - chyba

Příspěvekod Skelller » 28 zář 2014 13:06

Fakt nikdo neví? Můžu nějak pomoct v orientaci kodu?
Notebook Acer Aspire E15 E5-571G-57N2
==========================
Procesor: Intel i5-5200U
Grafika: NVIDIA GeForce GT840M
RAM: 8GB DDR3

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Moje hra - přičítání život - chyba

Příspěvekod CZechBoY » 28 zář 2014 21:48

Nechce se mi to číst jak je to dlouhý :D
Se koukni kolik odebíráš a jak se k tý hodnotě přistupuje...
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

omilis
Level 1.5
Level 1.5
Příspěvky: 118
Registrován: červenec 09
Pohlaví: Muž
Stav:
Offline

Re: Moje hra - přičítání život - chyba

Příspěvekod omilis » 01 říj 2014 20:17

Nevím jestli si už na to přišel, ale problém bude nejspíše v této podmínce

Kód: Vybrat vše

                   
if (postavahrace.obrana > konecnyutoknepritele)
{
     konecnyutoknepritele = 0;
}
else if (nepritel1.obrana > konecnyutokhrace)
{
     konecnyutokhrace = 0;
}

Problém je, že ta druhá podmínka se vůbec nevyhodnocuje, pokud platí ta první. Nemělo by tam být to else.

Uživatelský avatar
Skelller
Level 2
Level 2
Příspěvky: 222
Registrován: červenec 14
Bydliště: Opava
Pohlaví: Muž
Stav:
Offline

Re: Moje hra - přičítání život - chyba

Příspěvekod Skelller » 02 říj 2014 11:23

Díky omilis.. Vyřešil jsem to tak, že tu podmínku else if jsem hodil jako vnořenou do té první ;)
Notebook Acer Aspire E15 E5-571G-57N2
==========================
Procesor: Intel i5-5200U
Grafika: NVIDIA GeForce GT840M
RAM: 8GB DDR3

omilis
Level 1.5
Level 1.5
Příspěvky: 118
Registrován: červenec 09
Pohlaví: Muž
Stav:
Offline

Re: Moje hra - přičítání život - chyba

Příspěvekod omilis » 02 říj 2014 18:28

Když to dáš jako vnořenou, tak to taky nebude správně. Udělej to jako dvě nezávislé podmínky.

Kód: Vybrat vše

                 
if (postavahrace.obrana > konecnyutoknepritele)
{
     konecnyutoknepritele = 0;
}


if (nepritel1.obrana > konecnyutokhrace)
{
     konecnyutokhrace = 0;
}

kulisak6
nováček
Příspěvky: 10
Registrován: červenec 14
Pohlaví: Muž
Stav:
Offline

Re: Moje hra - přičítání život - chyba

Příspěvekod kulisak6 » 02 říj 2014 22:00

nic vice nez souhlasit

Uživatelský avatar
Skelller
Level 2
Level 2
Příspěvky: 222
Registrován: červenec 14
Bydliště: Opava
Pohlaví: Muž
Stav:
Offline

Re: Moje hra - přičítání život - chyba

Příspěvekod Skelller » 04 říj 2014 16:38

A co by se mohlo stát kdyby to bylo v té vnořené?
Notebook Acer Aspire E15 E5-571G-57N2
==========================
Procesor: Intel i5-5200U
Grafika: NVIDIA GeForce GT840M
RAM: 8GB DDR3

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Moje hra - přičítání život - chyba

Příspěvekod faraon » 04 říj 2014 21:39

Co by se mohlo stát? Třeba to že se ta druhá podmínka nikdy neprovede ;-)
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Chyba hardware. Příloha(y)
    od Steage7717 » 10 lis 2024 16:29 » v Problémy s hardwarem
    4
    3266
    od Steage7717 Zobrazit poslední příspěvek
    12 lis 2024 18:49
  • Chyba CPU na desce
    od petan320 » 24 bře 2025 15:29 » v Problémy s hardwarem
    16
    7664
    od petr22 Zobrazit poslední příspěvek
    02 dub 2025 21:50
  • Chyba příkazový řádek Příloha(y)
    od zik9 » 05 čer 2025 11:24 » v Windows 11, 10, 8...
    4
    1143
    od zik9 Zobrazit poslední příspěvek
    12 čer 2025 15:33
  • Sqlite - systémová chyba Příloha(y)
    od cindy the skull » 27 úno 2025 11:59 » v Vše ostatní (sw)
    6
    10181
    od atari Zobrazit poslední příspěvek
    16 bře 2025 11:11
  • prohližeč událostí id 1796 chyba Příloha(y)
    od walderan » 01 dub 2025 15:58 » v Problémy s hardwarem
    9
    3946
    od walderan Zobrazit poslední příspěvek
    04 dub 2025 15:42

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti