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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2012, 17:04   #1
shrek1993
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 67
По умолчанию Расстановка кораблей в морском бою

Я делаю игру "морской бой" но при вводе возникают проблемы вот последняя и самая печальная
Код:
long random (int tip){
	int N;
	srand(time(NULL));
	if (tip==1){
		N=rand()%9+0;
		return N;}
	if (tip==2){
		N=rand()%4+1;
		return N;}
}
void rast_K(int g,int n){
	int i,j,h,f,fl=0,fl_u=0,fl_d=0,fl_l=0,fl_r=0;
	do{
		i=random(1);
		j=random(1);
	}
	while(pole_K[i][j]!=0);
	pole_K[i][j]=1;
	n--;
	if(n>0){
		for(h=1;h<=n;h++){
			if(i+h>9)
				fl_d=1;
			if(i-h<0)
				fl_u=1;
			if(j-h<0)
				fl_l=1;
			if(j+h>9)
				fl_r=1;
			if(pole_K[i+h][j]!=0)
				fl_d=1;
			if(pole_K[i-h][j]!=0)
				fl_u=1;
			if(pole_K[i][j-h]!=0)
				fl_l=1;
			if(pole_K[i][j+h]!=0)
				fl_r=1;}
		if(fl_u==1&&fl_d==1&&fl_l==1&&fl_r==1){
			pole_K[i][j]=0;
			fl=1;
			rast_K(g,g);}
		else{
			f=random(2);
			fl=1;
			for(h=0;h<=n;h++){
				if(f==1&&fl_u==0){
					pole_K[i-h][j]=1;
					fl=0;}
				if(f==2&&fl_d==0){
					pole_K[i+h][j]=1;
					fl=0;}
				if(f==3&&fl_l==0){
					pole_K[i][j-h]=1;
					fl=0;}
				if(f==4&&fl_r==0){
					pole_K[i][j+h]=1;
					fl=0;}}
			if(fl==1){
				pole_K[i][j]=0;
				rast_K(g,g);}}
	if(fl==0)
		afto_ogr(i,j);}}
как я понял:
Код рабочий но не эффективный в том плане, что при в воде последних кораблей он сильно часто выбирает уже занятые места и перегружает память в следствии чего выдаёт ошибку.
Подскажите как исправить
Если я нарушил какие-либо правила прошу простить и сообщить...
shrek1993 вне форума Ответить с цитированием
Старый 19.04.2013, 00:03   #2
Vitalik03492
Новичок
Джуниор
 
Регистрация: 20.01.2013
Сообщений: 1
По умолчанию

приветсвую, написанный морской бой есть?
Vitalik03492 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по Морскому бою Stwl3 Компоненты Delphi 4 03.05.2011 20:30
Стратегия в морском бою Олександр17 Gamedev - cоздание игр: Unity, OpenGL, DirectX 13 28.11.2010 12:52
Расстановка кораблей в игре "Морской бой" [MI_nor] Общие вопросы C/C++ 1 23.05.2009 00:23
Как расставить корабли в морском бое? Vsadnik Общие вопросы C/C++ 1 24.12.2008 16:28
(+,-,*,/)Расстановка знаков МаксимNEWProgramm Паскаль, Turbo Pascal, PascalABC.NET 5 17.04.2008 17:04