Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 03.12.2011, 21:10   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Консоль и рисование

Хотелось бы скрасить практику у студентов, дав им более зрелищные задания (простые игры, визуализация распределений, набивший оскомину остров и т.п.). Единственная проблема - уровня подготовки для создания приложений с оконным интерфейсом под Windows они пока не располагают. Кто что может посоветовать (библиотеки) для рисования "под DOS", т.е. в консоли эмулятора. Ну или напишите "ты тупой делать надо /указание что надо делать/".
Спасибо.

PS.: если это имеет значение, то функционал должен быть реализован в рамках не проприетарного ПО (основная IDE - C::B).
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
ANIK123 (11.12.2011), Harter (06.12.2011)
Старый 03.12.2011, 21:36   #2
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Консоль и рисование

Нас парили тупыми и скучными заданиями.
Пусть теперь и они попарятся.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
impersonalis (04.12.2011), Reks888 (04.12.2011)
Старый 03.12.2011, 21:47   #3
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Консоль и рисование

гугли escape последовательности.
можно менять цвет чернил, фона, переводить курсор по экрану.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (04.12.2011)
Старый 04.12.2011, 00:32   #4
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Консоль и рисование

Сообщение от ffinder Посмотреть сообщение
гугли escape последовательности.
можно менять цвет чернил, фона, переводить курсор по экрану.
Опа. До сих пор сталкивался с весьма скромным списком оных (порядка 10-ти, примерно это) и там не было ничего про смену цвета.

Upd: веротяно имелись в виду такие последовательности:
http://symmetrica.net/archive/tips2.htm
printf("\033[30mЧерный \033[0m\n");
Занятно (я просто недолюбливаю эту Си-функцию) - не знал про это. Но хотелось бы ещё такие возможности как: точки, линии, прямоугольники, круги.

Спасибо.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 04.12.2011, 00:41   #5
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Консоль и рисование

Сообщение от impersonalis Посмотреть сообщение
Занятно (я просто недолюбливаю эту Си-функцию) - не знал про это. Но хотелось бы ещё такие возможности как: точки, линии, прямоугольники, круги.
занятно, что к С эта функция не имеет ни малейшего отношения вообще.
консоль это эмулятор терминалов VT-100 и VT-220, которые использовались при работе с мейнфреймами и получали по сети байты, которые должны были рисоваться на экране.

а круги и линии - кури алгоритмы Брезенхэма для отрезков и окружностей.
(Offline)
 
Ответить с цитированием
Старый 04.12.2011, 00:47   #6
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Консоль и рисование

Сообщение от ffinder Посмотреть сообщение
занятно, что к С эта функция не имеет ни малейшего отношения вообще.
консоль это эмулятор терминалов VT-100 и VT-220, которые использовались при работе с мейнфреймами и получали по сети байты, которые должны были рисоваться на экране.

а круги и линии - кури алгоритмы Брезенхэма для отрезков и окружностей.
Не совсем понял замечание про Си. Поясни, пожалуйста.
Указанные алгоритмы я и сам могу эти воссоздать - дело в том, что визуализировать результат их работы, не имея функции закрашивания пикселя, проблематично.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 04.12.2011, 00:53   #7
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Консоль и рисование

Вероятно недоразумение вызвано сокращённой формулировкой мысли. Нетриальная версия:
Не знал этих возможностей системной функции принтф, заголовочный файл которой имеется в том числе в наборе стандартных библиотек С\С++ IDE, т.к. обычно использую ввод\вывод через потоки, более принятый в С++ (в то в время, как использование принтфа - в Си). Отменяет ли минимизация тела враппера факт его наличия и отмену преобразование объекта из "системная функция" в "функция языка" - не мне судить. Вероятно, я ошибаюсь, т.к., раз вы на это указываете, то, скорее всего, располагаете некоторой неизвестной мне информацией.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 04.12.2011, 01:06   #8
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Консоль и рисование

QBasic ?
либо ncurses под windows c++
ЗЫ. большинство студентов (90 %) не свяжут свою жизнь с программированием - так что
Нас парили тупыми и скучными заданиями.
Пусть теперь и они попарятся.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (04.12.2011)
Старый 04.12.2011, 01:29   #9
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: Консоль и рисование

Так может потому и не связали 90%, что их
парили тупыми и скучными заданиями
.

По теме. В Turbo C была встроенная библиотека graphics. Она позволяла рисовать простую графику. Пример:
http://www.softwareandfinance.com/Tu...P/Scatter.html
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо FireOwl за это полезное сообщение:
impersonalis (04.12.2011), pozitiffcat (04.12.2011)
Старый 04.12.2011, 01:36   #10
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Консоль и рисование

Сообщение от impersonalis Посмотреть сообщение
Не совсем понял замечание про Си. Поясни, пожалуйста.
поясняю: байты, которые ты пишешь в поток вывода функцией printf это БИНАРНЫЙ СЕТЕВОЙ ПРОТОКОЛ вот этой железки: http://ru.wikipedia.org/wiki/VT220
а окно консоли - это эмулятор вышепреведенной железки.
т.е. prinft тут к escape последовательностям вообще не причем.

Сообщение от impersonalis Посмотреть сообщение
Но хотелось бы ещё такие возможности как: точки, линии, прямоугольники, круги.
ну и очевидно, что в ТЕКСТОВОЙ КОНСОЛИ рисовать пиксели невозможно в приниципе.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (04.12.2011)
Старый 05.12.2011, 18:12   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Консоль и рисование

В консоли можно рисовать еще вот так
http://ascgendotnet.jmsoftware.co.uk/
)
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 06.12.2011, 02:09   #12
Harter
Бывалый
 
Аватар для Harter
 
Регистрация: 03.11.2008
Адрес: Украина, Днепропетровск
Сообщений: 871
Написано 554 полезных сообщений
(для 2,520 пользователей)
Ответ: Консоль и рисование

impersonalis,
Извини, если сильно не по теме.
Я в консоле рисовал графики функций и не скажу, что это сильно запарно, даже, наоборот, занимательно. А на днях знакомый сделал пятнашки. Это к тому, что есть довольно интересные консольные задачи без применения графики. Возможно, ты посмотришь в эту сторону.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (10.12.2011)
Старый 10.12.2011, 00:47   #13
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Консоль и рисование

Пересмотрел кучу (большую!) разнообразных библиотек для вывода графики в консоль (с её переключением в графический режим - спасибо за указание на принципиальную ошибку, ffinder).
Часть вообще не запустилась. Настройка и сборка проекта с другими - сами по себе могут тянуть на курсовую работу для неподготовленного студента.
Поэтому, возвращаемся к псевдографике.
Сперва рассматривал вариант, более близкий к предложенному ffinder-ом. А именно: управление непосредственно терминалом (при помощи функции system).
Подробнее:
ать
ыть

Потом решил всё же использовать более завёрнутые функции (на некотором уровне "те же яйца", но на уровне цпп-кода более привычно, имхо)
опаньки
В К::Б вроде всё пашет. Но, не расходимся: обладателей студии попрошу потестить семпл, когда руки дойдут.
Ещё раз спасибо всем принимавшим участие в обсуждении!
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Harter (10.12.2011)
Старый 10.12.2011, 01:24   #14
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Консоль и рисование

Ух ты - руки дошли
#include <conio.h>
#include <iostream>
#include <windows.h>

using namespace std;

int main(){
    SetConsoleTitle("boolean");

    WORD ATTR;
    COORD POS;
    HANDLE CH=GetStdHandle(STD_OUTPUT_HANDLE);

    for(int items=0;items<100;items++){
        ATTR=FOREGROUND_BLUE*(rand()%2) | FOREGROUND_GREEN | FOREGROUND_INTENSITY*(rand()%2) | BACKGROUND_BLUE*(rand()%2);
        POS.X=rand()%70;
        POS.Y=rand()%20;
        SetConsoleTextAttribute(CH,ATTR);
        SetConsoleCursorPosition(CH,POS);

        cout<<char(1+rand()%6)<<endl;
    }
    POS.X=0;
    POS.Y=21;
    SetConsoleCursorPosition(CH,POS);
    getch();
	return 0;
}
Просьба потестить (укажите свою иде, используемый компилятор, ОС).
Код может потребовать доработки под конкретную конфигурацию. Картинка может отличаться от приведённой, т.к. параметры используемого в качестве ГПСЧ ЛКГ у разных компиляторов разные.
Спасибо!

У меня уже готовы два задания, для которых такой функционал вывода достаточен.
Миниатюры
Нажмите на изображение для увеличения
Название: cons_kvasi_grap.jpg
Просмотров: 1816
Размер:	33.6 Кб
ID:	15679  
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
BlackDragon (10.12.2011), Harter (10.12.2011)
Старый 10.12.2011, 02:25   #15
Harter
Бывалый
 
Аватар для Harter
 
Регистрация: 03.11.2008
Адрес: Украина, Днепропетровск
Сообщений: 871
Написано 554 полезных сообщений
(для 2,520 пользователей)
Ответ: Консоль и рисование

На втором и третем скрине
1 warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
Заменил на _getch - всё ок.

ОС: XP SP 3.
Visual C++ 6, Visual Studio 2005, Visual Studio 2008.
Миниатюры
Нажмите на изображение для увеличения
Название: Visual C++ 6.JPG
Просмотров: 2248
Размер:	129.7 Кб
ID:	15680  Нажмите на изображение для увеличения
Название: Visual Studio 2005.JPG
Просмотров: 1226
Размер:	136.2 Кб
ID:	15681  Нажмите на изображение для увеличения
Название: Visual Studio 2008.JPG
Просмотров: 1592
Размер:	138.0 Кб
ID:	15682  
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (10.12.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 18:07.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com