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

Несколько вопросов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ текст. файлы http://www.cyberforum.ru/cpp-beginners/thread282930.html
программа - C++ оплата_- 180руб 1. Пусть дан текстовый файл. Определите, сколько строк файла имеют длину, большую, равную и меньшую, чем заданное значение k. 2. Пусть дан файл целых чисел. Определите длину наибольшего интервала возрастания и среднее арифмитическое чисел этого интервала.
C++ Очередь C++ всем доброе утро) вот такое задание:все отрицательные элементы сдвинуть в начало очереди(заполнение либо рандомно ,либо с клавы) ; велико благодарствую ,если кто поможет,да и если кратко объяснит комментариями) Добавлено через 5 часов 14 минут эм, тогда лучше как реализовать ? через список или через массив? http://www.cyberforum.ru/cpp-beginners/thread282885.html
C++ Исключить согласные буквы в строке C/C++
Привет всем! Помогите решить такую задачку: Ввести строку с клавиатуры. Переписать данную строку в новую, исключив все согласные буквы английского алфавита.
Составить прогу - Информация о заявках на авиабилеты C++
Составить прогу, которая содержит текующую информацию о заявках на авиабилеты. каждая заявка содержит: -пункт назначения; -номер рейса; -фамилию и инициалы пассажиров; -желаемую дату вылета. прога должна обеспечивать: -хранение всех заявок в виде двоичного дерева; -добавление и удаление заявок; -по заданному номеру рейса и дате вылета вывод заявок с их последующим удалением; -вывод всех заявок.
C++ Пожалуйста помогите Составьте программу, которая определяет, принадлежит ли точка с координатами (х,у) http://www.cyberforum.ru/cpp-beginners/thread282838.html
Помогите пожалуйста)) Составьте программу, которая определяет, принадлежит ли точка с координатами (х,у) объединению закрашенных областей данного графика. Значения координат ввести c клавиатуры. Ответ в развернутом виде вывести в консоль. В случае необходимости организовать ввод дополнительных параметров графиков.
C++ Вычислить суммы элементов каждой строки матрицы, определить наименьшее значение этих сумм и ... вычислить суммы элементов каждой строки матрицы x,определить наименьшее значение этих сумм и номер соответствующей строки.... вот начало моего решения,возможно есть ошибки,помогите пожалуйста сдедать до конца #include <iostream.h> #include <stdlib.h> #include <conio.h> #include <stdio.h> using namespace std; int main() { int x,i; подробнее

Показать сообщение отдельно
dimon1984
40 / 38 / 0
Регистрация: 22.01.2011
Сообщений: 670
26.04.2011, 20:03  [ТС]     Несколько вопросов
как я уже упоминал, опыта ещё маловато, так что очень буду рад любым полезным и просто для размышления подсказкам
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
#include <iostream>
#include <cstdlib>
#include <windows.h>
using namespace std;
 
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
 
#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
 
class Level
{
protected:
    char **lev;
    COORD yx;
    int draw_x;
    int draw_y;
    int dx, dy; 
    int x, y;
public:
 
    Level()
    {
        lev= new char*[50];
        for(y=0;y<50;y++) lev[y]=new char[320];
        for(x=0;x<320;x++)
        {
            for(y=0;y<50;y++)
                lev[y][x]=' ';
        }
        for(y=5;y<15;y++) lev[y][10]=char(177);
        for(y=5;y<15;y++) lev[y][220]=char(177);
        for(x=11;x<220;x++) lev[14][x]=char(177);
 
        for(y=30;y<40;y++) lev[y][8]=char(177);
        for(y=30;y<40;y++) lev[y][210]=char(177);
        for(x=9;x<210;x++) lev[39][x]=char(177);
        draw_x=0, draw_y=0;
        dx=0,dy=0; 
        yx.X=0; yx.Y=0;
        ShowConsoleCursor(FALSE);
    }
    ~Level()
    {
        for(x=0;x<50;x++) delete[]lev[x];
        delete[]lev;
    }
    void Draw()
    {
//      ShowConsoleCursor(FALSE);
        x=draw_x, y=draw_y;
/*
        yx.X=10; yx.Y=0; //x=draw_x, y=draw_y;
        SetConsoleCursorPosition(hConsole, yx);
        cout<<"draw_x="<<draw_x<<' '<<"draw_y="<<draw_y<< \
            ' '<<"mx="<<mx<<' '<<"my="<<my<<' '<<cout<<lev[my][mx];*/
        while(true) //vivod level
        {
            yx.X=dx; yx.Y=dy;
            if(dx==80) {dy++; dx=0; y++; x=draw_x;}
            if(dy==24 && dx==79) break;
            SetConsoleCursorPosition(hConsole, yx);
            cout<<lev[y][x]; x++; dx++;
        }
        dy=0; y=draw_y;
    }
/*  int Get_dx() {return draw_x;}
    int Get_dy() {return draw_y;}
    void add_dx() {draw_x++;}
    void sub_dx() {draw_x--;}
    void add_dy() {draw_y++;}
    void sub_dy() {draw_y--;}*/
};
 
class Moves: public Level
{
protected:
    COORD xy;
    int mx, my;
//  char X;
    char kl;
public:
//  Moves():{}
    Moves(short _x, short _y): Level()
    {xy.X=_x; xy.Y=_y; mx=_x; my=_y;}
 
    void moves()
    {
//      SetConsoleCursorPosition(hConsole, xy);
//      cout<<X;
        kl=getch();
        if(kl=='d')
        {
            if(xy.X<60 || xy.X>=60 && draw_x==240)
                {if(xy.X<79) xy.X++;}
            else if(draw_x<240)  draw_x++;
            if(mx<319) mx++;
        }
        else if(kl=='a')
        {
            if(xy.X>=20  \
                || xy.X<20 && draw_x==0) 
                {if(xy.X>0) xy.X--;}
            else if(draw_x>0) draw_x--;
            if(mx>0) mx--;
        }
        else if(kl=='w')
        {
/**/
            if(xy.Y>=10  \
                || xy.Y<10 && draw_y==0) 
                {if(xy.Y>0) xy.Y--;}
            else if(draw_y>0) draw_y--;
            if(my>0) my--;
        }
        else if(kl=='s')
        {
/**/
            if(xy.Y<15  \
                || xy.Y>=15 && draw_y==25)
                {if(xy.Y<24) xy.Y++;}
            else if(draw_y<25) draw_y++;
            if(my<49){my++;}
        }
        kl=0;
    }
};
/**/
class men: public Moves
{
protected:
    char X;
    bool fl;
    int t;
    char str;
    unsigned long len;
public:
    men(short _x, short _y, char _X):Moves(_x,_y) {X=_X; fl=true;}
 
    bool Get_simb(short _x, short _y, char s)
    {
        pos.Y = _y; pos.X = _x;
        ReadConsoleOutputCharacter(hConsole, &str, 1, pos, &len);
        if(str==s) return true;
        return false;
    }
    void Draw()
    {
/**/
        Moves::Draw();
        yx.X=10; yx.Y=0; //x=draw_x, y=draw_y;
        SetConsoleCursorPosition(hConsole, yx);
        cout<<"draw_x="<<draw_x<<' '<<"draw_y="<<draw_y<< \
            ' '<<"mx="<<mx<<' '<<"my="<<my<<' '<<lev[my][mx];
    }
    void moves()
    {
        SetConsoleCursorPosition(hConsole, xy);   cout<<X;
        if(Get_simb(xy.X-1, xy.Y, ' '))   //здесь проверка на соприкосновение
        { if(fl) Moves::moves(); }   // при подходе к стене зависает чувак
//      else if(Get_simb(xy.X+1, xy.Y, ' ')) Moves::moves();
//          Moves::moves();
//      else cout<<'W';
    }
/**/
    void grav()   // гравитация
    {
        if(Get_simb(xy.X, my+1, ' '))
        {
            fl=false;
            while(true)
            {
                t=GetTickCount();
                while(true)
                {
                    if(GetTickCount()-t==250)
                    {
                        SetConsoleCursorPosition(hConsole, xy); cout<<' ';
                        if(xy.Y<15  || xy.Y>=15 && draw_y==25)
                            {if(xy.Y<24) xy.Y++;}
                        else if(draw_y<25) draw_y++;
                        if(my<49){my++;}
                        SetConsoleCursorPosition(hConsole, xy);
                        cout<<X; break;
                    }
                }
                if(Get_simb(xy.X, my+1, char(177))) break;
            }
            fl=true;
        }//if
    }// grav()
};
 
 
int main()
{
//  Level L;
    men Man(20,5,'X');
 
    while(!KEYDOWN(VK_ESCAPE))
    {
        Man.Draw();
 
        Man.grav();
        Man.moves();
    }
 
    system("pause");
    return 0;
}
 
BOOL ShowConsoleCursor(BOOL bShow)
{
    CONSOLE_CURSOR_INFO cci;
    HANDLE hStdOut;
 
    hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
 
    if(hStdOut == INVALID_HANDLE_VALUE)
        return FALSE;
 
    if(!GetConsoleCursorInfo(hStdOut, &cci))
        return FALSE;
 
    cci.bVisible = bShow;
 
    if(!SetConsoleCursorInfo(hStdOut,&cci))
        return FALSE;
 
    return TRUE;
}
Я для простоты в коде наследовал класс Level классом men.
Потом может что-то придумаю может что-то подскажете полезное.
Man.moves(); в цикле идёт обработка клавиш.
Вложения
Тип файла: rar game.rar (95.5 Кб, 6 просмотров)
 
Текущее время: 00:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru