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

Как сократить запись? - C++

Восстановить пароль Регистрация
 
m4r1kk
2 / 2 / 0
Регистрация: 12.10.2012
Сообщений: 43
28.06.2013, 07:16     Как сократить запись? #1
Всем привет! Пишу ASCII-игру и вот такой вопросик по коду:
C++
1
2
3
4
5
6
7
8
9
10
 while(brk) play(level1);
 brk = 1;
 while(brk) play(level2);
 brk = 1;
 while(brk) play(level3);
 brk = 1;
 while(brk) play(level4);
 brk = 1;
 while(brk) play(level5);
 brk = 1;
Как можно сократить запись этого фрагмента кода?

Спасибо за ответы!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AntonChik
1083 / 581 / 21
Регистрация: 11.11.2008
Сообщений: 1,544
28.06.2013, 07:56     Как сократить запись? #2
какой тип у level1...5 ?
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
28.06.2013, 07:57     Как сократить запись? #3
Что-то вроде этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const CLevelsCount = 5;
TMyLevel level[CLevelsCount];
 
// ...
 
for (i = 0; i < CLevelsCount; ++i)
{
    brk = 1;
    while (brk)
    {
        play(level[i]);
    }
}
 
// ...
m4r1kk
2 / 2 / 0
Регистрация: 12.10.2012
Сообщений: 43
28.06.2013, 08:24  [ТС]     Как сократить запись? #4
const int c = 13, r = 16;
char level1[c][r] = {//матрица};
AntonChik
1083 / 581 / 21
Регистрация: 11.11.2008
Сообщений: 1,544
28.06.2013, 08:33     Как сократить запись? #5
на лицо ошибка проектирования.
неправильно под каждый уровень заводить отдельную матрицу, храните массивы в файлах и подгружайте по надобности.
или бы уж делали массив матриц, чтоб индекс не в имени висел, а был в пользовании.т.е.
C++
1
char*** level[1][c][r] = {...} //и т.д.
а так ничего хорошего оптимизировать не получится.
разве что запихать эти статичные массивы в один динамический и уже тогда гонять циклы.
это примерно как написал anmartex, но в данном случае это может стать лишними затратами.
m4r1kk
2 / 2 / 0
Регистрация: 12.10.2012
Сообщений: 43
28.06.2013, 08:55  [ТС]     Как сократить запись? #6
Ни хрена не понел из выше сказанного... Но все таки спасибо)

Добавлено через 5 минут
Хотя нет, сейчас дошло =) Спасибо AntonChik и anmartex...
Yandex
Объявления
28.06.2013, 08:55     Как сократить запись?
Ответ Создать тему
Опции темы

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