Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Елка:C++  [new]
mayton
Member

Откуда: loopback
Сообщений: 49801
Пускай за меня скажет код.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <io.h>

/* 31.12.2014 (mayton) - Happy new year, my dear geeks! HNE! */ 

void pc(int w,char c){
     while(w--) putchar(c);
}

void pcr(int w,char c,const char *r,float g){
     int l=strlen(r);
     while(w--) {
        float f=(float)rand()/0xFFFF;
        if (f>g) putchar(c);
        else putchar(*(r + rand()%l));
     }
}


void pe(int w,int l1,int l2){
     int i;
     for(i=l1;i<l2;i++){
        int o=w-i;
        pc(o,' ');
        pcr(i,'/',"@&!+",0.1);
        pc(1,'|');
        pcr(i,'\\',"@&!+",0.1);
        putchar('\n');        
     }
}

int main(int argc,char **arg, char **env){
     int i;
     for(i=0;i<20;i++){
	pe(40,i,3+i);
     };
     return 0;
}


                                        |
                                       +|@
                                      //|\\
                                       /|\
                                      &/|\\
                                     +/@|\\&
                                      !/|\\
                                     /!/|\@\
                                    ////|\\\\
                                     &//|\\\
                                    ////|\\\@
                                   !@///|\\\\\
                                    ////|\\&\
                                   ////@|\\\\\
                                  /!/&/+|!\\\&\
31 дек 14, 13:36    [17076497]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34630
mayton,

что за io.h ?
Не собирается с ним. Без него собирается и работает, но не так, как у тебя (без игрушек).
Linux.
31 дек 14, 14:00    [17076589]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
mayton
Member

Откуда: loopback
Сообщений: 49801
Хех копипаста хедеров...

Но с игрушками - это наверное реализация rand()
31 дек 14, 14:02    [17076597]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34630
Должно быть <sys/io.h>

Но игрушки всё равно не появляются.
31 дек 14, 14:02    [17076599]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
mayton
Member

Откуда: loopback
Сообщений: 49801
cc.exe (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
31 дек 14, 14:04    [17076609]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
mayton
Member

Откуда: loopback
Сообщений: 49801
Вобщем в реализации моего RTL/Compiller rand() выдаёт целые от 0 до 32767.
31 дек 14, 14:15    [17076654]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34630
mayton,

ziv@mole:~/x/cpp/hny$ gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
31 дек 14, 14:18    [17076667]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
mayton
Member

Откуда: loopback
Сообщений: 49801
Илья. Палево может быть в этой строке.

float f=(float)rand()/0xFFFF;


Пока теряюсь в догадках. У нас основная разница - это операционка.
31 дек 14, 14:21    [17076687]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34630
Короче, вот:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <sys/io.h>

/* 31.12.2014 (mayton) - Happy new year, my dear geeks! HNE! */

void pc(int w,char c){
  while(w--) putchar(c);
}

void pcr(int w,char c,const char *r,float g){
  int l=strlen(r);
  while(w--) {
    float f=(((float)rand())*0xFFFF/RAND_MAX)/0xFFFF;
    if (f>g) putchar(c);
    else putchar(*(r + rand()%l));
  }
}


void pe(int w,int l1,int l2){
  int i;
  for(i=l1;i<l2;i++){
    int o=w-i;
    pc(o,' ');
    pcr(i,'/',"@&!+",0.1);
    pc(1,'|');
    pcr(i,'\\',"@&!+",0.1);
    putchar('\n');
  }
}

int main(int argc,char **arg, char **env){
  int i;
  for(i=0;i<20;i++){
    pe(40,i,3+i);
  };
  return 0;
}




ziv@mole:~/x/cpp/hny$ emacs -nw hny.c && gcc -o hny hny.c && ./hny
|
/|\
//|\\
/|\
//|\\
///|\\\
//|@\
///|\\\
////|\\\\
///|\\\
////|\!\+
///!/|&\\\\
////|\\!\
/////|\\\\\
//////|\\\\\\
/////|\\\\\
//////|\\\\\\
///////|\\\\\\\
//////|\\+&\\
//////+|\!\\\\\
@/////@+|\\\\\\\\
////!//|\\\\\@\
////////|\\\\@\\\
////+////|\\\\\\\\\
//+/////|\\\\\+\\
/////////|\\\\\@\\@
//////////|&\\\\\\\\\
/////////|\\\\\\\\\
//////////|\\\\\\\\\\
///////////|!\\\\@\\\\\
//////////|\\\\\\\\\&
/////@/////|&\\\\\!\\\\
////////////|\\\\!\\\\\\\
////&//////|\\\\\\\\\\\
///!////////|\\\\+\\\\\\\
///+/////&///|\\\\\\\\\\\\\
////////////|\\\\\\\\\\\\
/////////////|\\\\\\@\\\\\\
+///////@/////|\+\\\\\\\\\\\\
/////////////|\\\\\\\\\\\\\
////////////+/|\@!\\\\\\\\\\\
///////////////|\\\\\\\!\\\\\\+
///////!////!/|\\\\\\+\\\\\\\
///&////&/!////|\\\\\\\\\\\&\\\
////////////@///|\\\\\&\\\\\\\\!+
/////+//@///!//|\\\&\\\!\\\\\+\
///&/////////!//|\\\\\\\\\\+\\\\\
/&//+////+///////|\\\\\\\\\\@\\\\\\
//////+/////////|\\\\\\\\\\\\\\\\
/////////!////!//|\\\\\\\\\\\\\\\\!
//////////////////|\+\\\\\!\\\\\\\\\\
//////////////&//|\\\\\\\\+\\\\\\\\
//////////////////|\\+@\+\\\\+\\\\\\\
/@///////////&//+//|\\&\\\\\\\\\&\\!\\\
//+/!/////////////|\\\\\\\\\\\\\\\\\\
/@///////////////@/|\\\\+\\\\\\\\\\\\@\
////////////////////|\\\\&\\&\\\\\\\\+\\\
////////+//////////|\!\\\\\\\\\\\\\!\&&
///////@/////////@//|\\\\\\\\\\\@\\\\\\\\
////@//&/////////////|\\\\\\+\@\@\\+\\\\\\\


Всех с наступающим новым годом!
Ура!
31 дек 14, 14:22    [17076691]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34630
mayton
Илья. Палево может быть в этой строке.

float f=(float)rand()/0xFFFF;


Пока теряюсь в догадках. У нас основная разница - это операционка.


Конечно, потому что НОРМИРОВАТЬ надо !
31 дек 14, 14:22    [17076694]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
mayton
Member

Откуда: loopback
Сообщений: 49801
 //#include <sys/io.h> вроде у меня не нужно

/* 31.12.2014 (mayton) - Happy new year, my dear geeks! HNE! */

void pc(int w,char c){
  while(w--) putchar(c);
}

void pcr(int w,char c,const char *r,float g){
  int l=strlen(r);
  while(w--) {
    float f=(float)rand()/RAND_MAX; Собсно этот ранд-макс я и искал. Спс за константу.
    if (f>g) putchar(c);
    else putchar(*(r + rand()%l));
  }
}
31 дек 14, 14:32    [17076737]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
mayton
Member

Откуда: loopback
Сообщений: 49801
Здарова други.

Илья. Белый Сова. Док. Саша-Меркурий. Сибиряков. Дима-Т. Изопропил. Руслан. Игорь (Wolfenstein).

Прошёл год.

Пора подводить неутешительные итоги

Как улучшилась С++Ёлка? Какие планы на следующий год?

И вообще.
30 дек 15, 13:34    [18627538]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
Cplus11
Guest
Даешь елку на чистом С++ 11 :)
30 дек 15, 13:56    [18627735]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
mayton
Member

Откуда: loopback
Сообщений: 49801
Да што там 11. Давайте уже на С++14.
30 дек 15, 14:43    [18628074]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
&lt;vector&gt;
Guest
Хотелось бы елку на последнем стандарте (+STL). А победитель тот, у кого строк кода меньше всего получиться, а елка красивая...
30 дек 15, 14:52    [18628126]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
mayton
Member

Откуда: loopback
Сообщений: 49801
Всякий пионер знает что любую (почти) прогу на сях мона в 1 строку укатать. Джон Кармак был
любитель подобных приколов. Однако-ж я думаю что критери победы должны быть другие.
30 дек 15, 15:27    [18628354]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
STLalgoritm
Guest
Не когда обсуждать, Новый Год на носу! :) Хотелось бы ёлку на STL!
30 дек 15, 21:35    [18629885]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
Изопропил
Member

Откуда:
Сообщений: 31536
скучные вы все, на OpenGL ёлка должа быть
30 дек 15, 23:59    [18630263]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
mayton
Member

Откуда: loopback
Сообщений: 49801
Изопропил, давай. Накидай инициализацию. Я честно не помню как там чё.
31 дек 15, 00:29    [18630340]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
Изопропил
Member

Откуда:
Сообщений: 31536
mayton,

игрушки развешивать надо

+
#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>

void init(void)
{
	glShadeModel(GL_FLAT);
}
void display()
{
	glClearColor(1.0, 1.0, 1.0, 1);
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glColor3d(0, 1, 0);
	glPushMatrix();
	glTranslated(0.0,-1.66, -6);
	glRotated(120, -1.0, 0.0, 0.0);
	glutSolidCone(1, 4, 50, 50);
	glutWireCone(1, 4, 20, 20);
	glPopMatrix();
	glutSwapBuffers();
}
void resize(int w, int h)
{
	const float ar = (float)w / (float)h;
	glViewport(0, 0, (GLsizei)w, (GLsizei)h);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glFrustum(-ar, ar, -1.0, 1.0, 3.0, 100.0);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
}
const GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
const GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f };

const GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f };
const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f };
const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat high_shininess[] = { 100.0f };

int main(int argc, char *argv[]) {

	glutInit(&argc, argv);
	glutInitWindowSize(640, 480);
	glutInitWindowPosition(10, 10);
	glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
	glutCreateWindow("Picea");

	glutReshapeFunc(resize);
	glutDisplayFunc(display);

	glEnable(GL_CULL_FACE);
	glCullFace(GL_BACK);

	glEnable(GL_DEPTH_TEST);
	glDepthFunc(GL_LESS);

	glEnable(GL_LIGHT0);
	glEnable(GL_NORMALIZE);
	glEnable(GL_COLOR_MATERIAL);
	glEnable(GL_LIGHTING);

	glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
	glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
	glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
	glLightfv(GL_LIGHT0, GL_POSITION, light_position);
	
	glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
	glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
	glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
	glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
	
	glutMainLoop();
	return 0;
}
31 дек 15, 12:02    [18631413]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
SashaMercury
Member

Откуда: Москва
Сообщений: 2653
mayton
Здарова други.

Илья. Белый Сова. Док. Саша-Меркурий. Сибиряков. Дима-Т. Изопропил. Руслан. Игорь (Wolfenstein).

Прошёл год.

Пора подводить неутешительные итоги

Как улучшилась С++Ёлка? Какие планы на следующий год?

И вообще.



Спасибо C:
И вас с уже наступившим новым годом! Мне кажется 2015 год был неплохим годом для Сообщества. Скорее даже интересным. Жаль что практически перестал появляться Анатолий. Но лично я очень рад тому, что все остальные тут. Надеюсь 2016 год будет хорошим для нас.

PS
Из планов могу пообещать только одно, что во втором квартале этого года, а может быть и раньше, выделю время и переведу ту статью до конца. C Traps and Pitfails.
11 янв 16, 10:28    [18661069]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34630
Изопропил
скучные вы все, на OpenGL ёлка должа быть

чета я под линцхом так еду и не собрал...
glut не хочет линковаться...
11 янв 16, 11:55    [18661453]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
CEMb
Member

Откуда: Столько
Сообщений: 2129
Изопропил
игрушки развешивать надо


Ёлка-редактор, c++, WinAPI, GDI

в этом прошлом году сделал возможность грузить свою ёлку. Или "ёлку", кому на чём нравится развешивать :)
11 янв 16, 13:14    [18661871]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
mayton
Member

Откуда: loopback
Сообщений: 49801
CEMb, нечитал. Но нутром чую что это "не спортивно". Не?
11 янв 16, 13:23    [18661917]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
CEMb
Member

Откуда: Столько
Сообщений: 2129
mayton, в каком смысле, не спортивно?

кода там(по ссылке) нет (но, в принципе, могу дать код), просто сама реализация на чистых сях плюсе плюсе. Спорт там, например, в реализации той же графики. Просто заговорили про "навешивать", я не смог удержаться от выпендриться :)
11 янв 16, 13:44    [18662017]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
mayton
Member

Откуда: loopback
Сообщений: 49801
MasterZiv
Изопропил
скучные вы все, на OpenGL ёлка должа быть

чета я под линцхом так еду и не собрал...
glut не хочет линковаться...

У меня тоже MinGW не хочет подключать glut. Не разбирался еще...
11 янв 16, 15:09    [18662672]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
Зимаргл
Guest
CEMb
Изопропил
игрушки развешивать надо


Ёлка-редактор, c++, WinAPI, GDI

в этом прошлом году сделал возможность грузить свою ёлку. Или "ёлку", кому на чём нравится развешивать :)

Клевая, но по Exit не выходит =)
11 янв 16, 19:02    [18664037]     Ответить | Цитировать Сообщить модератору
 Re: Елка:C++  [new]
CEMb
Member

Откуда: Столько
Сообщений: 2129
Зимаргл,

а в какой операционке? Это в основном окне (с зелёной шестерёнкой) если нажать крестик и сказать "ОК" - не выходит? :(
12 янв 16, 06:01    [18665048]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / C++ Ответить