Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2012, 14:13   #11
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Общий алгоритм понятен, но вот что вводит в ступор. В упор не могу понять как у вас рисуется змея и окно, как я понял:

функция рисования:
Код:
void game_draw(struct Game * game)
{
	clear();
	int i;
	for (i = 0; i < game->snake_num; i++) {
		snake_draw(game->snake[ i ]);
	}

	move(game->food->x, game->food->y);
	addch('#');

	move(0, 0);
	refresh();
}


void snake_draw(struct snake_type * snake)
{
	move(snake->head->x, snake->head->y);
	addch(snake->head_type);

	struct coord * curr = snake->head->next;
	while (curr != NULL) {
		move(curr->x, curr->y);
		addch(snake->tail_type);

		curr = curr->next;
	}
}
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 27.07.2012, 14:30   #12
monster-bonster
Пользователь
 
Аватар для monster-bonster
 
Регистрация: 27.06.2012
Сообщений: 38
По умолчанию

Цитата:
Сообщение от kventin_zhuk Посмотреть сообщение
Общий алгоритм понятен, но вот что вводит в ступор. В упор не могу понять как у вас рисуется змея и окно, как я понял:

функция рисования:
Код:
void game_draw(struct Game * game)
{
	clear();
	int i;
	for (i = 0; i < game->snake_num; i++) {
		snake_draw(game->snake[ i ]);
	}

	move(game->food->x, game->food->y);
	addch('#');

	move(0, 0);
	refresh();
}


void snake_draw(struct snake_type * snake)
{
	move(snake->head->x, snake->head->y);
	addch(snake->head_type);

	struct coord * curr = snake->head->next;
	while (curr != NULL) {
		move(curr->x, curr->y);
		addch(snake->tail_type);

		curr = curr->next;
	}
}
функция move помещает курсор в заданные координаты
функция addch ставит символ в позицию курсора\
функция refresh перерисовывает окно
monster-bonster вне форума Ответить с цитированием
Старый 30.07.2012, 17:25   #13
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Спасибо) где-то в интернете нашёл похожую реализацию.
Исходя из него берётся структура из 2х элементов. Один указатель на кординату - другой размер. и потом в программе динамический захват) т.е так:
Код:
struct Snake
{
	COORD *P; ///указатель на змею
	int size;// размер змеи
};
Решил действовать именно так. Уже почти готово, осталось добавить пару обработок исключений. Ещё хочу разукрасить программу) как доделаю - скину на суд общественности)
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com

Последний раз редактировалось kventin_zhuk; 30.07.2012 в 17:32.
kventin_zhuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Змейка Yellowboy Паскаль, Turbo Pascal, PascalABC.NET 0 06.01.2012 13:36
Змейка в C++ Neo151 Помощь студентам 1 12.08.2011 12:59
Змейка zamaevac Gamedev - cоздание игр: Unity, OpenGL, DirectX 20 01.07.2010 19:19
змейка =) romiccccc Помощь студентам 0 12.05.2010 11:08
ЗМЕЙКА(((( mizantrop32 Общие вопросы C/C++ 2 07.04.2010 17:10