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

Создание игры три в ряд - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
13.04.2013, 21:49     Создание игры три в ряд #1
Здравствуйте! Хочу создать игру три в ряд, но уже в самом начале столкнулся с проблемой. Мне нужно, чтобы при генерации массива по циклу проверялось, есть ли 3 и больше повторений одинакового символа. Мой вариант иногда работает а иногда нет. Подскажите, что мне нужно исправить.
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
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
 
void generation( char**, const int, const int );
 
int main() {
    srand( time( NULL ) + rand() );
    const int sizeX = 8;
    const int sizeY = 5;
    
    char **table = new char *[sizeX];
    
    for( int i = 0; i < sizeX; i++ )
        table[i] = new char [sizeY];
        
    generation( table, sizeX, sizeY );  
    
    return 0;
}
 
void generation( char **table, const int sizeX, const int sizeY ) {
    const char symbols[] = { static_cast< char >(254), static_cast< char >(4),
                             static_cast< char >(5), static_cast< char >(6)  };
                             
    while( true ) {
        for( int y = 0; y < sizeY; y++ ) {
            for( int x = 0; x < sizeX; x++ ) {
                table[x][y] = symbols[rand() % 3];
                std::cout << table[x][y] << " ";
            }
            std::cout << std::endl;
        }
            
        int repeatsX = 0;
        int repeatsY = 0;   
        int counterX = 0; 
        int counterY = 0;
        
        for( int y = 0; y < sizeY - 1; y++ ) {
            for( int x = 0; x < sizeX - 1; x++ ) {
                if( table[x][y] == table[x + 1][y] ) {
                    counterX++;
                } else {
                    if( counterX > 1 )
                        repeatsX++;
                    counterX = 0;
                }
            }
            counterX = 0;
        }
    
        std::cout << "counterX = " << counterX << std::endl
                  << "counterY = " << counterY << std::endl
                  << "repeatsX = " << repeatsX << std::endl
                  << "repeatsY = " << repeatsY << std::endl;
              
        getch();
        std::system( "cls" );
    }
}
Добавлено через 25 минут
Мдаа... уже третья по счету тема, ответ на которую, скорее всего, я не дождусь.

Добавлено через 1 час 33 минуты
Пожалуйста помогите разобраться! Я уже не знаю что делать...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 21:49     Создание игры три в ряд
Посмотрите здесь:

Создание игры и софта C++
C++ Задача на создание карточной игры.
C++ Создание игры! Программисты ХЕЛП!!!
Создание игры - Змейка. C++
C++ Создание игры на Visual C++
sdl,c++ создание 2D игры C++
Создание игры C++
C++ Создание игры

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 16:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru