Diskuze: vykreslování stromu

Java Java vykreslování stromu

Avatar
albertpatera
Redaktor
Avatar
albertpatera:

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:
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:

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ý:

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ý:

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ý:

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
Odpovídá na albertpatera
Štefan Pružinský:

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.