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

и снова змейка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Классы в c++ http://www.cyberforum.ru/cpp-beginners/thread635793.html
Скажите в каких случаях используются классы в c++. До меня как-то очень долго доходит)
C++ Передать параметры в строку Всем привет, подскажите как правильно передать параметры в такую строку? char *stat = "INSERT INTO tablica(id, mas, res) VALUES('123', '234', '324')"; Ну т.е. чтобы вместо цифр вставить переменные в которых будет содержаться информация. http://www.cyberforum.ru/cpp-beginners/thread635791.html
C++ Никак не могу понять в чем ошибка
все прокомментировал. При компиляции выдает, что в 9 строчке невозможно преобразовать "const wchar_t " в "LPCSTR". HELP:cry: подскажите где ошибка и как исправить. // 1.cpp: определяет точку входа для приложения. // #include <Windows.h> LRESULT WINAPI WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE...
C++ задача на эйлеров граф
помогите кто может: даны 5 точек (расположенные конвертом, эйлеров граф) в 4 из них содержится 1 буква, а в одной 2. Можно ли проходя по одному разу собрать город РФ. Заранее спасибо за помощь. хотя бы идеи, ссылки, в общем кто чем может.
C++ Прокомментируйте код http://www.cyberforum.ru/cpp-beginners/thread635781.html
//--------------------------------------------------------------------------- #pragma hdrstop #include <iostream> #include <conio.h> //--------------------------------------------------------------------------- #include <stdio.h> #define N 1000
C++ Работа со звуком! (Ошибка) Аппаратный генератор случайных чисел! Доброго времени суток занимаюсь созданием аппаратного генератора случайных чисел на основе звуковой карты, и вот застала в расплох некая ошибка fatal error C1083: Не удается открыть файл предкомпилированный заголовок: Debug\Mmmsystem.pch: No such file or directory Как разрешить проблему?:( подробнее

Показать сообщение отдельно
RaiaNKnight
96 / 70 / 7
Регистрация: 29.06.2011
Сообщений: 464
Записей в блоге: 1
10.08.2012, 21:35     и снова змейка
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
#include <iostream>
#include <ctime>
#include <conio.h>
#include <vector>
#include <Windows.h>
 
using namespace std;
 
struct coord
{
    int x;
    int y;
};
 
void move(vector <coord> &snake)
{
    for(int i=snake.size()-1;i>0;i--)
    {
        snake[i].x=snake[i-1].x;
        snake[i].y=snake[i-1].y;
    }
}
bool check_collision(vector <coord> &snake)
{
    for(int i=1;i<snake.size();i++)
        if(snake[i].x==snake[0].x&&snake[i].y==snake[0].y)
            return true;
    return false;
}
void add_element_to_snake(vector <coord> &snake,char elem,int &curr_length)
{
    curr_length++;
    coord xy;
    xy.x=snake[curr_length-2].x;
    xy.y=snake[curr_length-2].y;
    snake.push_back(xy);
}
 
int main()
{
    srand(time(0));
    vector <coord> snake;
    int curr_length=1;
    const int row = 20, col = 20;
    char mass[row][col]; 
    coord xy;
    xy.x=rand()%20; xy.y=rand()%20; //head
    snake.push_back(xy);
    for ( int j = 0 ; j < row ; j++ )
        for (int i = 0 ; i < col ; i++ )
            mass[j][i] = ' ';
    mass[snake[0].x][snake[0].y] = '*'; 
    for(int i=0;i<10;i++)
    {
        mass[rand()%20][rand()%20]='*';  //еда 
    }
    int inp = 0;
    do
    {
        system("cls");
        for ( int j = 0 ; j < row ; j++ )
        {
            for (int i = 0 ; i < col ; i++ )
                cout << mass[j][i] << " ";
            cout << endl ;
        }
        Sleep(800);
        if (_kbhit())
        {
            inp=_getch();
            if (inp==224)
                inp=_getch();
        }
        mass[snake[snake.size()-1].x][snake[snake.size()-1].y]=' ';
        move(snake);
        switch (inp)
        {
            case 75://left
                snake[0].y--;
                if(snake[0].y<0)
                    snake[0].y=19;
                break;
            case 77://right
                snake[0].y++;
                if(snake[0].y>19)
                    snake[0].y=0;
                break;
            case 72://up
                snake[0].x--;
                if(snake[0].x<0)
                    snake[0].x=19;
                break;
            case 80://down
                snake[0].x++;
                if(snake[0].x>19)
                    snake[0].x=0;
                break;
        } 
        char curr_elem = mass[snake[0].x][snake[0].y];
        if(curr_elem=='*')
            if(!check_collision(snake))
                add_element_to_snake(snake,curr_elem,curr_length);
            else
            {
                system("cls");
                cout<<"Score - "<<curr_length<<endl;
                cout<<"Game over!";
                break;
            }
        for(int i=0;i<snake.size();i++)
            mass[snake[i].x][snake[i].y]='*';
    }
    while(inp!=27);
    _getch();
    return 0;
}
Если змейка состоит из 2 и более элементов, то при попытке идти "назад", т.е. при действии типа -> <- проигрыш. Можете исправить, если желаете.
И вообще, вам бы как-нибудь избавиться от постоянного очищения консоли, долго уж это.
Есть вроде бы методы для прямого вывода в определенную позицию или нет?

P.s. И ошибки тоже не исключены
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru