Пятница, 15 Ноября 2024, 07:48

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-Ответ (C++)
KornivalДата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1
The Witcher
Сейчас нет на сайте
Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.

Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
ApatiДата: Четверг, 06 Июня 2013, 23:14 | Сообщение # 901
заслуженный участник
Сейчас нет на сайте
Цитата (mega-ice-boy)
в твоем коде, если игрок не найдет цифру 10 то игра будет остановлена

Цитата (pelmenka)
Apati, ты забыл про windows.h

Запустите код, а потом говорите где ошибки. У меня все компилится и нормально работает.
RUNGOGET2THECHOPAHДата: Четверг, 06 Июня 2013, 23:20 | Сообщение # 902
участник
Сейчас нет на сайте
Цитата (l1fe)
позже поймете как хорош goto в некоторых ситуациях.

Но точно не в той, которую ты продемонстрировал.
pelmenkaДата: Пятница, 07 Июня 2013, 00:13 | Сообщение # 903
Драгоценный Тунеядец
Сейчас нет на сайте
Apati, ну не все пользуются visual studio. У меня не компилилось.

Сталина в каждый дом!
НохчиДата: Пятница, 07 Июня 2013, 00:23 | Сообщение # 904
заслуженный участник
Сейчас нет на сайте
Цитата (l1fe)
Возможно позже поймете как хорош goto в некоторых ситуациях.

Можно какой-нибудь выразительный пример?


Многие вопросы по Windows отпадут, если посмотреть тут
l1feДата: Пятница, 07 Июня 2013, 02:53 | Сообщение # 905
был не раз
Сейчас нет на сайте
Нохчи,
Устроит?
falcowareДата: Пятница, 07 Июня 2013, 03:03 | Сообщение # 906
старожил
Сейчас нет на сайте
Нохчи,

Мой давнишний код:
НохчиДата: Пятница, 07 Июня 2013, 11:39 | Сообщение # 907
заслуженный участник
Сейчас нет на сайте
l1fe,
Цитата (l1fe)
 if ( fread(file, 1, szfile, fp) != szfile)      
    goto error;


Здесь по логике твоего кода, нужно освободить память и вернуть какой-нибудь NULL(т.к. во-первых там ошибка а не конец файла, а во-вторых мы не добавили нуль в конец и вызвавший эту функцию не знает размер буфера). Исправь это сохраняя обработку ошибок метками.


Многие вопросы по Windows отпадут, если посмотреть тут
l1feДата: Пятница, 07 Июня 2013, 11:53 | Сообщение # 908
был не раз
Сейчас нет на сайте
Нохчи,
Да, нужно, но суть была в другом - показать применение оператора goto.
Цитата
а во-вторых мы не добавили нуль в конец и вызвавший эту функцию не знает размер буфера

file[szfile] = 0x00; Это тебе о чем-нибудь говорит?
НохчиДата: Пятница, 07 Июня 2013, 12:06 | Сообщение # 909
заслуженный участник
Сейчас нет на сайте
Цитата (l1fe)
file[szfile] = 0x00; Это тебе о чем-нибудь говорит?

Я говорю о том, что будет в случае ошибки fread.
Цитата (l1fe)
показать применение оператора goto.

Ну так покажи его в коде без ошибок. Мне интересно как ты исправишь ошибку сохраняя goto.


Многие вопросы по Windows отпадут, если посмотреть тут
l1feДата: Пятница, 07 Июня 2013, 12:42 | Сообщение # 910
был не раз
Сейчас нет на сайте
Нохчи,
Это твое дело как ее обработать, можно так:

Если fread не бросает ошибку - значит мы достигли конец файла, иначе конец файла не был достигнут или был достигнут преждевременно, что и вызовет очищение буфера и возврат нулевого указателя.

В моем случае если fread бросает ошибку, проверяем был ли достигнут конец файла, если нет, то очищаем указатель, в другом случае поступаем по обычной схеме, и да, для такого случая нужно очищать выделенную память функцией memset при выделении памяти.

mega-ice-boyДата: Пятница, 07 Июня 2013, 12:48 | Сообщение # 911
частый гость
Сейчас нет на сайте
В этом программе DEV-C++ можно сделать игру и запустить и играть? (то есть можно писать исходной код и компилириовать?)

Добавлено (07.06.2013, 12:48)
---------------------------------------------
Если ответ да то пишите исходной код простой игры который можно компилировать в DEV-C и скажите путь как его компилировать ? Пожалуйста


Хочу стать профессиональным программистом! У меня есть терпение, ум.
НохчиДата: Пятница, 07 Июня 2013, 16:43 | Сообщение # 912
заслуженный участник
Сейчас нет на сайте
Код

          if( !feof(fp) )  
          {  
              free(file);  
              file = NULL;  
              goto error;  
          }

Вот и пришли к обычной cхеме.


Многие вопросы по Windows отпадут, если посмотреть тут
maXimBestUAДата: Понедельник, 10 Июня 2013, 23:10 | Сообщение # 913
почетный гость
Сейчас нет на сайте
Здравствуйте, вот не знаю что учить, хочу создать змейку c++, но не знаю как сделать взаимодействие с программой не останавливая при этом работу самой программы. Что можете подсказать?
E][pertДата: Понедельник, 10 Июня 2013, 23:49 | Сообщение # 914
C#-XNA-Unity
Сейчас нет на сайте
maXimBestUA, бесконечный цикл?

Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
Tower defence in processing... For Web/iOS/Android.
maXimBestUAДата: Вторник, 11 Июня 2013, 00:02 | Сообщение # 915
почетный гость
Сейчас нет на сайте
E][pert, Ну чтото типо этого, но чтобы можно было захватывать нажатие клавиш не останавливая цикл. Я могу сделать змейку, но она будет передвигаться только когда нажимаете клавишу, ну а мне нужно чтобы она сама двигалась и реагировал на нажатие smile
pelmenkaДата: Вторник, 11 Июня 2013, 00:09 | Сообщение # 916
Драгоценный Тунеядец
Сейчас нет на сайте
maXimBestUA, ну так сделай смену направления при нажатии клавиши.

Сталина в каждый дом!
maXimBestUAДата: Вторник, 11 Июня 2013, 00:34 | Сообщение # 917
почетный гость
Сейчас нет на сайте
pelmenka, Ну я же обьясняю, я не знаю как это сделать без прерывания цикла, я могу сделать только так, например нажимаю вправо, он передвигается на один пункт и цикл останавливается(ждет нажатие клавиши), снова нажимаю направление, он снова передвигается на один пункт, тоесть между каждым шагом змейка останавливается и ждет нажатие клавиши, а как сделать чтобы не нужно было тормозить цикл, что для этого нужно?

Сообщение отредактировал maXimBestUA - Вторник, 11 Июня 2013, 00:45
l1feДата: Вторник, 11 Июня 2013, 01:30 | Сообщение # 918
был не раз
Сейчас нет на сайте
maXimBestUA,
Если я правильно понял...
Дальше сам.


Сообщение отредактировал l1fe - Вторник, 11 Июня 2013, 01:33
pelmenkaДата: Вторник, 11 Июня 2013, 08:34 | Сообщение # 919
Драгоценный Тунеядец
Сейчас нет на сайте
maXimBestUA, юзай перехват клавиши, как написал l1fe.

Сталина в каждый дом!
maXimBestUAДата: Вторник, 11 Июня 2013, 08:34 | Сообщение # 920
почетный гость
Сейчас нет на сайте
l1fe, Спасибо, попробую разобрать ваш пример.
Поиск:

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