Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 26.10.2018
Сообщений: 49
1

Реализация кроссфплатформенности консоли, разрешение консоли

21.11.2018, 20:09. Показов 2787. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Можно ли как-то реализовать просчёт количества пикселей экрана? Просто есть вот такая программа, анимация снега, и если запускаешь её на определённо маленьком экране, всё плывет. Можете что-то подсказать, что бы работало при любом разрешении экрана нормально? Либо считать, сколько символов умещается, либо что?
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include "stdafx.h"
#include <iostream>
#include <windows.h>
 
using namespace std;
 
bool gameover;
const int h=20;
const int w=40;
char gf[7];
int coord[2] [100];
int  f=0, k=0;
 
void draw() {
    for (int i=0; i<100; i++){
        //Sleep(5);
            COORD position = {coord[1][i], coord[2][i]};
            HANDLE hConsol = GetStdHandle(STD_OUTPUT_HANDLE);
            SetConsoleCursorPosition(hConsol, position);
            cout<<" ";
            position.X = coord[1][i];
            position.Y = coord[2][i]+1;
            if (coord[2][i]>60) {
                SetConsoleCursorPosition(hConsol, position);
                cout<<" ";
                coord[2][i]=0;
            }
            else {
            SetConsoleCursorPosition(hConsol, position);
            cout<<"#";
            coord[2][i]++;
            }
    }
 
}
void input() {
 
}
void logic() {
 
}
void main() {
 
    ::SendMessage(::GetConsoleWindow(), WM_SYSKEYDOWN, VK_RETURN, 0x20000000);
 
    for (int i=0; i<7; i++) {
        gf[i]='#';
    }
 
        for (int t=0; t<100; t++) {
            Sleep(50);
            coord [1] [t]=f;
            coord [2] [t]=k;
        f=rand()%200;
        k=rand()%55;
            for (int j=0; j<1; j++) {
            COORD position = {f, k};
            HANDLE hConsol = GetStdHandle(STD_OUTPUT_HANDLE);
            SetConsoleCursorPosition(hConsol, position);
            cout<<"#"<<endl;
            k++;
        }
    }
    while (!gameover) {
        draw();
        input();
        logic();
    }
 
    system("pause");
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.11.2018, 20:09
Ответы с готовыми решениями:

Реализация многопоточности в консоли
Доброго времени суток. Не могу разобраться в многопоточности. Реализовано перемещение по меню с помощью клавиш, и с помощью мыши. Надо...

Клавиши F1-F12 в консоли, и работа с мышкой в консоли
Я искал на сайте, но не нашел упоминания о том как обрабатывать и или узнавать где находится курсор мышки (и еще мне надо бы узнать нажатие...

Реализация разветвляющегося меню в консоли
Привет!, Помогите написать код что бы При Нажатие клавиши 1 выполнился код после if (option == 1) #include &lt;iostream&gt; using...

3
 Аватар для COKPOWEHEU
4044 / 2595 / 431
Регистрация: 09.09.2017
Сообщений: 11,556
22.11.2018, 00:18 2
Цитата Сообщение от UzkovD Посмотреть сообщение
Реализация кроссфплатформенности консоли, разрешение консоли
Цитата Сообщение от UzkovD Посмотреть сообщение
#include <windows.h>
Так кроссплатформенность или windows?
Если первое, то посмотрите в сторону ncurses (это кроссплатформенная библиотека).
0
1 / 1 / 0
Регистрация: 26.10.2018
Сообщений: 49
22.11.2018, 08:49  [ТС] 3
COKPOWEHEU, немного неправильно выразился, нужно что бы работало с разными разрешениями экрана, уменьшая или увеличивая rand()%x число x
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
22.11.2018, 09:19 4
Лучший ответ Сообщение было отмечено UzkovD как решение

Решение

UzkovD,
GetConsoleScreenBufferInfo
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.11.2018, 09:19
Помогаю со студенческими работами здесь

считывание с консоли ( не с клавы, а именно с консоли)
нужно написать функцию которая возвращает string в котором написано 500 символов которые были выведены в консоли от начала. среда :...

Реализация данных ввода для вычисления функции не из консоли, а из файла
Возник вопрос с реализацией данных ввода для вычисления функции не из консоли, а из файла. Данные появятся в файле, когда я буду...

Реализация UNIX команды "cat" в консоли Windows с использованием WinAPI
В консоли Linux есть команда &quot;cat&quot;, аналог которой надо сделать под консоль Windows на языке C++. Требуется реализация посредством WinAPI....

Реализация команды "cat" в консоли Windows
В общем задание следующее: В консоли Linux есть команда &quot;cat&quot;, аналог которой надо сделать под консоль Windows на языке C++. В идеале...

Как изменить разрешение консоли?
Привет, прочитал пару &quot;манов&quot; но все они про разрешение GRUB, а у меня в консоле(tty?), bash или как сказать... буквы большие, но это не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Циклы for в Python
py-thonny 17.03.2025
Существует множество ситуаций, когда нам нужно выполнить одно и то же действие несколько раз. Цикл for в Python — настоящий рабочий конь для большинства программистов. Если вам нужно пройтись по всем. . .
Предсказание ветвлений - путь к высокопроизводи­тельному C++
NullReferenced 17.03.2025
В высокопроизводительном программировании на C++ каждый такт процессора на счету. Когда речь заходит о разработке систем с низкой задержкой — будь то высокочастотная торговля, обработка потоковых. . .
Паттерн CQRS в C#
UnmanagedCoder 17.03.2025
Создание сложных корпоративных приложений часто требует нестандартных подходов к архитектуре. Один из таких подходов — паттерн CQRS (Command Query Responsibility Segregation), предлагающий простую,. . .
Паттерн Цепочка ответственности в C#
UnmanagedCoder 17.03.2025
Цепочка ответственности — это поведенческий паттерн проектирования, который позволяет передавать запросы последовательно по цепочке потенциальных обработчиков, пока один из них не обработает запрос. . . .
Создаем микросервисы с NestJS, TCP и Typescript
run.dev 17.03.2025
NestJS — фреймворк, который значительно упрощает создание серверных приложений на Node. js. Его прелесть в том, что он комбинирует концепции ООП, функционального программирования и предлагает. . .
Гексагональная архитектура со Spring Boot
Javaican 17.03.2025
Если вы когда-нибудь сталкивались с ситуацией, когда внесение простых изменений в базу данных или пользовательский интерфейс заставляло вас переписывать весь код, то вы точно оцените элегантность. . .
Позиционировани­е Kafka Consumer и Seek-операции
Javaican 17.03.2025
Что же такое Consumer Seek в Kafka? По сути, это API-метод, который позволяет программно указать, с какой позиции (offset) Consumer должен начать или продолжить чтение данных из партиции. Без этого. . .
Python NumPy: Лучшие практики и примеры
py-thonny 17.03.2025
NumPy (Numerical Python) — одна из ключевых библиотек для научных вычислений в Python. Она превращает Python из просто удобного языка общего назначения в среду для проведения сложных математических. . .
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер