Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 61
1

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

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

Author24 — интернет-сервис помощи студентам
Не получается сделать считывание из файла и загрузки рекорда,помогите.Пытался сам,но всё запорол
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();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2014, 02:52
Ответы с готовыми решениями:

Сохранение и загрузка в игре Змейка
Здравствуйте я недавно начал разрабатывать игру Змейка на C#. Я новичок в C#. Полный листинг...

Delphi таблица рекордов для игры Змейка
Хочу в игру добавить таблицу рекордов. Чтобы 10 лучших результатов записывались в таблицу....

Таблица рекордов в игре
Добрый день, необходима помощь в создании таблицы лидеров в игре . Необходимо что бы после...

Количество очков и таблица рекордов в игре 2048
пишу я значит 2048 и мне бы хотелось реализовать количество очков и таблицу рекордов, чтобы в...

Как сделать сохранение рекордов с вводом имени в игре
Я написал игру. И теперь нужно в графическом(не текстовом) режиме сделать чтобы после GAMEOVER'a...

12
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 61
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();
}
0
Эксперт по математике/физикеЭксперт С++
2048 / 1366 / 395
Регистрация: 16.05.2013
Сообщений: 3,505
Записей в блоге: 6
27.06.2014, 08:14 3
То ли я слепой, то ли у вас действительно нет чтения/записи в файл. Тогда в чем вопрос?
1
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 61
27.06.2014, 08:47  [ТС] 4
в этом вся проблема.я не знаю как.
0
Эксперт по математике/физикеЭксперт С++
2048 / 1366 / 395
Регистрация: 16.05.2013
Сообщений: 3,505
Записей в блоге: 6
27.06.2014, 09:07 5
Что вам записать в файл нужно?
0
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 61
27.06.2014, 09:32  [ТС] 6
рекордное кол-во очков,а после игры показать его.(буду в понедельник)
0
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
27.06.2014, 11:29 7
Что нужно считывать и в каком месте? Сформулируй понятно.
0
6 / 6 / 5
Регистрация: 15.02.2013
Сообщений: 56
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 Посмотреть сообщение
Не получается сделать считывание из файла и загрузки рекорда,помогите.Пытался сам,но всё запорол
А откуда код если не секрет, учебник какой-то? Я бы тоже поковырял, ссылку в ЛС плз.
1
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 61
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
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.06.2014, 10:35 10
artemd55131, может проще будет использовать Boost::serialization? Тем более, что рекорды таким образом можно будет расширять сколько угодно, а не ломать логику парсинга при попытке добавить новое поле.
0
dzrkot
30.06.2014, 11:21
  #11

Не по теме:

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

0
6 / 6 / 5
Регистрация: 15.02.2013
Сообщений: 56
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 Посмотреть сообщение
а змейка ваша? или та, которая на ютубе в уроках?) а то как-то без основ сделать змейку проблематично)
И это тоже верно, хотя при желании во всем по ходу можно разобраться, если понимать что пишешь а не бездумно копировать код.
0
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 61
30.06.2014, 12:14  [ТС] 13
не понимаю
0
30.06.2014, 12:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.06.2014, 12:14
Помогаю со студенческими работами здесь

Как сделать таблицу рекордов в игре Угадай число(Паскаль)
Здравствуйте! Помогите пожалуйста дополнить игру &quot;угадай число&quot;.Вот правила игры:Игра «Угадай...

Загрузка информации из файла
Добрый день! Помогите, пожалуйста. На сайте есть раскрывающееся меню со списком автомобилей....

Загрузка файла и информации о нем
Нажимаю кнопку загрузки файла, а создается запись и файл не загружается. Как это исправить? Нужно...

Загрузка информации из текстового файла
День добрый. Встала задача &quot;занести&quot; из текстового файла инфу в таблицу БД MySQL. После команды...

Загрузка информации из текстового файла
Доброго. Коллеги, есть задача загрузить в базу текстовый файл. В нем фрагменты текста, и...

Загрузка информации в listBox из текстового файла с сервера
Вопрос стоит так: 1)Есть txt фаил с описанием, находящийся по адрессу...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru