Среда, 25 Декабря 2024, 05:38

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
KornivalДата: Пятница, 14 Января 2011, 20:40 | Сообщение # 461 | Тема: Нубский ворпос.
The Witcher
Сейчас нет на сайте
Да я уже разобрался, буду пользоваться связанными списками. Спасибо всем.

Сообщение отредактировал Kornival - Пятница, 14 Января 2011, 20:42
KornivalДата: Пятница, 14 Января 2011, 20:29 | Сообщение # 462 | Тема: Нубский ворпос.
The Witcher
Сейчас нет на сайте
Matou, у меня есть некий класс который хранит переменные, сколько переменных он должен хранить заранее не известно, поэтому надо динамически выделять память для них. Вот собственно и вся проблема.

Сообщение отредактировал Kornival - Пятница, 14 Января 2011, 20:32
KornivalДата: Пятница, 14 Января 2011, 19:29 | Сообщение # 463 | Тема: Нубский ворпос.
The Witcher
Сейчас нет на сайте
Quote (Matou)
int *point = new int[size];

В том и дело что мне неизвестен размер массива, нужно добавлять объекты в класс динамически, по ходу выполнения программы.


Сообщение отредактировал Kornival - Пятница, 14 Января 2011, 19:38
KornivalДата: Пятница, 14 Января 2011, 16:31 | Сообщение # 464 | Тема: Нубский ворпос.
The Witcher
Сейчас нет на сайте
Ясно. Тогда допустим я не знаю сколько мне понадобится памяти, как можно постоянно динамически выделять память и как к ней потом обращаться. Нужно сделать что-то вроде vector`a. Ну в общем как выделять память понятно, но как сделать "итератор"?
KornivalДата: Пятница, 14 Января 2011, 14:38 | Сообщение # 465 | Тема: #if
The Witcher
Сейчас нет на сайте
#include <clocale>
KornivalДата: Пятница, 14 Января 2011, 14:38 | Сообщение # 466 | Тема: Нубский ворпос.
The Witcher
Сейчас нет на сайте
А без использования windows.h нельзя? Мне в принципе подойдет любой таймер-надо замерить скорость выполнения сортировки.

Добавлено (14.01.2011, 14:38)
---------------------------------------------
P.S.

Code

int *point;
point = new int;
((int*)point+1) = new int;

Почему компилятор орет об ошибке?


Сообщение отредактировал Kornival - Пятница, 14 Января 2011, 13:48
KornivalДата: Пятница, 14 Января 2011, 14:18 | Сообщение # 467 | Тема: Файлы 21
The Witcher
Сейчас нет на сайте
Quote (ezhickovich)
Я думаю не для кого не секрет, что в звук или картинку можно вкладывать часть души...

Это ты буквально? wink
KornivalДата: Пятница, 14 Января 2011, 13:57 | Сообщение # 468 | Тема: Call of Duty 4 с использованием iz3D
The Witcher
Сейчас нет на сайте
Quote (StalkerPROFI)
когда в кинотеатр приходишь там ведь 3D одинаковое для всех....

Там и экран одинаковый для всех tongue
KornivalДата: Вторник, 11 Января 2011, 21:18 | Сообщение # 469 | Тема: Нубский ворпос.
The Witcher
Сейчас нет на сайте
Спасибо hands

Добавлено (11.01.2011, 21:18)
---------------------------------------------
Подскажите пожалуйста, как получить системное время в миллисикундах, есть ли, в стандартной библиотеке, функция или класс для работы с ним?

Сообщение отредактировал Kornival - Вторник, 11 Января 2011, 21:19
KornivalДата: Вторник, 11 Января 2011, 19:33 | Сообщение # 470 | Тема: Декси и Блоссом
The Witcher
Сейчас нет на сайте
Quote (Eggman)
Bubble Bobble.

Погуглил, нашел скрины, в этой игре "закрытые" уровни?


Сообщение отредактировал Kornival - Вторник, 11 Января 2011, 19:34
KornivalДата: Вторник, 11 Января 2011, 19:17 | Сообщение # 471 | Тема: Кто круче: Ферамон или Александр Мецель?
The Witcher
Сейчас нет на сайте
Когда работы будут, просто так голосовать не буду biggrin
KornivalДата: Вторник, 11 Января 2011, 18:37 | Сообщение # 472 | Тема: #if
The Witcher
Сейчас нет на сайте
Quote (Hagrael)
а что вообще значит ** ? Сколько уровней у массива?

** значит указатель на указатель.
ВНИМАНИЕ! Хоть одномерный массив и является указателем, двумерный массив не является указателем на указатель. Поэтому надо создавать двумерный динамический массив(а это уже указатель на указатель). Решил обратить на это внимание так как сам наступал на эти грабли.
KornivalДата: Вторник, 11 Января 2011, 18:15 | Сообщение # 473 | Тема: #if
The Witcher
Сейчас нет на сайте
В приципе надо только немного подправить код:
Code

#include <iostream>    
#include <stdlib.h>    
#include <conio.h>    

using namespace std;    

void initGame(bool **map);    

int main() {    
     char act;    
     int char_code, x=0, y=0;    
     bool game_continues=true;
     bool **map = new bool*[20];
     for (int i = 0; i < 20; i++) map[i] = new bool[15];

     initGame(map);    

     while (game_continues) {    
      for (int i=0; i<20; i++) {    
       for (int j=0; j<15; j++) {    
        if (map[i][j]==true) {cout << "P";} else {cout << " ";}    
       }    
       cout << "\n";    
      }    
      act=_getch();    
      system("CLS");    
      char_code=static_cast<int>(act);    
      switch(char_code) {    
       case 27:    
        game_continues=false;    
        break;    
       case 75:    
        if (x>0) {    
         map[y][x]=false;    
         x-=1;    
         map[y][x]=true;    
        }    
        break;    
       case 77:    
        if (x<14) {    
         map[y][x]=false;    
         x+=1;    
         map[y][x]=true;    
        }    
        break;    
       case 72:    
        if (y>0) {    
         map[y][x]=false;    
         y-=1;    
         map[y][x]=true;    
        }    
        break;    
       case 80:    
        if (y<19) {    
         map[y][x]=false;    
         y+=1;    
         map[y][x]=true;    
        }    
        break;    
      }    
     }    
       for (int i = 0; i < 20; i++) delete[]map[i];
       delete[]map;
        return 0;    
}    

void initGame(bool **map) {    
     for (int i=0; i<20; i++) {    
      for (int j=0; j<15; j++) {    
       map[i][j]=false;    
      }    
     }    
     map[0][0]=true;    
}

Главное не забыть потом удалить массив.

Добавлено (11.01.2011, 18:15)
---------------------------------------------

Quote (Hagrael)
не понял, что значит динамически?

Если с операторами new и delete незнаком-забудь. biggrin


Сообщение отредактировал Kornival - Вторник, 11 Января 2011, 18:16
KornivalДата: Вторник, 11 Января 2011, 18:09 | Сообщение # 474 | Тема: #if
The Witcher
Сейчас нет на сайте
Quote (Hagrael)
void initGame(bool **map);

По идее это должно рабоать только если создавать двухмерный массив динамически happy

Добавлено (11.01.2011, 18:09)
---------------------------------------------

Quote (Matou)
Функции инициализируются?

Написал так, чтобы бло ему понятно dry
KornivalДата: Понедельник, 10 Января 2011, 20:27 | Сообщение # 475 | Тема: #if
The Witcher
Сейчас нет на сайте
Quote (ezhickovich)
И да, если хочешь, то этот вопрос тоже к тебе!

Не то чтобы очень хотел, но все равно отвечу-внутрь этой функции не взглянул, т. к. компилятор ошибок больше не выдавал. biggrin


Сообщение отредактировал Kornival - Понедельник, 10 Января 2011, 20:29
KornivalДата: Понедельник, 10 Января 2011, 20:18 | Сообщение # 476 | Тема: #if
The Witcher
Сейчас нет на сайте
Quote (evilCode)
И не всё исправил.

Внутрь этой функции я даже не посмотрел biggrin
У меня код скомпилировался.
Quote (ezhickovich)
Зачем вообще указывать размер массива???

Quote (ezhickovich)
**map

А про такую фичу я действительно не знал!
Quote (ezhickovich)
ачем заполнять массив нулями вручную, если это можно сделать при его создании???

Тоже вопрос ко мне?
KornivalДата: Понедельник, 10 Января 2011, 19:22 | Сообщение # 477 | Тема: Wizzards
The Witcher
Сейчас нет на сайте
Ну вот , мы с вами похоже обидели ни в чем неповинного тролля. biggrin

Сообщение отредактировал Kornival - Понедельник, 10 Января 2011, 19:22
KornivalДата: Понедельник, 10 Января 2011, 19:09 | Сообщение # 478 | Тема: Wizzards
The Witcher
Сейчас нет на сайте
Честно говоря после фразы
Quote (Alsooo)
Также потребуется(легальная, а не позаимствованная) копия компилятора

ни один нормальный человек к тебе в команду не пойдет.
Quote (Alsooo)
Рисую хорошо

Примеры?


Сообщение отредактировал Kornival - Понедельник, 10 Января 2011, 19:09
KornivalДата: Понедельник, 10 Января 2011, 18:18 | Сообщение # 479 | Тема: #if
The Witcher
Сейчас нет на сайте
Quote
Что у меня не так?

Все не так smile
Quote (Hagrael)
int initGame(bool map[]);

Если собираешься пихать в функцию двухмерный массив, то надо указывать размер второго "контейнера".

Quote (Hagrael)
bool map[20][15];

Quote (Hagrael)
int initGame(bool map[15][20])

Функция обрабатывает массив размером [15][20], а ты пихаешь туда массив размером [20][15].
Code

int main() {   
       return 0;   
       bool map[20][15];   
       initGame(map);   
}

оператор return должен стоять в конце фунцкии main.
Короче держи правильный вариант
Code

int initGame(bool map[][20]);   
int main() {   
         
       bool map[15][20];   
       initGame(map);   
       return 0;   
}   
int initGame(bool map[15][20]) {   
    for (int i=0; i<20; i++) {   
     for (int j=0; j<15; j++) {   
      map[i][j]=false;   
     }   
    }   
    map[0][0]=true;   
    return 0;   
}


Сообщение отредактировал Kornival - Понедельник, 10 Января 2011, 18:25
KornivalДата: Понедельник, 10 Января 2011, 17:49 | Сообщение # 480 | Тема: #if
The Witcher
Сейчас нет на сайте
Hagrael, функции инициализируются в порядке расположения в коде.
Quote (Hagrael)
Если да, то зачем прототипы?

Вот когда придется разбивать код и держать его в нескольких файлах, тогда поймешь biggrin
Quote (Hagrael)
И зачем юзать статические переменные, если они всегда будут в памяти?

Я использовал статические переменные в качестве счетчиков. Если выбирать между глобальными и статическими переменными, я думаю выбор очевиден.


Сообщение отредактировал Kornival - Понедельник, 10 Января 2011, 17:51
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг