Diskuze: vykreslování stromu

Java Java vykreslování stromu

Aktivity (1)
Avatar
albertpatera
Redaktor
Avatar
albertpatera:10.5.2015 15:13

Ahoj,

potřeboval bych poradit s jednou takovou maličkostí. Přes cyklus for vykresluju stromek s kmenem (ten už mám). Jenom potřebuju, aby koruna byla ve tvaru rovnoramenného trojúhelníku. Neví někdo, jak na to ?
Tady přikládám kod.

//toto je koruna stromu

       for (int i = 1; i <= 5; i++)
       {

           System.out.println( "XX"  );
           for (int x = 1; x <= 10; x++)
           {
               System.out.print("XX" +x);

           }

       }
       System.out.println();


       // toto je kmen strumu

       for (int i = 1; i <= 5; i++)
       {
           System.out.println( "XX" );
           for (int x = 1; x <= 10; x++)
           {
               System.out.print(".");

           }

       }

Moc by mi to pomohlo, díky

Editováno 10.5.2015 15:14
 
Odpovědět 10.5.2015 15:13
Avatar
Ondřej Hanák
Redaktor
Avatar
Odpovídá na albertpatera
Ondřej Hanák:10.5.2015 16:11
int sirka = 7;
for (int i = 0; i < sirka; i++)
{

   int okraj = (sirka-(1+(2*i)))/2;
   string vypsat = "";
   for (int x = 1; x <= okraj; x++)
   {
      vypsat += " ";
   }
   for (int y = 1; y <= sirka-(okraj*2); y++)
   {
      vypsat += "X";
   }
   for (int j = 1; j <= okraj; j++)
   {
      vypsat += " ";
   }
   System.out.print(vypsat);
}
Editováno 10.5.2015 16:14
 
Nahoru Odpovědět 10.5.2015 16:11
Avatar
Ondřej Hanák
Redaktor
Avatar
Ondřej Hanák:10.5.2015 16:17

Psal jsem to přímo sem takže tam můžou být chyby.

 
Nahoru Odpovědět 10.5.2015 16:17
Avatar
Štefan Pružinský:10.5.2015 16:24

Napríklad takto:

for (int i = 0; i < 5; i++)
{
        for (int x = 1; x <= 20; x++)
        {
            if (x > (10 - (1 + i * 5) / 2) && x <= (11 + (1 + i * 5) / 2))
                System.out.print(".");
            else
                System.out.print(" ");
        }
        System.out.println();
}

for (int i = 1; i <= 5; i++)
{
    for (int x = 1; x <= 20; x++)
    {
        if (x > 5 && x <= 15)
                System.out.print(".");
        else
                System.out.print(" ");
    }
    System.out.println();
}

Výsledok je:

          .
       .......
     ...........
  .................
....................
     ..........
     ..........
     ..........
     ..........
     ..........
Editováno 10.5.2015 16:28
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 10.5.2015 16:24
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Štefan Pružinský:10.5.2015 16:29

Prepáč, v komentári to zarovná na ľavo. Posielam obrázok.

Nahoru Odpovědět 10.5.2015 16:29
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Štefan Pružinský:10.5.2015 16:54

A v tom prvom vnorenom cykle (ktorý vykresľuje korunu), má byť x = 21 namiesto x = 20.

Nahoru Odpovědět 10.5.2015 16:54
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
albertpatera
Redaktor
Avatar
 
Nahoru Odpovědět 10.5.2015 18:52
Avatar
Odpovídá na albertpatera
Štefan Pružinský:10.5.2015 19:05

Nemáš začo. Môžeš označiť riešenie:)

Nahoru Odpovědět 10.5.2015 19:05
Najefektívnejším spôsobom debuggingu je modlitba. :)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.