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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как несколько раз использовать метод добавления элементов в массивы, если все значения разные http://www.cyberforum.ru/cpp-beginners/thread1218105.html
В классе есть метод добавления в массив. Как мне в программе несколько раз использовать этот метод класса, если нужно одновременно несколько массивов, но каждый со своими значениями. Нужно создавать такой же класс? Ребята, вы лучшие!)))
C++ Найти такие пары натуральных чисел, сумма которых является квадратом некоторого натурального числа На интервале найти такие пары натуральных чисел, сумма которых является квадратом некоторого натурального числа. Пожалуйста, экзамен. http://www.cyberforum.ru/cpp-beginners/thread1218103.html
Конструктор базового класса C++
Привет, друзья, есть, к примеру, такие классы: class Base { public: int x; Base() { } };
C++ Как удалить последний символ строки(голову в стеке)
struct List { int x; List *Next,*Head;} ; void Add (int x, List **MyList) {
C++ Из текстового файла считать матрицу и записать ее в бинарный файл http://www.cyberforum.ru/cpp-beginners/thread1218039.html
Прошу помочь с решением: Из текстового файла считать матрицу и записать ее в бинарный файл Добавлено через 2 часа 22 минуты Помогите пожалуйста, срочно нужно Добавлено через 1 час 4 минуты Пожалуйста, мне через 3 часа нужна она будет
C++ Книги по c++ для новичка Подскажите книги по c++ для новичка Знаний в програмировании нет подробнее

Показать сообщение отдельно
artemd55131
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 60
30.06.2014, 03:18  [ТС]     Загрузка информации из файла (система рекордов в игре "Змейка")
спс всё понятно.только переменная для рекорда 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
 
Текущее время: 02:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru