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

Как сделать так, чтобы значения экземпляров класса не повторялись - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Считывание из текстового файла http://www.cyberforum.ru/cpp-beginners/thread1162632.html
Всем привет. У меня есть текстовый файл в котором, к примеру записана информация:"Фамилия Имя". Как мне из этого файла по словно считать информацию в переменные, то есть что бы переменные а="Фамилия", b="Имя".
C++ Изменение размера массива Допустим в main-е я объявил указатель определенного типа и создал переменную int size, затем адрес указателя и переменной size передаю первую функцию. В ней меняется значение переменной size и объявляется массив динамический массив, адрес которого совпадает с указателем, который я передал. Массив имеет размер size. Всё это возвращается в main, а затем передается в другую функцию, массив очищается... http://www.cyberforum.ru/cpp-beginners/thread1162616.html
C++ Разработать метод, который нечетное число заменяет на 0,а четное число уменьшает в два раза
Разработать метод f (х) , который нечетное число заменяет на 0, а четное число уменьшает в два раза. Продемонстрировать работу данного метода на примере.
Ошибка в конструкторе класса C++
Всем доброго времени суток! Есть простая задачка: Написать реализацию класса и короткую программку, использующую все функции-члены. Есть объявление класса: #ifndef COW_H #define COW_H class Cow {
C++ Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений "Да", "Нет", "На http://www.cyberforum.ru/cpp-beginners/thread1162604.html
C++ Все целые числа из диапазона от А до В (А В), оканчивающиеся на любую четную цифру Вывести на экран: Замечание. Решите каждую задачу тремя способами - используя операторы цикла while, do while и for. подробнее

Показать сообщение отдельно
лилиэн
6 / 6 / 0
Регистрация: 22.11.2012
Сообщений: 95
30.04.2014, 21:22  [ТС]     Как сделать так, чтобы значения экземпляров класса не повторялись
Дело в том, что я только начала писать. Еще нету почти ничего. Проверка идет от 0 до id, тоесть проверяются только те, которые существуют.
Кода отвечающего за перемещение и за слияние и соответсвенно удаление еще нету, есть только появляющиеся прямоугольники и все. И задача на данном этапе обеспечить только то, чтобы они появлялись на разных местах, и все.
Весь код привожу ниже
Кликните здесь для просмотра всего текста
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
#include<GL/glut.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
int ClientWidth=300;
int ClientHeigh=400;
int forbitten=50,forbitten2=250;
class Rect
{
public:
    int x;
    int y;
    int value;
    static int id;
    int myid;
    Rect();
    Rect(const Rect &copy);
    ~Rect();
    void AddRects(int direction);
};
int Rect::id=0;
Rect *rectangles[16];
void RenderScene(void)
    {
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.0f,0.0f,0.0f);
    glLineWidth(5);
    glHint(GL_LINE_SMOOTH_HINT,GL_NICEST);
    glEnable(GL_LINE_SMOOTH);
    glBegin(GL_LINES);
        for(int i=1;i<=5;i++)
        {
        glVertex2f(50,i*50);
        glVertex2f(250,i*50);
        }
        for(int i=1;i<=5;i++)
        {
        glVertex2f(i*50,50);
        glVertex2f(i*50,250);
        }
    glEnd();
    glLineWidth(1);
    glBegin(GL_LINES);
        glVertex2f(50,50-11);
        glVertex2f(250,50-11);
        glVertex2f(50,250+11);
        glVertex2f(250,250+11);
        glVertex2f(50-11,50);
        glVertex2f(50-11,250);
        glVertex2f(250+11,50);
        glVertex2f(250+11,250);
    glEnd();
    glPointSize(25);
    glBegin(GL_POINTS);
    glVertex2f(50,50);
    glVertex2f(50,250);
    glVertex2f(250,50);
    glVertex2f(250,250);
    glEnd();
    rectangles[0]=new Rect;
    glutSwapBuffers();
    }
 
 
void SetupRC()
    {
    glClearColor(0.94f, 0.78f, 0.49f, 1.0f );
    glColor3f(0.0f, 1.0f, 0.0f);
    }
void SpecialKeys(int key, int x, int y)
    {
    if(key == GLUT_KEY_UP)
 
    if(key == GLUT_KEY_DOWN)
 
    if(key == GLUT_KEY_LEFT)
 
    if(key == GLUT_KEY_RIGHT)
 
    glutPostRedisplay();
    }
 
 
void ChangeSize(int w, int h)
    {
    GLfloat nRange = 300.0f;
    if(h == 0)
        h = 1;
 
    glViewport(0, 0, w, h);
 
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
 
    if (w <= h) 
        gluOrtho2D (0, nRange, 0, nRange+100);
    else 
        gluOrtho2D(0, nRange, 0, nRange+100);
 
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    }
 
int main(int argc, char* argv[])
    {
        srand(time(NULL));
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(ClientWidth,ClientHeigh);
    glutCreateWindow("Lilian Su 2048 Game");
    glutReshapeFunc(ChangeSize);
    glutSpecialFunc(SpecialKeys);
    glutDisplayFunc(RenderScene);
    SetupRC();
    glutMainLoop();
 
    return 0;
    }
Rect::Rect()
{
    id++;
    this->myid=id;
    this->x=rand()%4;
    this->y=rand()%4;
    /*for(int i=0;i<id;i++)
    {
        if((rectangles[i]->x==this->x)&&(rectangles[i]->y==this->y)&&(rectangles[i]->myid!=this->myid))
        {
            this->x=rand()%4;
            this->y=rand()%4;
        }
 
    }*/
 
    this->value=rand()%10;
    if(this->value==9)
        this->value=2;
    else
        this->value=4;
    glRectf(60+this->x*50,60+this->y*50,90+this->x*50,90+this->y*50);
}


Добавлено через 56 секунд
А что за позиционное поле, загуглила но кажись не то что вы имели в виду...
 
Текущее время: 04:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru