Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2014, 23:07   #31
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Лилия, замени тот код, что я тебе скинул на этот код: ссылка (я просто заменил имена типа "m_x" на "x")

Потом добавь в комментарий всё, что находится в функции "slotMoveRect()"

А оставьте только это:
Код:
void Scene::slotMoveRect()
{
    // ...
    y += ystep;
    // ...
    updateGL();
}
Куда движется кубик? Сделай так чтобы он двигался в нужном направлении.

Последний раз редактировалось 8Observer8; 12.09.2014 в 23:55.
8Observer8 вне форума Ответить с цитированием
Старый 13.09.2014, 04:44   #32
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Я лучше код напишу, а потом поговорим.
А потом будешь переписывать?
У тебя в подписи про TDD написано, по нему "сначала пишутся тесты, а потом код", разве нет? - это специально для тех, кто не хочет думать вначале.

Цитата:
Можно и прямоугольниками рисовать:
нене, пацан сказал - пацан сделал - рисуй треугольниками )
rrrFer вне форума Ответить с цитированием
Старый 13.09.2014, 07:03   #33
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
А потом будешь переписывать?
У тебя в подписи про TDD написано, по нему "сначала пишутся тесты, а потом код", разве нет? - это специально для тех, кто не хочет думать вначале.
Ты знаешь вообще для чего нужен TDD? Чтобы функции разрабатывать! Функция - выдаёт определённый результат на определённые входные данные. Есть прототип функции? Отлично! В одном тесте мы отдадим ей одни входные данные, напишем ожидаемый результат. Тест сравнит. Напишем другой тест. И так с помощью тестов мы опишем, что должна выдавать функция на определённые входные данные. Когда тесты готовы, тогда пишем реализацию, сколько угодно запуская тесты, пока они все не выполнятся.

Что ты собрался тестировать, если у нас нет ни одного прототипа функции? При разработке по этой методологии надо стараться проектировать классы и их методы так, чтобы их легко можно было тестировать. В первую очередь надо тестировать те функции, которые что-то считают. Читай книжки внимательнее и не путай модульное тестирование, интегрированное тестирование и TDD.

rrrFer, я не буду с тобой обсуждать здесь TDD. TC это никак не поможет и тебе доказывать ничего не собираюсь. Не используешь - твоё дело. Не хочу тратить, на этот бестолковый спор, драгоценное время. Тем более это не по теме.

Последний раз редактировалось 8Observer8; 13.09.2014 в 08:01.
8Observer8 вне форума Ответить с цитированием
Старый 13.09.2014, 07:51   #34
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Ты знаешь вообще для чего нужен TDD? Чтобы функции разрабатывать! Функция - выдаёт определённый результат на определённые входные данные. Есть прототип функции? Отлично! В одном тесте мы отдадим ей одни входные данные, напишем ожидаемый результат. Тест сравнит. Напишем другой тест. И так с помощью тестов мы опишем, что должна выдавать функция на определённые входные данные. Когда тесты готовы, тогда пишем реализацию, сколько угодно запуская тесты, пока они все не выполнятся.

Что ты собрался тестировать, если у нас нет ни одного прототипа функции? При разработке по этой методологии надо стараться проектировать классы и их методы так, чтобы их легко можно было тестировать. В первую очередь надо тестировать те функции, которые что-то считают. Читай книжки внимательнее и не путай модульное тестирование, интегрированное тестирование и TDD.
Ты не знаешь что такое TDD. Я даже не буду отправлять тебя читать книжки, а просто раскрою аббревиатуру. Test Driven Development - разработка через тестирование. Перевод не очень хороший, заморский вариант названия явно намекает на то, что тесты управляют разработкой.

Синим цветом я выделил внутреннее противоречие в твоем утверждении - заметь, я опять же не отправляю читать книжки.
С одной стороны, ты пишешь, что не имея прототипа функции ты НЕ МОЖЕШЬ написать тесты, с другой стороны, говоришь что СНАЧАЛА НАДО ПРОЕКТИРОВАТЬ. Ты определись уже. Мы тут на форуме и предлагаем тебе спроектировать так, чтобы возможно было протестировать. И да, тесты нормальные люди пишут ДО начала разработки, потому что они знают что они хотят получить.

Наконец, ты каверкаешь термины. Не "интегрированное", а "интеграционное" - если я не прав, скинь мне пруф на книжку, потому что я не знаю о чем ты говоришь вообще.
С другой стороны, про интеграционное тестирование я тебе ничего не писал, ты решил похвастаться новыми прочитанными словами?
Я ничего не путаю.

Книжки ты читать не будешь, походу, поэтому процитирую неавторитетный источник (википедию):
Цитата:
Разработка через тестирование требует от разработчика создания автоматизированных модульных тестов, определяющих требования к коду непосредственно перед написанием самого кода.
А ты говоришь:
Код:
Я лучше код напишу, а потом поговорим.
rrrFer вне форума Ответить с цитированием
Старый 13.09.2014, 08:03   #35
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Лилия, не отлынивай от заданий

Задание. Нарисовать прямоугольник и квадрат, используя треугольники

Что надо получить?
Получить один прямоугольник, и один квадрат

Исходные данные
Как видно из кода и рисунка ниже - рисуются четыре треугольника. Твоя задача - соединить их так, чтобы слева получился прямоугольник, а справа - квадрат. Вперёд, солдат!



Код:
void Scene::initializeGL()
{
    glClearColor( 0.3f, 0.3f, 1.0f, 1.0f );
}

void Scene::paintGL()
{
    // Clear the window with current clearing color
    glClear( GL_COLOR_BUFFER_BIT );

    // Set current drawing color to red
    glColor3f( 1.0f, 0.0f, 0.0f );

    // Draw a filled rectangle with current color
    //glRectf( x, y, x + rsize, y - rsize );


    // Заготовка для прямоугольника
    glColor3f( 1.0f, 0.0f, 0.0f );      // Выставляем цвет рисования
    glBegin( GL_TRIANGLES );            // Рисуем треугольник
    glVertex2f( -50.0f, 0.0f );
    glVertex2f( -50.0f, 50.0f );
    glVertex2f( -35.0f, 0.0f );
    glEnd();
    glBegin( GL_TRIANGLES );            // Рисуем треугольник
    glVertex2f( -25.0f, 50.0f );
    glVertex2f( -40.0f, 50.0f );
    glVertex2f( -25.0f, 0.0f );
    glEnd();

    // Заготовка для квадрата
    glColor3f( 1.0f, 1.0f, 0.0f );      // Выставляем цвет рисования
    glBegin( GL_TRIANGLES );            // Рисуем треугольник
    glVertex2f( 50.0f, 0.0f );
    glVertex2f( 50.0f, 50.0f );
    glVertex2f( 35.0f, 0.0f );
    glEnd();
    glBegin( GL_TRIANGLES );            // Рисуем треугольник
    glVertex2f( 25.0f, 50.0f );
    glVertex2f( 40.0f, 50.0f );
    glVertex2f( 25.0f, 0.0f );
    glEnd();
}
Результат
Пришли скриншот.

Последний раз редактировалось 8Observer8; 13.09.2014 в 08:08.
8Observer8 вне форума Ответить с цитированием
Старый 13.09.2014, 08:06   #36
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

marenko.lilia
Цитата:
Цитата:
Так сделайте все как следует и получите тетрис, который будет и консольным и оконным.
ну чувствуется, что Вы большой специалист, но не выдаете себя
Тут waleri намекал на то, что Обсерверу (не Вам) нужно ознакомиться с MVC. Затем я намекал, что тестировать надо в первую очередь модель.

Цитата:
Лилия, разы вы пишете туториалы, значит меня поймёте. Мне надо, чтобы выполнили следующую инструкцию и доложили, если что-то непонятно или возникли проблемы:

Установка Qt
...
Код:
class Scene : public QGLWidget
{
public:
    Scene( QWidget *parent = 0 );
Ты бы чуть-чуть ознакомился с Лилией, она понятия не имеет даже о структурах, она пока что только пытается разобраться как собрать проект из нескольких единиц компиляции, а ты начинаешь ее грузить Qt, openGL и прочим. Зачем ей это? И какое отношение это имеет к тетрису? - если че, первый тетрис был написан в начале 80х годов, в середине 90х годов на каждом угло продавались китайские тетрисы, зашитые в специальный девайс с черно-белым дисплеем. Первый факт говорит о том, что для тетриса не обязательно использовать всякие опенглы и выглядеть он может как угодно.
Второй факт говорит о том, что тетрис эпически тривиален, ты усложняешь задачу сам себе.

Цитата:
Лилия, не отлынивай от заданий
..
Как видно из кода и рисунка, ниже рисуются четыре треугольника. Твоя задача - соединить их так,...
Она не будет этим заниматься, да и я бы тоже не стал ))

Дались тебе эти треугольники. В хрен пойми каком веке Оккам постановил не плодить сущности без необходимости.

Последний раз редактировалось rrrFer; 13.09.2014 в 08:09.
rrrFer вне форума Ответить с цитированием
Старый 13.09.2014, 08:14   #37
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

rrrFer, то что ты предлагаешь ей сделать в консоле - в 100 раз сложнее, того что я предлагаю.

Последний раз редактировалось 8Observer8; 13.09.2014 в 08:30.
8Observer8 вне форума Ответить с цитированием
Старый 13.09.2014, 08:38   #38
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
rrrFer, то что ты предлагаешь ей сделать в консоле - в 100 раз сложнее, того что я предлагаю.
Окей, дерзайте
Только я не видел чтобы твои предложения были с тетрисом связаны - тут не только я писал, что сначала надо реализовать логику, а потом уже браться за рисование хоть треугольников, хоть кружков.

Мне вообще не ясно откуда ты накопал треугольники. Я тыщу раз писал что такого слова в постановке задачи не было. Фигуры вполне могут состоять из квадратиков с картинками. Фигуры могут выглядеть как на картинке (первая с гугла). Все что ты видишь на мониторе - это картинка, картинка никак не связана с логикой игры, если ты это смешиваешь - ты делаешь неправильно.

8Observer8
Цитата:
rrrFer, мне жаль твоих студентов Как ты можешь говорить об вещах, о которых не знаешь ни малейшего понятия? Ни OpenGL, ни TDD, которые и в глаза не видел:
А... оставлю без комментариев.
Изображения
Тип файла: jpeg 669.jpeg (22.8 Кб, 73 просмотров)

Последний раз редактировалось rrrFer; 13.09.2014 в 08:46.
rrrFer вне форума Ответить с цитированием
Старый 13.09.2014, 08:51   #39
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
Мне вообще не ясно откуда ты накопал треугольники.
Хорошо, поясню. В OpenGL есть точки, линии, треугольники и т.д. Можно линиями нарисовать эти фигуры из тетриса. Но проще треугольниками. Я показывал этот рисунок:



Основной строительный материал в OpenGL - это треугольники. Из них можно нарисовать любые фигуры. Например, шары - если поверхность задать из множеством маленьких треугольников.
8Observer8 вне форума Ответить с цитированием
Старый 13.09.2014, 09:01   #40
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Можно линиями нарисовать эти фигуры из тетриса. Но проще треугольниками.
Спорить не буду, ты прав абсолютно, рисуйте треугольники. Я - дурак, был не прав и спорил впустую. Мозгов совсем нету - еще студентов учить вздумал - пойду уволюсь.

Где то там был waleri, он стопудов тоже понял что не прав, но решил умолчать это и просто перестал отвечать (думал никто не заметит и все забудут как сильно он ошибался).

Код тетриса потом скинь - мы с waleri будем учиться.

Последний раз редактировалось rrrFer; 13.09.2014 в 09:04.
rrrFer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C тетрис Цукер Помощь студентам 0 21.11.2011 22:53
Тетрис на си фыф123 Помощь студентам 1 22.06.2011 10:48
Тетрис Александр123456 Общие вопросы C/C++ 1 02.12.2010 23:15
Тетрис k1r1ch Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 02.01.2010 12:20
массив и тетрис sid Паскаль, Turbo Pascal, PascalABC.NET 2 04.04.2007 14:41