,   CyberForum.ru

, - "0" - C++

C++ ? http://www.cyberforum.ru/cpp-beginners/thread779507.html
! . - ( ) , , x,y , . ? c++ - , ...
C++ , , , , . .. , - , , . http://www.cyberforum.ru/cpp-beginners/thread779502.html
C++ ""
1. , ? 2. Microsoft Visual Studio 2010 : , , Debug , exe. #include <vcl.h> #pragma hdrstop #include <iostream> #include <list> #include <ios> #include <cstdlib>...
C++
C++ define http://www.cyberforum.ru/cpp-beginners/thread779363.html
, ? #define MAX(a,b) a>b? a:b
C++ ! , . , . , !

 
-5 / 0 / 0
: 29.07.2012
: 61
05.02.2013, 18:34     , - "0"
- error.

sfunc.h
C++
1
2
3
4
5
6
7
8
#ifndef FUNCTION_SNAKE_H
#define FUNCTION_SNAKE_H
 
void initMap(); // è*èöè*ëèç*öèÿ ê*ðòû
void showMap(); // ôó*êöèÿ ðèñóåò ê*ðòó
void control(const char key, snake &s); // óïð*âëå*èå çìåéêîé
 
#endif // FUNCTION_SNAKE_H
snake.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef SNAKE_H
#define SNAKE_H
 
const int L = 30; // äëè***
const int W = 20; // øèðè**
char map[W][L];
 
class snake{
    private:
        int x, y;
        int length;
    public:
        snake(): x(0), y(0), length(0){}
        snake(int xN, int yN, int lN): x(xN), y(yN), length(lN){}
        
        void operator ++(); // îïåð*òîð ïðå-è*êðåìå*ò* ïîñûë*åò çìåéêó ââåðõ
        void operator ++(int); // îïåð*òîð ïîñ-è*êðåìå*ò* ïîñûë*åò çìåéêó âïð*âî
        void operator --(); // îïåð*òîð ïðå-äåêðåìå*ò* ïîñûë*åò çìåéêó â*èç
        void operator --(int); // îïåð*òîð ïîñ-äåêðåìå*ò* ïîñûë*åò çìåéêó âëåâî
};
 
#endif // SNAKE_H
snake.cpp
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
#include "snake.h"
 
void snake::operator ++(){
    // îïåð*òîð ïðå-è*êðåìå*ò* ïîñûë*åò çìåéêó ââåðõ
    map[y][x] = ' ';
    // ïðîâåðê* âûõîä* ç* ãð**èöû ì*ññèâ*
    (y == 0)? y = (W - 1): --y;
    map[y][x] = '^';
}
 
void snake::operator ++(int){
    // îïåð*òîð ïîñ-è*êðåìå*ò* ïîñûë*åò çìåéêó âïð*âî
    map[y][x] = ' ';
    // ïðîâåðê* âûõîä* ç* ãð**èöû ì*ññèâ*
    (x == (L - 1))? x = 0: ++x;
    map[y][x] = '>';
}
 
void snake::operator --(){
    // îïåð*òîð ïðå-äåêðåìå*ò* ïîñûë*åò çìåéêó â*èç
    map[y][x] = ' ';
    // ïðîâåðê* âûõîä* ç* ãð**èöû ì*ññèâ*
    (y == (W - 1))? y = 0: ++y;
    map[y][x] = 'v';
}
 
void snake::operator --(int){
    // îïåð*òîð ïîñ-äåêðåìå*ò* ïîñûë*åò çìåéêó âëåâî
    map[y][x] = ' ';
    // ïðîâåðê* âûõîä* ç* ãð**èöû ì*ññèâ*
    (x == 0)? x = (L - 1): --x;
    map[y][x] = '<';
}
main.cpp
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
#include <iostream>
#include <conio.h>
#include <ctime>
#include <windows.h>
#include <cstdlib>
 
#include "snake.h"
#include "sfunc.h"
 
int main(int argc, char *argv[]){
    
    initMap();
    
    const int i = 200;
    char move = 'd';
    
    snake s;
    while(1){
        showMap();
        Sleep(i);
        
        if(kbhit()){
            move = getch();
        }
        control(move, s);
        
        system("cls");
    }
    
    getch();
    return EXIT_SUCCESS;
}
 
void initMap(){
    // è*èöè*ëèç*öèÿ ê*ðòû
    for(int i=0; i<W; i++){
        for(int j=0; j<L; j++){
            map[i][j] = '.';
        }
    }
}
 
void showMap(){
    // ôó*êöèÿ ðèñóåò ê*ðòó
    for(int i=0; i<W; i++){
        for(int j=0; j<L; j++){
            std::cout << map[i][j];
        }
        std::cout << std::endl;
    }
}
 
void control(const char key, snake &s){
    // óïð*âëå*èå çìåéêîé
    switch(key){
        case 'w': ++s; break; // ïðå-è*êðåìå*ò ïîñûë*åò çìåéêó ââåðõ
        case 'a': s--; break; // ïîñ-äåêðåìå*ò ïîñûë*åò çìåéêó âëåâî
        case 's': --s; break; // ïðå-äåêðåìå*ò ïîñûë*åò çìåéêó â*èç
        case 'd': s++; break; // ïîñ-è*êðåìå*ò ïîñûë*åò çìåéêó âïð*âî
        default: break;
    }
}
...
!

3 22
, , !
*. , .
?
.
 
: 16:58. GMT +3.
- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
@Mail.ru