Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Псевдографика в консоле


Автор: Prolss 24.5.2011, 22:14
Подскажите, как делают в консоле, вот так: __________
                                                                          |                  |
                                                                          |                  |
                                                                          |_________|
вот мой код:

Код

#include <conio.h>
#include <iostream>
#include <clocale>

using namespace std;



int main()
{
setlocale (LC_CTYPE,"rus");

 int i,j;
 char arr[3][3];
 for (int i=0;i<3;i++)
{
        for (int j=0;j<3;j++)
        
        {
            cout<<i<<"_";
        cout<<j<<"|";
        }
}
   
   _getch();
   return 0;
}


Ой! Извеняюсь не туда написал...

Автор: bsa 24.5.2011, 23:10

M
bsa
перенес "туда"

Автор: 500mhz 25.5.2011, 00:39
printf ом делают обычно

Автор: volatile 25.5.2011, 00:58
Цитата(Prolss @  24.5.2011,  22:14 Найти цитируемый пост)
Подскажите, как делают в консоле, вот так: __________
                                                                          |                  |
                                                                          |                  |
                                                                          |_________|

Так вы так и сделали. smile 
возможно вы хотели так?
Код

cout << "╔════╤════╗  ┌────╥────┐ \n";
cout << "║    │    ║  │    ║    │ \n";
cout << "╟────┼────╢  ╞════╬════╡ \n";
cout << "║    │    ║  │    ║    │ \n";
cout << "╚════╧════╝  └────╨────┘ \n";

Автор: Prolss 25.5.2011, 02:11
Это 'каркас' игры: морской бой. Там два прямоугольника(побольше конечно). Так вот, они должны быть сделаны массивами.

Автор: bsa 25.5.2011, 10:36
Prolss, ну сделай массивами. Экран консоли это массив символов, обычно, 80x25. Тебе никто не мешает сделать такой же в памяти и работать с ним, периодически выводя на экран.

Автор: Prolss 25.5.2011, 16:59
Цитата(bsa @ 25.5.2011,  10:36)
ну сделай массивами.

bsa,  Ну, да точно. Как же я раньше не понял: чтобы "нарисовать массивами" нужно "нарисовать массивами"...А если серьёзно то у меня как раз вопрос, как это сделать? 
  Вот часть кода. Как вывести этот масив на экран?
Код

const int s = 13, c = 29;
char map[s][c] = {
        "  0123456789     0123456789 ",
        " #----------#   #----------#",
        "0|          |  0|          |",
        "1|          |  1|          |",
        "2|          |  2|          |",
        "3|          |  3|          |",
        "4|          |  4|          |",
        "5|          |  5|          |",
        "6|          |  6|          |",
        "7|          |  7|          |",
        "8|          |  8|          |",
        "9|          |  9|          |",
        " #----------#   #----------#" };


Автор: xvr 25.5.2011, 17:53
Цитата(Prolss @  25.5.2011,  16:59 Найти цитируемый пост)
Как вывести этот масив на экран?

Для этого вам нужен этот самый 'Экран', причем в виде массива. Это называется http://msdn.microsoft.com/en-us/library/ms682010(v=VS.85).aspx. Конкретно вам нужна функция http://msdn.microsoft.com/en-us/library/ms687404(v=VS.85).aspx

Автор: Prolss 25.5.2011, 19:30
Ладно, наверно я плохо объяснил проблему:  Вот ссылка на код(игру). Она консольная. Там есть масив который рисует два квадрата.. Как "отделить" этот массв от остального кода, чтобы просто програма(массив) нарисовала квадраты и всё(хочу разобраться как это "рисуется" с помощью массивов):
http://shatalov.su/code/cpp_primer/sea_battle_full.txt

Автор: bsa 25.5.2011, 21:24
Prolss, код не смотрел.
Обычно, двумерный массив выводят так:
Код
for(int y = 1; y <= 25; ++y)
   for(int x = 1; x <= 81; ++x) {
      gotoxy(x,y);
      cputchar(array[y-1][x-1]);
   }

Автор: Prolss 25.5.2011, 22:00
Цитата(bsa @ 25.5.2011,  21:24)
Обычно, двумерный массив выводят так:
Код
for(int y = 1; y <= 25; ++y)
   for(int x = 1; x <= 81; ++x) {
      gotoxy(x,y);
      cputchar(array[y-1][x-1]);
   }

bsa,  Я вижу у вас отменное чувство юмора..  Кстати, спасибо что тему перенесли.

Автор: bsa 25.5.2011, 23:27
Цитата(Prolss @  25.5.2011,  22:00 Найти цитируемый пост)
bsa,  Я вижу у вас отменное чувство юмора.

каков вопрос, таков ответ. Читай мою подпись и думай, почему ты еще не получил подходящий ответ.

Автор: volatile 26.5.2011, 01:45
Цитата(Prolss @ 25.5.2011,  16:59)
Как вывести этот масив на экран?
Код

const int s = 13, c = 29;
char map[s][c] = {
        "  0123456789     0123456789 ",
        " #----------#   #----------#",
        "0|          |  0|          |",
        "1|          |  1|          |",
        "2|          |  2|          |",
        "3|          |  3|          |",
        "4|          |  4|          |",
        "5|          |  5|          |",
        "6|          |  6|          |",
        "7|          |  7|          |",
        "8|          |  8|          |",
        "9|          |  9|          |",
        " #----------#   #----------#" };

Код

for (int i=0; i<s; ++i)
   printf ("%s\n", map [i]);

Автор: volatile 26.5.2011, 02:01
а, сорри, забыл. люблю принтф
Если потоками то, так:
Код

for (int i=0; i<s; ++i)
   std::cout << map [i] << std::endl;

http://liveworkspace.org/code/322dff3e9924c2d782d3f2bae159b697

Автор: Prolss 26.5.2011, 14:36
volatile, Большое спасибо! Вот это я и хотел узнать..

Автор: teesync 27.7.2022, 04:24
Модератор: Сообщение скрыто.

Автор: teesync 2.9.2022, 05:21
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)