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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
artemd55131
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 60
#1

Загрузка информации из файла (система рекордов в игре "Змейка") - C++

27.06.2014, 02:52. Просмотров 747. Ответов 12
Метки нет (Все метки)

Не получается сделать считывание из файла и загрузки рекорда,помогите.Пытался сам,но всё запорол
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
#include <glut.h>
#include <iostream>
#include <time.h>
 
#include <windows.h>
using namespace std;
 
int score = 0;
int record = 0;
int N = 52,M = 25;
 
int Scale=25;
 
 
int w = Scale*N;
int h = Scale*M;
 
int dir,num=2;
 
struct 
{ int x;
  int y;}  s[100];
 
class Fructs
{ 
public:
    int x,y;
 
    void New()
    {  x=rand() % N;
        y=rand() % M;   }
    
    void DrawApple()
   {   glColor3f(0.0,1.0,0.0);
       glRectf(x*Scale,y*Scale,(x+1)*Scale,(y+1)*Scale); }
 
} m[10];
 
 void DrawSnake()
 {  
  glColor3f(0.0,0.0,1.5);
  for (int i=0;i<num;i++)
    {glRectf(s[i].x*Scale, s[i].y*Scale, (s[i].x+1.0)*Scale, (s[i].y+1.0)*Scale); }
 }
 
 void Tick()
 {
    for (int i=num;i>0;--i)
     {s[i].x=s[i-1].x;
     s[i].y=s[i-1].y;}
 
    if (dir==0) s[0].y+=1;      
    if (dir==1) s[0].x-=1;        
    if (dir==2) s[0].x+=1;         
    if (dir==3) s[0].y-=1;         
 
  for (int i=0;i<10;i++)
    if ((s[0].x==m[i].x) && (s[0].y==m[i].y)) 
      {num++; m[i].New();score++;}
    if(num ==2){score = 0;}
    
    if (s[0].x>N) {cout <<"your score:" <<score <<endl; glutDestroyWindow(1); system("pause"); exit(0);}  
    if (s[0].x<0) {cout <<"your score:" <<score <<endl; glutDestroyWindow(1); system("pause"); exit(0);}
  if (s[0].y>M)  {cout <<"your score:" <<score <<endl; glutDestroyWindow(1); system("pause"); exit(0);}  
  if (s[0].y<0)  {cout <<"your score:" <<score <<endl; glutDestroyWindow(1); system("pause"); exit(0);}
 
 for (int i=1;i<num;i++)
     if (s[0].x==s[i].x && s[0].y==s[i].y)  num=i;
if (num >100){
    cout <<"you win!!!" <<endl;
    glutDestroyWindow(1);
    system("pause");
    }
 }
 
 
 
void DrawField()
  {
   glColor3f(0.0,0.7,0.0);
   glBegin(GL_LINES);
    for (int i=0; i<w; i+=Scale) 
      {glVertex2f(i,0); glVertex2f(i,h);}
    for (int j=0; j<h; j+=Scale)  
      {glVertex2f(0,j); glVertex2f(w,j);}
    glEnd();
}
 
 
void display() {
 
     glClear(GL_COLOR_BUFFER_BIT);
 
    DrawField();
 
    DrawSnake(); 
 
   for (int i=0;i<10;i++)
     m[i].DrawApple();
 
   glFlush();
   glutSwapBuffers();
}
 
void KeyboardEvent(int key, int a, int b)
{   
    switch(key)
    {
        case 101 :  dir=0; break;
         case 102:   dir=2; break;
        case 100 :  dir=1; break;
        case 103 :  dir=3; break;
     }
}
 
void timer(int = 0)
{
  display();
 
  Tick();
       
 glutTimerFunc(65,timer,0);
}
 
int main(int argc, char **argv) {
    
    srand(time(0));
    
    for (int i=0;i<10;i++)
        m[i].New();
    
 
 
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB );
glutInitWindowSize (w, h);
glutCreateWindow ("HardcoreSnake"); 
glClearColor(1.0,1.0,0.6,1.0);  //цвет фона
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,w,0,h);
 
glutDisplayFunc (display);
glutSpecialFunc(KeyboardEvent);
glutTimerFunc(50,timer,0);
 
glutMainLoop();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2014, 02:52     Загрузка информации из файла (система рекордов в игре "Змейка")
Посмотрите здесь:
C++ Как реализовать взаимодействие классов в игре "Змейка"
"Теория вероятности Шейтона" и "Кодирование/дикодирование информации" (C++) C++
C++ "Змейка": при нажатии клавиши игра просто останавливается
Пишу игру "змейка". Есть вопрос по ней C++
Небольшой пример. Игра "змейка" - как в ней делают препятствия C++
"Змейка", не работают кнопки направления движения C++
Исправление кода игры "Змейка" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
artemd55131
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 60
27.06.2014, 05:30  [ТС]     Загрузка информации из файла (система рекордов в игре "Змейка") #2
Всем привет.Я занят разработкой змейки.Не получается сделать систему рекордов(
-запись в txt файл рекорда
-вывод рекорда из txt файла в программу
)
вот код:
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
#include <glut.h>
#include <iostream>
#include <time.h>
int record = 0;
#include <windows.h>
using namespace std;
 
int score = 0;
 
int N = 52,M = 25;
 
int Scale=25;
 
 
int w = Scale*N;
int h = Scale*M;
 
int dir,num=2;
 
struct 
{ int x;
  int y;}  s[100];
 
class Fructs
{ 
public:
    int x,y;
 
    void New()
    {  x=rand() % N;
        y=rand() % M;   }
    
    void DrawApple()
   {   glColor3f(0.0,1.0,0.0);
       glRectf(x*Scale,y*Scale,(x+1)*Scale,(y+1)*Scale); }
 
} m[10];
 
 void DrawSnake()
 {  
  glColor3f(0.0,0.0,1.5);
  for (int i=0;i<num;i++)
    {glRectf(s[i].x*Scale, s[i].y*Scale, (s[i].x+1.0)*Scale, (s[i].y+1.0)*Scale); }
 }
 
 void Tick()
 {
    for (int i=num;i>0;--i)
     {s[i].x=s[i-1].x;
     s[i].y=s[i-1].y;}
 
    if (dir==0) s[0].y+=1;      
    if (dir==1) s[0].x-=1;        
    if (dir==2) s[0].x+=1;         
    if (dir==3) s[0].y-=1;         
 
  for (int i=0;i<10;i++)
    if ((s[0].x==m[i].x) && (s[0].y==m[i].y)) 
      {num++; m[i].New();score++;}
    if(num ==2){score = 0;}
    
    if (s[0].x>N) {cout <<"your score:" <<score <<endl; glutDestroyWindow(1); system("pause"); exit(0);}  
    if (s[0].x<0) {cout <<"your score:" <<score <<endl; glutDestroyWindow(1); system("pause"); exit(0);}
  if (s[0].y>M)  {cout <<"your score:" <<score <<endl; glutDestroyWindow(1); system("pause"); exit(0);}  
  if (s[0].y<0)  {cout <<"your score:" <<score <<endl; glutDestroyWindow(1); system("pause"); exit(0);}
 
 for (int i=1;i<num;i++)
     if (s[0].x==s[i].x && s[0].y==s[i].y)  num=i;
if (num >100){
    cout <<"you win!!!" <<endl;
    glutDestroyWindow(1);
    system("pause");
    }
 }
 
 
 
void DrawField()
  {
   glColor3f(0.0,0.7,0.0);
   glBegin(GL_LINES);
    for (int i=0; i<w; i+=Scale) 
      {glVertex2f(i,0); glVertex2f(i,h);}
    for (int j=0; j<h; j+=Scale)  
      {glVertex2f(0,j); glVertex2f(w,j);}
    glEnd();
}
 
 
void display() {
 
     glClear(GL_COLOR_BUFFER_BIT);
 
    DrawField();
 
    DrawSnake(); 
 
   for (int i=0;i<10;i++)
     m[i].DrawApple();
 
   glFlush();
   glutSwapBuffers();
}
 
void KeyboardEvent(int key, int a, int b)
{   
    switch(key)
    {
        case 101 :  dir=0; break;
         case 102:   dir=2; break;
        case 100 :  dir=1; break;
        case 103 :  dir=3; break;
     }
}
 
void timer(int = 0)
{
  display();
 
  Tick();
       
 glutTimerFunc(65,timer,0);
}
 
int main(int argc, char **argv) {
    
    srand(time(0));
    
    for (int i=0;i<10;i++)
        m[i].New();
    
 
 
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB );
glutInitWindowSize (w, h);
glutCreateWindow ("HardcoreSnake"); 
glClearColor(1.0,1.0,0.6,1.0);  //цвет фона
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,w,0,h);
 
glutDisplayFunc (display);
glutSpecialFunc(KeyboardEvent);
glutTimerFunc(50,timer,0);
 
glutMainLoop();
}
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
27.06.2014, 08:14     Загрузка информации из файла (система рекордов в игре "Змейка") #3
То ли я слепой, то ли у вас действительно нет чтения/записи в файл. Тогда в чем вопрос?
artemd55131
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 60
27.06.2014, 08:47  [ТС]     Загрузка информации из файла (система рекордов в игре "Змейка") #4
в этом вся проблема.я не знаю как.
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
27.06.2014, 09:07     Загрузка информации из файла (система рекордов в игре "Змейка") #5
Что вам записать в файл нужно?
artemd55131
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 60
27.06.2014, 09:32  [ТС]     Загрузка информации из файла (система рекордов в игре "Змейка") #6
рекордное кол-во очков,а после игры показать его.(буду в понедельник)
nmcf
5244 / 4564 / 1532
Регистрация: 14.04.2014
Сообщений: 18,150
27.06.2014, 11:29     Загрузка информации из файла (система рекордов в игре "Змейка") #7
Что нужно считывать и в каком месте? Сформулируй понятно.
Sonance
6 / 6 / 3
Регистрация: 15.02.2013
Сообщений: 55
27.06.2014, 12:02     Загрузка информации из файла (система рекордов в игре "Змейка") #8
Вот так сохраняет.
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
 //-------------------------------------------------------------------------------
 void SaveScore(){
 
    std::ofstream F;
    F.open("Score.txt", std::ios::out | std::ios::trunc);
    F<<score;
    F.close(); 
    
 }
 //-------------------------------------------------------------------------------
 
 void Tick()
 {
    for (int i=num;i>0;--i)
     {s[i].x=s[i-1].x;
     s[i].y=s[i-1].y;}
 
    if (dir==0) s[0].y+=1;      
    if (dir==1) s[0].x-=1;        
    if (dir==2) s[0].x+=1;         
    if (dir==3) s[0].y-=1;         
 
  for (int i=0;i<10;i++)
    if ((s[0].x==m[i].x) && (s[0].y==m[i].y)) 
      {num++; m[i].New();score++;}
    if(num ==2){score = 0;}
    
    if (s[0].x>N) {cout <<"your score:" <<score <<endl; glutDestroyWindow(1); system("pause"); exit(0);}  
    if (s[0].x<0) {cout <<"your score:" <<score <<endl; glutDestroyWindow(1); system("pause"); exit(0);}
  if (s[0].y>M)  {cout <<"your score:" <<score <<endl; glutDestroyWindow(1); system("pause"); exit(0);}  
  if (s[0].y<0)  {cout <<"your score:" <<score <<endl; glutDestroyWindow(1); system("pause"); exit(0);}
  SaveScore();
 for (int i=1;i<num;i++)
     if (s[0].x==s[i].x && s[0].y==s[i].y)  num=i;
if (num >100){
    cout <<"you win!!!" <<endl;
    glutDestroyWindow(1);
    SaveScore();
    system("pause");
    }
 }
И кстати если резко нажать вперед-назад змейка умирает об себя.

Добавлено через 5 минут
Цитата Сообщение от nmcf Посмотреть сообщение
Что нужно считывать и в каком месте? Сформулируй понятно.
Что непонятного то, написано же переменную score писать и читать из файла.

А чтение будет так:
C++
1
2
3
4
std::ifstream F;
F.open("Score", std::ios::in);
F>>record;
F.close();
Добавлено через 4 минуты
Цитата Сообщение от artemd55131 Посмотреть сообщение
Не получается сделать считывание из файла и загрузки рекорда,помогите.Пытался сам,но всё запорол
А откуда код если не секрет, учебник какой-то? Я бы тоже поковырял, ссылку в ЛС плз.
artemd55131
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 60
30.06.2014, 03:18  [ТС]     Загрузка информации из файла (система рекордов в игре "Змейка") #9
спс всё понятно.только переменная для рекорда record а не score.

Добавлено через 2 минуты
Sonance, набери на youtube c++ всё что хочешь няйдёшь

Добавлено через 3 часа 20 минут
вставил код чтения в main. информация записывается,но не сохраняется(если даже я набрал меньше рекорда то в файл результат становится меньше ,а должен меняться только если я набрал больше.
код:
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
#include <fstream>
#include <glut.h>
#include <iostream>
#include <time.h>
int record = 0;
#include <windows.h>
using namespace std;
 
int score = 0;
 
int N = 52,M = 25;
 
int Scale=25;
 
 
int w = Scale*N;
int h = Scale*M;
 
int dir,num=2;
 
struct 
{ int x;
  int y;}  s[100];
 
class Fructs
{ 
public:
    int x,y;
 
    void New()
    {  x=rand() % N;
        y=rand() % M;   }
    
    void DrawApple()
   {   glColor3f(0.0,1.0,0.0);
       glRectf(x*Scale,y*Scale,(x+1)*Scale,(y+1)*Scale); }
 
} m[10];
 
 void DrawSnake()
 {  
  glColor3f(0.0,0.0,1.5);
  for (int i=0;i<num;i++)
    {glRectf(s[i].x*Scale, s[i].y*Scale, (s[i].x+1.0)*Scale, (s[i].y+1.0)*Scale); }
 }
  void SaveScore(){
 
    std::ofstream F;
    F.open("Score.txt", std::ios::out | std::ios::trunc);
    F<<score;
    F.close();
 
 
  }
 void Tick()
 {
    for (int i=num;i>0;--i)
     {s[i].x=s[i-1].x;
     s[i].y=s[i-1].y;}
 
    if (dir==0) s[0].y+=1;      
    if (dir==1) s[0].x-=1;        
    if (dir==2) s[0].x+=1;         
    if (dir==3) s[0].y-=1;         
 
  for (int i=0;i<10;i++)
    if ((s[0].x==m[i].x) && (s[0].y==m[i].y)) 
      {num++; m[i].New();score++;}
    if(num ==2){score = 0;}
    if(score > record){record = score; SaveScore();}
    if (s[0].x>N) {cout <<"your score:" <<score <<endl <<"your record:" <<record <<endl; glutDestroyWindow(1); system("pause"); exit(0);}  
    if (s[0].x<0) {cout <<"your score:" <<score <<endl <<"your record:" <<record <<endl; glutDestroyWindow(1); system("pause"); exit(0);}
  if (s[0].y>M)  {cout <<"your score:" <<score <<endl <<"your record:" <<record <<endl; glutDestroyWindow(1); system("pause"); exit(0);}  
  if (s[0].y<0)  {cout <<"your score:" <<score <<endl <<"your record:" <<record <<endl; glutDestroyWindow(1); system("pause"); exit(0);}
  
 for (int i=1;i<num;i++)
     if (s[0].x==s[i].x && s[0].y==s[i].y)  num=i;
if (num >100){
    cout <<"you win!!!" <<endl;
    glutDestroyWindow(1);
    SaveScore();
    system("pause");
    }
 }
 
 
 
void DrawField()
  {
   glColor3f(0.0,0.7,0.0);
   glBegin(GL_LINES);
    for (int i=0; i<w; i+=Scale) 
      {glVertex2f(i,0); glVertex2f(i,h);}
    for (int j=0; j<h; j+=Scale)  
      {glVertex2f(0,j); glVertex2f(w,j);}
    glEnd();
}
 
 
void display() {
 
     glClear(GL_COLOR_BUFFER_BIT);
 
    DrawField();
 
    DrawSnake(); 
 
   for (int i=0;i<10;i++)
     m[i].DrawApple();
 
   glFlush();
   glutSwapBuffers();
}
 
void KeyboardEvent(int key, int a, int b)
{   
    switch(key)
    {
        case 101 :  dir=0; break;
         case 102:   dir=2; break;
        case 100 :  dir=1; break;
        case 103 :  dir=3; break;
     }
}
 
void timer(int = 0)
{
  display();
 
  Tick();
       
 glutTimerFunc(65,timer,0);
}
 
int main(int argc, char **argv) {
    std::ifstream F;
F.open("Score", std::ios::in);
F>>record;
F.close();
    srand(time(0));
    
    for (int i=0;i<10;i++)
        m[i].New();
    
 
 
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB );
glutInitWindowSize (w, h);
glutCreateWindow ("HardcoreSnake"); 
glClearColor(1.0,1.0,0.6,1.0);  //цвет фона
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,w,0,h);
 
glutDisplayFunc (display);
glutSpecialFunc(KeyboardEvent);
glutTimerFunc(50,timer,0);
 
glutMainLoop();
}
может я накасипорил где?

Добавлено через 30 секунд
вставил код чтения в main. информация записывается,но не сохраняется(если даже я набрал меньше рекорда то в файл результат становится меньше ,а должен меняться только если я набрал больше.
код:
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
#include <fstream>
#include <glut.h>
#include <iostream>
#include <time.h>
int record = 0;
#include <windows.h>
using namespace std;
 
int score = 0;
 
int N = 52,M = 25;
 
int Scale=25;
 
 
int w = Scale*N;
int h = Scale*M;
 
int dir,num=2;
 
struct 
{ int x;
  int y;}  s[100];
 
class Fructs
{ 
public:
    int x,y;
 
    void New()
    {  x=rand() % N;
        y=rand() % M;   }
    
    void DrawApple()
   {   glColor3f(0.0,1.0,0.0);
       glRectf(x*Scale,y*Scale,(x+1)*Scale,(y+1)*Scale); }
 
} m[10];
 
 void DrawSnake()
 {  
  glColor3f(0.0,0.0,1.5);
  for (int i=0;i<num;i++)
    {glRectf(s[i].x*Scale, s[i].y*Scale, (s[i].x+1.0)*Scale, (s[i].y+1.0)*Scale); }
 }
  void SaveScore(){
 
    std::ofstream F;
    F.open("Score.txt", std::ios::out | std::ios::trunc);
    F<<score;
    F.close();
 
 
  }
 void Tick()
 {
    for (int i=num;i>0;--i)
     {s[i].x=s[i-1].x;
     s[i].y=s[i-1].y;}
 
    if (dir==0) s[0].y+=1;      
    if (dir==1) s[0].x-=1;        
    if (dir==2) s[0].x+=1;         
    if (dir==3) s[0].y-=1;         
 
  for (int i=0;i<10;i++)
    if ((s[0].x==m[i].x) && (s[0].y==m[i].y)) 
      {num++; m[i].New();score++;}
    if(num ==2){score = 0;}
    if(score > record){record = score; SaveScore();}
    if (s[0].x>N) {cout <<"your score:" <<score <<endl <<"your record:" <<record <<endl; glutDestroyWindow(1); system("pause"); exit(0);}  
    if (s[0].x<0) {cout <<"your score:" <<score <<endl <<"your record:" <<record <<endl; glutDestroyWindow(1); system("pause"); exit(0);}
  if (s[0].y>M)  {cout <<"your score:" <<score <<endl <<"your record:" <<record <<endl; glutDestroyWindow(1); system("pause"); exit(0);}  
  if (s[0].y<0)  {cout <<"your score:" <<score <<endl <<"your record:" <<record <<endl; glutDestroyWindow(1); system("pause"); exit(0);}
  
 for (int i=1;i<num;i++)
     if (s[0].x==s[i].x && s[0].y==s[i].y)  num=i;
if (num >100){
    cout <<"you win!!!" <<endl;
    glutDestroyWindow(1);
    SaveScore();
    system("pause");
    }
 }
 
 
 
void DrawField()
  {
   glColor3f(0.0,0.7,0.0);
   glBegin(GL_LINES);
    for (int i=0; i<w; i+=Scale) 
      {glVertex2f(i,0); glVertex2f(i,h);}
    for (int j=0; j<h; j+=Scale)  
      {glVertex2f(0,j); glVertex2f(w,j);}
    glEnd();
}
 
 
void display() {
 
     glClear(GL_COLOR_BUFFER_BIT);
 
    DrawField();
 
    DrawSnake(); 
 
   for (int i=0;i<10;i++)
     m[i].DrawApple();
 
   glFlush();
   glutSwapBuffers();
}
 
void KeyboardEvent(int key, int a, int b)
{   
    switch(key)
    {
        case 101 :  dir=0; break;
         case 102:   dir=2; break;
        case 100 :  dir=1; break;
        case 103 :  dir=3; break;
     }
}
 
void timer(int = 0)
{
  display();
 
  Tick();
       
 glutTimerFunc(65,timer,0);
}
 
int main(int argc, char **argv) {
    std::ifstream F;
F.open("Score", std::ios::in);
F>>record;
F.close();
    srand(time(0));
    
    for (int i=0;i<10;i++)
        m[i].New();
    
 
 
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB );
glutInitWindowSize (w, h);
glutCreateWindow ("HardcoreSnake"); 
glClearColor(1.0,1.0,0.6,1.0);  //цвет фона
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,w,0,h);
 
glutDisplayFunc (display);
glutSpecialFunc(KeyboardEvent);
glutTimerFunc(50,timer,0);
 
glutMainLoop();
}
может я накасипорил где?

Добавлено через 12 часов 30 минут
Sonance, rrrrrrrrrrrrrrrr
Psilon
Master of Orion
Эксперт .NET
5882 / 4779 / 633
Регистрация: 10.07.2011
Сообщений: 14,399
Записей в блоге: 5
Завершенные тесты: 4
30.06.2014, 10:35     Загрузка информации из файла (система рекордов в игре "Змейка") #10
artemd55131, может проще будет использовать Boost::serialization? Тем более, что рекорды таким образом можно будет расширять сколько угодно, а не ломать логику парсинга при попытке добавить новое поле.
dzrkot
30.06.2014, 11:21
  #11

Не по теме:

а змейка ваша? или та, которая на ютубе в уроках?) а то как-то без основ сделать змейку проблематично)

Sonance
6 / 6 / 3
Регистрация: 15.02.2013
Сообщений: 55
30.06.2014, 11:57     Загрузка информации из файла (система рекордов в игре "Змейка") #12
Ну так читать надо из того же файла в который записываете
C++
1
2
3
4
5
int main(int argc, char **argv) {
    std::ifstream F;
F.open("вот тут", std::ios::in);
F>>record;
F.close();
И если уж переносите значение score в record
C++
1
if(score > record){record = score; SaveScore();}
Тогда и пишите в файл record, хотя тут незачем переменные туда сюда гонять
C++
1
2
3
4
std::ofstream F;
    F.open("Score.txt", std::ios::out | std::ios::trunc);
    F<<record;
    F.close();
Цитата Сообщение от dzrkot Посмотреть сообщение
а змейка ваша? или та, которая на ютубе в уроках?) а то как-то без основ сделать змейку проблематично)
И это тоже верно, хотя при желании во всем по ходу можно разобраться, если понимать что пишешь а не бездумно копировать код.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2014, 12:14     Загрузка информации из файла (система рекордов в игре "Змейка")
Еще ссылки по теме:
Переписать в файл О все элементы файла К с заменой в них символа "0" на символ "1" и наоборот C++
Программа игра "Змейка" C++
C++ Считать с файла информацию о команде "Название" "Город", количество побед, поражений, ничьих, забитых и пропущенных мячей
Случайное распределение кораблей по полю в игре "морской бой" C++
Имитировать нажатие клавиш (программа для "макросов" в игре) C++

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

Или воспользуйтесь поиском по форуму:
artemd55131
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 60
30.06.2014, 12:14  [ТС]     Загрузка информации из файла (система рекордов в игре "Змейка") #13
не понимаю
Yandex
Объявления
30.06.2014, 12:14     Загрузка информации из файла (система рекордов в игре "Змейка")
Ответ Создать тему
Опции темы

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