Форум программистов, компьютерный форум CyberForum.ru

Нарисовать шахматную доску - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Деревья общего вида http://www.cyberforum.ru/cpp-beginners/thread923203.html
Дан указатель P1 на корень непустого дерева общего вида. Вывести значения всех вершин дерева в инфиксном порядке: вначале выводится содержимое первого (левого) поддерева в инфиксном порядке, затем выводится значение корня, а затем — содержимое остальных поддеревьев в инфиксном порядке (поддеревья перебираются слева направо). Подскажите, с чего начать?
C++ Чтение из файла Добрый день. Есть следующая программа. Она вначале записывает массив объектов в файл, а затем должна считать его. Когда я применяю полный код программы, все работает как надо. Но когда удаляю область, которая записывает данные в файл (т.е. оставляю только ту часть программы, которая считывает информацию), мне выдает следующую ошибку: Unhandled exception at 0x00BEBB19 in flAlpha.exe: Stack cookie... http://www.cyberforum.ru/cpp-beginners/thread923194.html
Компилятор C++
Я знаю основу С + + , пишу программы на Microsoft Visual Studio 2010 Помогите понять понятия: гнусовський компилятор? P.S.возможно это тупой вопрос =)))
Админы, создайте тему для студентов! C++
Задолбали тут свои задачки по курсовой выкладывать, хотя тут тебя чисто по С++
C++ Ввод и вывод на C++ http://www.cyberforum.ru/cpp-beginners/thread923179.html
Перехожу с паскаля на С++. С вводом и выводом в паскале было как-то попроще, а тут десятки вариантов. Подскажите, где можно найти человеческие примеры с объяснением, желательно всех.
C++ Тема для дипломной работы Посоветуйте тему для дипломной работы. Есть желание написать программу, практически используемую, но не слишком сложную. Очень хочу узнать ваше мнение, скоро новый семестр а с темой не определился. подробнее

Показать сообщение отдельно
strange_man
9 / 9 / 0
Регистрация: 17.05.2012
Сообщений: 118

Нарисовать шахматную доску - C++

15.07.2013, 00:27. Просмотров 2354. Ответов 3
Метки (Все метки)

Задание из книги Страуструпа "Принципы и практика использования С++":
"Нарисуйте доску для шахмат 8x8, чередуя белые и красные квадраты".

Вот отрывок кода (здесь магические константы, но это подождет, пока я не разберусь с проблемой)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int main()
try
{ 
    Point tl(100,100);  
 
    Simple_window win(tl,600,400,"Canvas");
 
    int x = 100, y = 30;
 
    for (int i = 0; i < 64; i++)
    {
        Graph_lib::Rectangle r(Point(x,y),30,30);
        if (i % 2 == 0) r.set_fill_color(Color::white);
        else r.set_fill_color(Color::red);
        win.attach(r);
        //win.wait_for_button();
        x += 30;
        if (x >= 340)
        {
            x = 100;
            y += 3;
        }
    }
 
    win.wait_for_button();
}
Как видно, с каждым витком цикла создается новый объект типа Rectangle с заданной координатой верхней левой вершины, а также длиной и шириной фигуры. По окончании работы цикла результат разочаровывает, поскольку окно win пусто. Получается, что эти квадраты создаются и уничтожаются после каждого прохода.
Я решил заглянуть в .cpp файл, относящийся к классу Rectangle. Оказалось, что когда происходит выполнение функции-члена attach(), то она в качестве аргумента принимает ссылку на объект Rectangle и прикрепляет к окну объект по ссылке. А так как после каждого прохода переменная уничтожается, следовательно, уничтожается и прикрепленный к окну квадрат.
Я пробовал создавать вектор из объектов Rectangle, но компилятор ругался, что нет доступа к приватному члену. Модифицировать код я не хочу, да и не предполагаю пока как. Ведь автор писал задание в книге, исходя из того кода что он создал для работы над главой.
Но я не предполагаю каких-либо иных способов решения. Мне, вроде бы, и не стоило бы беспокоиться, но ведь впереди еще несколько глав, где я буду работать с библиотекой FLTK и исходным кодом, предоставленным автором.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru