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

Крестики-нолики - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дата случайным образом http://www.cyberforum.ru/cpp-beginners/thread885670.html
Добрый вечер! Помогите пожалуйста написать программу, которая генерирует дату случайным образом в формате "дд.мм.гггг" Я буду очень благодарна! Заранее спасибо!
C++ не корректная работа меню или всей программы Народ помогите плиз, сделал меню к проге, но программа уходит в бесконечный цикл. #include <iostream> #include <conio.h> #include <cstdlib> using namespace std; // функция определения символа void prog() { string fileName, currWord, currMax = ""; cout<<"\nВедите имя файла "; http://www.cyberforum.ru/cpp-beginners/thread885664.html
Наиболее часто встречаемая буква в масиве C++
Подскажите алгоритм поиска наиболее часто встречаемой буквы в масиве =)
Массив данных. Дан файл f, содержащий информацию о багаже нескольких пассажиров. Найти: C++
Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан файл f, содержащий информацию о багаже нескольких пассажиров, информация о багаже каждого пассажира представляет собой соответствующую пару чисел. Найти: а){это я нашел} б)число пассажиров, количество пассажиров, количество вещей которых превосходит среднее число вещей. в)определить, имеются ли 2 пассажира, багажи...
C++ Работа с блок - схемами (Класс) http://www.cyberforum.ru/cpp-beginners/thread885635.html
Доброго времени суток, подскажите пожалуйста как представить класс в блок схеме, на форуме почитал, что классы не представляются в блок схемах, а как тогда представить функции этого класса? Заранее благодарен за любое содействие в решении моего вопроса. Собственно вот алгоритм: // Itog.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream>
C++ Ввод двумерного массива символов char с клавиатуры к примеру нужно ввести массив размером 4х2 : a f b d c e g h как это можно реализовать в С/С++ ? подробнее

Показать сообщение отдельно
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1

Крестики-нолики - C++

01.06.2013, 20:03. Просмотров 1497. Ответов 5
Метки (Все метки)

Пишу крестики нолики, получается смесь ООП и говнокода
Вот собственно код:
Кликните здесь для просмотра всего текста
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
#include "Pole.h"
void CChunk::setState(e_state new_state)
{
    state=new_state;
}
 
 
 
CPole::CPole()
{
    glClearColor(0.0,1.0,0.0,0.0);
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_QUADS);
    glColor3f(1.0,0.0,0.0);
    glVertex2i(0,0);
    glVertex2i(0,300);
    glVertex2i(300,300);
    glVertex2i(300,0);
    glEnd();
    //glutSwapBuffers();
    //glFlush();
}
void CPole::render(CChunk quad)
{
    glBegin(GL_QUADS);
    glColor3f(0.0,1.0,0.0);
    glVertex2i(quad.minx, quad.miny);
    glVertex2i(quad.maxx,quad.miny);
    glVertex2i(quad.maxx, quad.maxy);
    glVertex2i(quad.minx, quad.maxy);
    glEnd();
}
void CPole::render()
{
 
    render(chunk[0][0]);
    render(chunk[0][1]);
    render(chunk[0][2]);
    render(chunk[1][0]);
    render(chunk[1][1]);
    render(chunk[1][2]);
    render(chunk[2][0]);
    render(chunk[2][1]);
    render(chunk[2][2]);
    //glutSwapBuffers();
    glFlush();
 
}
void CPole::init()
{
//  _________________________
//  |       |       |       |
//  |  0,0  |   0,1 |  0,2  |
//  |_______|_______|_______|
//  |       |       |       |
//  |  1,0  |  1,1  |  1,2  |
//  |_______|_______|_______|
//  |       |       |       |
//  |  2,0  |  2,1  |  2,2  |
//  |_______|_______|_______|
 
//1 ряд
    chunk[0][0].minx=1;
    chunk[0][0].maxx=99;
    chunk[0][0].miny=1;
    chunk[0][0].maxy=99;
 
    chunk[0][1].minx=101;
    chunk[0][1].maxx=199;
    chunk[0][1].miny=1;
    chunk[0][1].maxy=99;
 
    chunk[0][2].minx=201;
    chunk[0][2].maxx=299;
    chunk[0][2].miny=1;
    chunk[0][2].maxy=99;
 
// 2 ряд
    chunk[1][0].minx=1;
    chunk[1][0].maxx=99;
    chunk[1][0].miny=101;
    chunk[1][0].maxy=199;
 
    chunk[1][1].minx=101;
    chunk[1][1].maxx=199;
    chunk[1][1].miny=101;
    chunk[1][1].maxy=199;
 
    chunk[1][2].minx=201;
    chunk[1][2].maxx=299;
    chunk[1][2].miny=101;
    chunk[1][2].maxy=199;
// 3 ряд
    chunk[2][0].minx=1;
    chunk[2][0].maxx=99;
    chunk[2][0].miny=201;
    chunk[2][0].maxy=299;
 
    chunk[2][1].minx=101;
    chunk[2][1].maxx=199;
    chunk[2][1].miny=201;
    chunk[2][1].maxy=299;
 
    chunk[2][2].minx=201;
    chunk[2][2].maxx=299;
    chunk[2][2].miny=201;
    chunk[2][2].maxy=299;
}
void CPole::xrest(CChunk quad)
{
    glBegin(GL_LINES);
    glColor3f(0.0,0.0,1.0);
    glVertex2i(quad.minx, quad.miny);
    glVertex2i(99, 99);
    glVertex2i(99, quad.miny);
    glVertex2i(quad.minx,99);
    glEnd();
    glFlush();
}


Хидер
Кликните здесь для просмотра всего текста
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
#ifndef POLE_H_INCLUDED
#define POLE_H_INCLUDED
 
#include <GL/freeglut.h>
#include <GL/gl.h>
class CChunk
{
    public:
    CChunk()
    {
        state=nul;
    }
    int minx;
    int maxx;
    int miny;
    int maxy;
    enum e_state {empt, xrest, nul} state;
    void setState(e_state new_state);
};
 
 
class CPole
{
public:
    CChunk chunk[3][3];
    CPole();
    void render(CChunk quad);
    void render();
    void init();
    void xrest(CChunk quad);
 
};
#endif // POLE_H_INCLUDED


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
#include <GL/freeglut.h>
#include <GL/gl.h>
#include "Pole.h"
using namespace std;
int win;
CPole pole;
void setOrthographicProjection() {
 
    // switch to projection mode
    glMatrixMode(GL_PROJECTION);
 
    // save previous matrix which contains the
    //settings for the perspective projection
    glPushMatrix();
 
    // reset matrix
    glLoadIdentity();
 
    // set a 2D orthographic projection
    gluOrtho2D(0, 300, 300, 0);
 
    // switch back to modelview mode
    glMatrixMode(GL_MODELVIEW);
}
 
void display()
{
    pole.render();
}
static void key(unsigned char key, int x, int y)
{
    switch(key)
    {
    case 27:
    {
        glutDestroyWindow(win);
    }
    }
}
 
 
void idle(void)
{
    glutPostRedisplay();
}
 
void mouse(int btn, int state, int x, int y)
{
    switch(state)
 
    case 1:if(x>0&&x<99&y>0&&y<99)
    {
        //MessageBox(NULL,"opopop","yutytuyt", MB_OK);
        pole.xrest(pole.chunk[0][0]);
    }
}
 
/* Program entry point */
 
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitWindowSize(300,300);
    glutInitWindowPosition(0,0);
    glutInitDisplayMode(GLUT_RGB);
    //glutInitWindowStyle(GLUT_NO_RESIZE);
    win=glutCreateWindow("game");
 
 
    setOrthographicProjection();
    CPole pole;
    pole.init();
    pole.render();
    glutKeyboardFunc(key);
    glutIdleFunc(idle);
    glutDisplayFunc(display);
    glutMouseFunc(mouse);
 
 
    glutMainLoop();
 
    return EXIT_SUCCESS;
}


Проблема возникла в функции void CPole::xrest(CChunk quad).
Вызываю её вот так pole.xrest(pole.chunk[0][0]);
Если я в функции пишу точки цифрами то всё норм, а когда беру значения с pole.chunk[0][0] начинается магия
Вот так всё норм
C++
1
2
3
4
5
6
7
8
9
10
11
void CPole::xrest(CChunk quad)
{
    glBegin(GL_LINES);
    glColor3f(0.0,0.0,1.0);
    glVertex2i(quad.minx, quad.miny);
    glVertex2i(99, 99);
    glVertex2i(99, quad.miny);
    glVertex2i(quad.minx,99);
    glEnd();
    glFlush();
}
А вот так не рисует крестика
C++
1
2
3
4
5
6
7
8
9
10
11
void CPole::xrest(CChunk quad)
{
    glBegin(GL_LINES);
    glColor3f(0.0,0.0,1.0);
    glVertex2i(quad.minx, quad.miny);
    glVertex2i(quad.maxx, quad.max);
    glVertex2i(quad.maxx, quad.miny);
    glVertex2i(quad.minx,quad.maxy);
    glEnd();
    glFlush();
}
ОНО почемуто не может прочитать значения quad.maxx, quad.maxy, а с quad.minx, quad.miny всё норм
Вопрос:
Почему так?

Добавлено через 19 часов 33 минуты
есть хоть какие нибудь идеи?

Добавлено через 45 минут
ап ап

Добавлено через 48 минут
двое суток в ступоре))

Добавлено через 20 часов 22 минуты
Люди помогите
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru