Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] невозможно преобразовать 'int (__cdecl *)(void)' в 'int'

Ответить
Настройки темы
C/C++ - [решено] невозможно преобразовать 'int (__cdecl *)(void)' в 'int'

Аватара для котвася

Пользователь


Сообщения: 147
Благодарности: 5

Профиль | Отправить PM | Цитировать


вот код:
Код: Выделить весь код
 
//----------------------------------------------------------------------

#include <iostream>

//----------------------------------------------------------------------

void Step(int&,int&, int);
void travelHorse(int [8][8],int,int,int&);
void printArray(int [8][8]);
int RandomStep(void);

int main()
{
	setlocale(LC_ALL,"rus");
	int arr[8][8]={{0,0}};
	int horizontal=0;
	int vertical=0;
	int step;
	int clock=0;
	while(step=RandomStep)
	{
		if(step==10)
			continue;
		system("cls");
		Step(horizontal, vertical, step);
		travelHorse(arr,horizontal,vertical,clock);
		printArray(arr);
		std::cout<<clock<<std::endl;
	}
	system("pause");
	return 0;
}

//----------------------------------------------------------------------

int RandomStep(void)
{
	return rand()%7;
}

//----------------------------------------------------------------------

void Step(int &horizontal, int &vertical, int step)
{
	switch(step)
	{
	case '0':
		horizontal=2;
		vertical=-1;
		break;
	case '1':
		horizontal=1;
		vertical=-2;
		break;
	case '2':
		horizontal=-1;
		vertical=-2;
		break;
	case '3':
		horizontal=-2;
		vertical=-1;
		break;
	case '4':
		horizontal=-2;
		vertical=1;
		break;
	case '5':
		horizontal=-1;
		vertical=2;
		break;
	case '6':
		horizontal=1;
		vertical=2;
		break;
	case '7':
		horizontal=2;
		vertical=1;
		break;
	default:
		break;
	}
}

//----------------------------------------------------------

void printArray(int arr[8][8])
{
	for(int t=0; t<=9; t++)
			std::cout<<"-";
	std::cout<<std::endl;
	for(int i=0; i<=7; i++)
	{
		std::cout<<"|";
		for(int j=0; j<=7;j++)
				std::cout<<arr[i][j];
		std::cout<<"|";
		std::cout<<std::endl;
	}
	for(int t=0; t<=9; t++)
			std::cout<<"-";
	std::cout<<std::endl;
}

//---------------------------------------------------------

void travelHorse(int arr[8][8], int horizontal, int vertical, int &clock)
{
	static int horizontalPoint=0;
	static int verticalPoint=0;
	arr[horizontalPoint][verticalPoint]=0;
	horizontalPoint+=horizontal;
	verticalPoint+=vertical;
	if((verticalPoint<0) || (verticalPoint>7) || (horizontalPoint<0) || (horizontalPoint>7))
	{
		std::cout<<"ОШИБОЧНЫЙ ВВОД"<<std::endl;
		horizontalPoint-=horizontal;
		verticalPoint-=vertical;
		return;
	}
	arr[verticalPoint][horizontalPoint]=1;
	clock++;
	return;
}

//---------------------------------------------------------
1>c:\$p\mvs\{как программировать на с++}\путешествие_коня\путешествие_коня\unit.cpp(20) : error C2440: =: невозможно преобразовать 'int (__cdecl *)(void)' в 'int'
помогите разобратся

Отправлено: 00:53, 17-06-2010

 

Аватара для ganselo

Старожил


Сообщения: 232
Благодарности: 90

Профиль | Сайт | Отправить PM | Цитировать


while(step=RandomStep())

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:34, 17-06-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для котвася

Пользователь


Сообщения: 147
Благодарности: 5

Профиль | Отправить PM | Цитировать


и еще вопрос:
что изменить в функции RandomStep() чтоб она генерировала число согласно таблицы ASCII

Отправлено: 23:49, 19-06-2010 | #3


Аватара для котвася

Пользователь


Сообщения: 147
Благодарности: 5

Профиль | Отправить PM | Цитировать


может я не правильно выразился,
если я для задания step использую cin.get() и ввожу 7 то step=55, то есть на 48 больше.
А если использую RandomStep() то оно есть какое есть. Просто прибавить 48 это не профессионально.
Есть ли другой способ?

Отправлено: 00:05, 20-06-2010 | #4


Аватара для ganselo

Старожил


Сообщения: 232
Благодарности: 90

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
int RandomStep(void)
{
	return '0' + rand()%7;
}

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:14, 21-06-2010 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] невозможно преобразовать 'int (__cdecl *)(void)' в 'int'

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - [решено] int в AnsiString crashtuak Программирование и базы данных 7 30-03-2009 02:11
[решено] Основы C++ | Использование operator[int, ...] hasherfrog Программирование и базы данных 2 28-09-2006 15:20
Вопрос по функции 4Bh прерывания int 21h LeonidPr Программирование и базы данных 2 27-09-2005 23:34
modem motorola sm56 int Guest Железо в Linux 7 02-10-2004 03:38
Как перевсти char в int? Sage Программирование и базы данных 4 27-03-2003 09:44




 
Переход