Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа "Новогодняя Ёлка" :D, Алгоритм и реализация 
:(
    Опции темы
Wowa
Дата 12.1.2006, 03:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Состряпал тут я программу вывода новогодней Ёлки, да не простой Ёлки, а с игрушками. Используется псевдографика smile smile smile

Код

public class elka {

    public static void main(String[] args) {
        int height = 6; // Высота дерева
        int step = 2; // Кол-во звездочек, на которые нижняя ветка больше верхней
                
        
        for (int i = 1; i < height*2; i=i+step) {
            
            for (int spaces = 0; spaces < height-i/2; spaces++) {
                System.out.print(" ");            
            }
            
            for (int element = 0; element < i; element++) {
                int kugel=(int)(Math.random()*i);
                if ( (kugel == element) && (element != 0))System.out.print("o"); else {System.out.print("*");};            
            }
            System.out.println();
        }
//Вывод надписи VINGRAD
        for (int spaces = 0; spaces < (height*2-1)/2-3; spaces++) {
            System.out.print(" ");            
        }
        System.out.println(" VINGRAD");
    }

}



Программа выдает на экран:
Код

                *
               ***
              *o***
             *o**o**
            **o******
           ***********
          *************
         ***************
        ****o************
       ******o*********o**
      ******************o**
     ***************o*******
    *********o***************
   ****o**********************
  *************************o***
 *******************************
             VINGRAD

Дерево симметричное отображается. Vingrad внизу по центру написано. И игрушки(o) случайным образом развешаны.

Может у кого будут идеи по усовершенстованию алгоритма? smile smile smile
Сейчас спать хочу, в голову ничего не лезет более умное. Извините smile
PM WWW   Вверх
Exception
Дата 12.1.2006, 03:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: нет
Всего: 186



Гы, приколист ))) а тебе не кажца, что какая-то она... чересчур широкая )
PM   Вверх
Wowa
Дата 12.1.2006, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата(Exception @ 12.1.2006, 01:50 Найти цитируемый пост)

Гы, приколист ))) а тебе не кажца, что какая-то она... чересчур широкая )

ну, так вроде елки изображают обычно smile
PM WWW   Вверх
Exception
Дата 12.1.2006, 04:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: нет
Всего: 186



Не хватает зайчиков внизу ) и подарков ))
PM   Вверх
powerOn
Дата 12.1.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Ну это свобоные мысли........
Код

public class elka {    
    
    public static void main(String[] args) {    
        int height = 5; // Высота дерева    
        int step = 2; // Кол-во звездочек, на которые нижняя ветка больше верхней    
        
        int otstup = 3;
         
        for (int i = 1; i < height*2; i=i+step) {    
            // Отступ
            for (int j = 0; j < otstup ; j++) {    
                System.out.print(" ");             
            }
                       
            for (int spaces = 0; spaces < height-i/2 ; spaces++) {    
                System.out.print(" ");             
            }    
            for (int element = 0; element < i; element++) {    
                int kugel=(int)(Math.random()*i);    
                if ( (kugel == element) && (element != 0)) System.out.print("o"); else {System.out.print("*");};             
            }    
            System.out.println();    
        }
        
        height = 8;
        for (int i = 7; i < height*2; i=i+step) {    
             
            for (int spaces = 0; spaces < height-i/2; spaces++) {    
                System.out.print(" ");             
            }    
             
            for (int element = 0; element < i; element++) {    
                int kugel=(int)(Math.random()*i);    
                if ( (kugel == element) && (element != 0))System.out.print("o"); else {System.out.print("*");};             
            }    
            System.out.println();    
        }
//Вывод надписи VINGRAD    
        for (int spaces = 0; spaces < (height*2-1)/2-3; spaces++) {    
            System.out.print(" ");             
        }    
        System.out.println(" VINGRAD");    
    }    
}


результат:

Код

        *
       ***
      *o*o*
     ***o***
    *******o*
     **o****
    ***o*****
   ***********
  *********o***
 *o*************
     VINGRAD



--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
batigoal
Дата 12.1.2006, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Конкурс ASCII-ёлок smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
polosatij
  Дата 30.3.2006, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



Код


/**
 * 
 * @author polosatij
 * @version 1.0
 */
public class Elka {

    
    //risuem sverhu vniz:
    private int[] line = new int [] {
            1, 1, 1, 3, 7, 3, 10, 5, 9, 18, 12, 8, 3, 12, 16, 13, 
            7, 18, 15, 23, 18, 28, 29, 31, 38, 31, 43, 29, 24, 26, 12};
    
    //ispolzuem dlja etogo simvoly
    private char[] zeichen = new char[] {'.', 'M', '8', ';', 'S', 'B', '@', 'X', 'x', 'W'};
    
    //probely ot levogo kraja do zentra:
    private final int RUTCH = 38;
    
    private void printElka() {
        final int lineLength = line.length;
        for (int i = 0; i < lineLength; i++) {
            
            //otpusk ot kraja:
            for( int i1 = 0; i1 <= this.RUTCH - line[i]/2; i1++) {
                System.out.print(" "); 
            }
            
            if (i == 0) { System.out.println("."); continue;}
            if (i == 1) { System.out.println(";"); continue;}
            
            for (int ii = 0; ii < line[i]; ii++) {
                System.out.print(zeichen[(int)(Math.random()*zeichen.length)]);
                if (ii == line[i] - 1) {
                    System.out.print("\r\n");
                }
            }
        }
    }
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        new Elka().printElka();
    }
    

}



smile
Добавлено @ 19:44
Код

                                       .
                                       ;
                                       M
                                      WWW
                                    SXSSW;x
                                      @S8
                                  M@W;;;@SB;
                                     xS@x.
                                   ;xx@@8@Wx
                              ;BxXSB;@X;;8M.8BWB
                                 XxM@xW;;BW.B
                                   8xW8x.@M
                                      W.8
                                 XBXM@[email protected]
                               X@BXBWW;@Sx8WBM8
                                 .B8;WW;BXM.SB
                                    x;@@.;.
                              BWBBS8..SMBM..SXSM
                                8SBB8;WB8x@WMMB
                            [email protected];8BSB.B
                              SMW8@x;MB@W8xWSS@W
                         .8XxWx8xX8W@.@;MMXSW;xWMxXMS
                         S;.WMxMx.;8SBMBM;.8M;;XWBBWSB
                        8XX;S;MX.;8X;@[email protected]..
                    M;[email protected]@W.WSx8MMxSSSS;Bx.xWWB@XxM;.
                        B;X.SSMMx@[email protected];W;;Wx.
                  S8;MWx@x@8BW@BWxWM8MW;;x8SB@[email protected]@MS
                         xXB;x;B.@B.;S8;MSX;BB.xXW@MSW
                           W8xM@xXW@;@M;WWBxM..8;W.
                          [email protected];W@;.S.x.x;
                                 M;.WXXMxBW.8



--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0697 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.