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

Игра Змейка (хвост змеи) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ряды. Рекурсия http://www.cyberforum.ru/cpp-beginners/thread46394.html
В общем,у меня задача написать рекурсивно вычисление выражения exp(0.56*x+ln(x^2)) с помощью рядов. Нужно получить число просуммированных членов ряда,обеспечивающих вычисление исходной функции с задаваемой абсолютной или относительной степенями точности. Формула у нас такая: http://myphoto.nnov.ru/thumb/1eecf3be7183d6d6a949afdc0ca747c1.jpg. А рекурсия вот откуда берется: вычислить обязательно...
C++ Расчет кол-ва неотрицательных элементов массива надо найти кол-во не отрицательных элементов массива он выводит какое-то число далеко заходящее за номера элементов #pragma hdrstop #include <iostream.h> #include <stdlib.h> //--------------------------------------------------------------------------- #pragma argsused int snch( int**j,const int x,const int y); int main(){ int x,y;... http://www.cyberforum.ru/cpp-beginners/thread46362.html
Ввод данных. C++
Долго оправдываться что совсем начинающий я не буду). Поставил компилятор Dev-C++, решил проверить как работает - написал программку, которая должна считывать числа и складывать - он откомпилировал, но кроме как вывести фразу "enter any number" - он ничего не делает. Ладно, ок. Ошибка в коде? - Специально перепечатал пример из справочника Шилдта, перепроверил - вдруг чего потерял. Но нет -...
Ошибка при компиляции C++
Подскажите пожалуйста из-за чего выходит эта ошибка при компиляции программы Unresolved external 'min(const int *, const int)' referenced from H:\MY DOCUMENTS\УПИ\PROGRAMMIROVANIE\VISUAL\WORKS\C++\MO DULNOE\MIN V MODULE\UNIT1.OBJ При этом компилятор других ошибок не выдает
C++ Функция flush() на C/C++ http://www.cyberforum.ru/cpp-beginners/thread46237.html
Уважаемые эксперты, обясните пожалуйста функцию flush() на C/C++... Буду очень благодарен...
C++ Где найти список data types для C и C++? Здравствуйте. Подскажите, пожалуйста, где можно найти список data types (не знаю как они еще называются, поэтому по поиску ничего не нашел) с русскими или английскими описаниями, сгрупированными по директивам (заголовки, #инклюды, если я правильно их назвал) по C и C++. Был бы очень благодарен за такой список. Вдруг, может у кого в закладках есть. Или книга, может, такая есть. А то приходится... подробнее

Показать сообщение отдельно
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,908
09.08.2009, 14:49     Игра Змейка (хвост змеи)
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
#include <iostream>
#include <ctime>
 
#include <windows.h>
#include <conio.h>
 
using std::cout;
using std::flush;
 
const int Y = 20, X = 50;
enum DIR{UP, DOWN, LEFT, RIGHT};
 
/*функция для перестановки звеньев змейки местами: т.е. если,
  к примеру, у змейки 4 звена, то 4-ое становится 3-им, 3-е становится 2-ым,
  2-ое становится 1-ым, а 1-ое(голова змеи) в последствии перемещается на новую координату*/
//================================================================
void rebuild_snake(COORD *array, int array_count)
{
    for(int i = array_count-1; i >= 1; --i)
        array[i] = array[i-1];
 
}
//================================================================
 
int main()
{
 
        srand(time(NULL));
 
        int a[Y][X] = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} };
 
        int count = 1;               // количество звеньев в змейке
        int lives = 100;             // счетчик жизней
        int i, j, code = 'w';
        int currScore = 0, Score = 200, Speed = 300;
 
        HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
        COORD coord[10] = {{25,10}}; // Координаты смайла(размер массива можно увеличить или использовать динамический)
        COORD coordjab={15,15};
        COORD coordLives = {0,21};   // Координаты вывода счетчика жизней
        COORD coordScore = {0,22};   // Координаты вывода счетчика Очков
        COORD coordSpeed = {0,23};   // Координаты вывода счетчика Очков
 
/////Отрисовка поля>>>
        for(i = 0; i < Y; ++i)
        {
                for(j = 0;j < X; ++j)
                {
                        switch(a[i][j])
                        {
                            case 1 : cout << (char)177;break;
                            case 0 : cout << ' ';break;
                        }
                }
                cout << '\n';
        }
/////Отрисовка поля>>>
 
/////Движение червя>>>
        while(code)
        {
            Sleep(Speed);                 // Задержка движения
            if(_kbhit()) code = _getch(); // Если пользователь нажал клавишу получаем ее код
            else
            {
                SetConsoleCursorPosition(console, coord[count-1]);
                cout << ' ' << flush; // Стираем смайл
 
                rebuild_snake(coord, count);
 
                if(code=='w')--coord[0].Y;
                else if(code=='s')++coord[0].Y;
                else if(code=='a')--coord[0].X;
                else if(code=='d')++coord[0].X;
            }
 
/////Движение червя>>>
/////Отрисовка яблока>>>
            if(coordjab.X==coord[0].X && coordjab.Y==coord[0].Y)
            {
                ++count;  // увеличиваем количество звеньев змейки
                currScore+=100;
                SetConsoleCursorPosition(console, coordjab);
 
                rebuild_snake(coord, count);
 
                coord[0].X = coordjab.X;
                coord[0].Y = coordjab.Y;
 
                /*без этого получается немного некрасиво )))
                  но при этом взять яблоко в такой ситуации
                |         
                |0 @@@   
                |         
                не получится. Только так  
                |@
                |@
                |@
                |         
                |0    
                |         
                хотя можно попробовать это исправить, но это уже без меня ))...*/
                if(code=='w')--coord[0].Y;
                else if(code=='s')++coord[0].Y;
                else if(code=='a')--coord[0].X;
                else if(code=='d')++coord[0].X;
                /*...*/
 
                coordjab.X = rand() % 48+1; //
                coordjab.Y = rand() % 18+1; // кординаты яблока
            }
/////Отрисовка яблока>>>
            if(Score==currScore) Score+=300, Speed-=10;
 
            if(a[coord[0].Y][coord[0].X] == 1)
            {
                --lives;
                coord[0].X = 25;
                coord[0].Y = 10;
            }
            if(lives == 0)
            {
                system("cls");
                COORD center = {35,15};
                SetConsoleCursorPosition(console,center);
                cout << " G A M E  O V E R!!!\n\n\n\n" << flush;
                _getch();
                break;
            }
 
 
 
            //**********************************************************************червь
            for(int i = 0; i < count; ++i)
            {
                SetConsoleTextAttribute(console, FOREGROUND_GREEN|FOREGROUND_INTENSITY);            // Цвет смайла - зеленый
                SetConsoleCursorPosition(console, coord[i]);
                cout << (char)1 << flush;                                                           // Выводим смайл                                                            //перестраиваем нашу змейку
            }
 
            SetConsoleTextAttribute(console, FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED);      // Возвращаем белый цвет
 
            //*********************************************************************яблоко
            SetConsoleCursorPosition(console,coordjab);
            SetConsoleTextAttribute(console, FOREGROUND_RED|FOREGROUND_INTENSITY);                  // Цвет врага - красный
            cout << (char)2 << flush;                                                               // Рисуем
            SetConsoleTextAttribute(console, FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED);      // Возвращаем белый цвет
 
            //**********************************************************************жизни
            SetConsoleCursorPosition(console,coordLives);
            cout << "Lives: " << lives << flush;
            SetConsoleCursorPosition(console,coordScore);
            cout << "Score: " << currScore << flush;
            SetConsoleCursorPosition(console,coordSpeed);
            cout << "Speed: " << Speed << flush;
        }//while(code)
 
        return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru