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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2012, 11:56   #1
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию БлекДжек

Всем доброго времени суток. Недавно начал изучать с++ и надумал написать игру в БлекДжек При написании кода с использованием функции выдает ошибку:
1) Error 2 error LNK2001: unresolved external symbol "int __cdecl takePoints(int)" (?takePoints@@YAHH@Z)
2) Error 3 error LNK1120: 1 unresolved externals

Знающие люди, нужна ваща помощь. Спасибо.


Код:
#include <iostream>
#include <conio.h>
#include <clocale>
#include <time.h>

using namespace std;

int takePoints (int);

int main()
{
	setlocale (LC_CTYPE,"Russian");
	srand(time(NULL));
	int myPoints = 0, compPoints = 0, answer = 0, answerPoints = 0;
	cout << "Привет. Давай сыграем в блэкджек." << endl << endl;
	cout << "Введи 1, чтобы начать игру." << endl;
	cout << "Введи 2, чтобы узнать правила." << endl;
	cout << "Введи 3, чтобы выйти." << endl;
	cin >> answer;
	switch (answer)
	{
	case 1:
		system("cls");
		break;
	case 2:
		system("cls");
		cout << "Цель игры Блэкджек – набрать карты с суммой очков, по возможности близкой к 21. 21 – это максимум, перебор сразу же приводит к поражению." << endl;
		cout << "Чем больше сумма очков, тем выше ценность набранных карт." << endl; 
		cout << "Необходимо, правда, одно уточнение: туз и десятка называются блэкджеком и считаются самой значимой комбинацией." << endl;
		cout << "По ценности она превосходит любые другие карты, составляющие 21 очко." << endl << endl;
		cout << "Короли, дамы, валеты и десятки оцениваются в 10 очков." << endl;
		cout << "Все эти карты равнозначны и для простоты называются десятками." << endl;
		cout << "Тузы по желанию игрока считаются за 11 очков или за 1 очко." << endl;
		cout << "Остальные карты – в соответствии с их рангом (двойка – 2 очка, восьмёрка – 8 очков и т.д.)." << endl;
		cout << "Масти карт значения не имеют." << endl << endl;
		cout << "Нажми любую кнопку, чтобы начать игру." << endl;
		_getch();
		system("cls");
		break;
	case 3:
		return 0;
	}

	do {
		cout << "У тебя " << myPoints << " очков." << endl;
		cout << "Будешь брать карту? (0 - нет, 1 - да)";
		cin >> answerPoints;
		if (answerPoints == 0)
		{
			break;
		}
		else if (answerPoints == 1)
		{
			//myPoints = 1 + rand() % 11;
			takePoints(myPoints);
		}
		else 
		{
			cout << "Ошибка. Введи действие еще раз." << endl;
		}
	}
	while (answerPoints < 0 && answerPoints > 1);
	_getch();
	return 0;
}


int takePoins( int points)
{
	points = 1 + rand() % 11;
	return points;
}
Dima-War вне форума Ответить с цитированием
Старый 28.10.2012, 11:59   #2
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Так, нашел ошибку, неправильно написал название функции.
Dima-War вне форума Ответить с цитированием
Старый 28.10.2012, 12:01   #3
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Нашел еще одну ошибку

Последний раз редактировалось Dima-War; 28.10.2012 в 12:09.
Dima-War вне форума Ответить с цитированием
Старый 28.10.2012, 12:04   #4
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

И еще не работает функция, очки не выдаются
Dima-War вне форума Ответить с цитированием
Старый 28.10.2012, 12:15   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Ждем дальнейших отчетов о ходе реализации проекта
Arigato вне форума Ответить с цитированием
Старый 28.10.2012, 12:26   #6
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Ну просто я сразу после постов находил свои ошибки, а удалить пост нельзя)
Ну в общем то я так и не понял, почему не работает функция на выдачу очков. Так что понадобится ваша помощь
Dima-War вне форума Ответить с цитированием
Старый 28.10.2012, 12:46   #7
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

Это правильный подход. Бьярне Страуструп об этом писал. О своей программе нужно говорить. И чем больше о ней рассказываешь, тем проще найти решение.
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 28.10.2012, 14:14   #8
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Ну так что, может кто-нибудь подсказать, почему не работает функция?
Dima-War вне форума Ответить с цитированием
Старый 28.10.2012, 16:01   #9
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
build/Release/MinGW-Windows/main.o:main.cpp.text.startup+0x2d d): undefined reference to `takePoints(int)'
Код:
int takePoins(int points) {
  points = 1 + rand() % 11;
  return points;
}
имя функции поправь
rrrFer вне форума Ответить с цитированием
Старый 28.10.2012, 16:05   #10
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Код:
while (answerPoints < 0 && answerPoints > 1);
условие всегда ложно
rrrFer вне форума Ответить с цитированием
Ответ


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