
13.06.2009, 15:36
|
|
Познающий
Регистрация: 08.12.2008
Сообщений: 58
С нами:
9170134
Репутация:
10
|
|
Сообщение от Ra$cal
GetUserName - получить имя пользователя. инклюдить windows.h может понадобится Advapi32.lib.
system() для взаимодействия использовать категорически не советую. максимум - system("pause"). ито лучше юзать getch и иже с ними
О спс. С этим разобрался.
А в чём ошибка тут,
Код:
int Shop(int size_of_inventory){
enum {Healing_botle=1,Power_botle=2,Intelect_botle=3,Exit_the_shop=4};
bool shop=true;
int shop_action;
int shop_kol;
int i=0,j=0;;
int price;
system("cls");
Info("You will get to the shop soon!");
while(shop){
system("cls");
cout<<"Healing botle - 1 ||| Price - 100\nPower botle - 2 ||| Price - 300\nIntelect botle - 3 ||| Price - 300\n"
<<"---------------------------------\nExit the shop - 4\n\n";
cin>>shop_action;
switch(shop_action){
case Healing_botle:
cout<<"\nHow many?\n\n";
cin>>shop_kol;
price=100;
if(Shop_Buy(player.money,shop_kol,price)==1){
Shop_Error_Slotes(size_of_inventory,shop_kol);
player.money=player.money-(shop_kol*price);
for (i=size_of_inventory;i<10&&j<shop_kol;i++,j++,size_of_inventory++){
player.inventar[i].name=1;
player.inventar[i].bonus=player.hp+30;
}
}
i=0;
j=0;
break;
case Power_botle:
cout<<"\nHow many?\n\n";
cin>>shop_kol;
price=300;
if(Shop_Buy(player.money,shop_kol,price)==1){
Shop_Error_Slotes(size_of_inventory,shop_kol);
player.money=player.money-(shop_kol*price);
for (i=size_of_inventory;i<10&&j<shop_kol;i++,j++,size_of_inventory++){
player.inventar[i].name=2;
player.inventar[i].bonus=player.power+30;
}
}
i=0;
j=0;
break;
case Intelect_botle:
cout<<"\nHow many?\n\n";
cin>>shop_kol;
price=300;
if(Shop_Buy(player.money,shop_kol,price)==1){
Shop_Error_Slotes(size_of_inventory,shop_kol);
player.money=player.money-(shop_kol*price);
for (i=size_of_inventory;i<10&&j<shop_kol;i++,j++,size_of_inventory++){
player.inventar[i].name=3;
player.inventar[i].bonus=player.intelect+30;
}
}
i=0;
j=0;
break;
case Exit_the_shop:
shop=false;
break;
}
}
shop=true;
return size_of_inventory;
}
прототип создаю , вызываю так,
case Shop:
Shop(size_of_inventory);
break;
Компилятор выкидует с ошибкой , Ошибка 1 error C2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов c:\users\антон\documents\visual studio 2008\projects\bk\bk\bk.cpp 138
Немогу разобраться , что это за ошибка уже в мсдн втыкаю 20 минут
а и такой вопрос, как сделать рандомное число из промежутка? Доспустим, чтобы всегда бралось разное число из промежутка от 1 до 100
Последний раз редактировалось Djezul; 13.06.2009 в 15:52..
|
|
|

13.06.2009, 15:54
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами:
9017461
Репутация:
414
|
|
В case'e не может быть ф-ции.
|
|
|

13.06.2009, 16:05
|
|
Познающий
Регистрация: 08.12.2008
Сообщений: 58
С нами:
9170134
Репутация:
10
|
|
как не может если у меня выше написано
case Inventary:
Inventory(size_of_inventory);
break;
и всё норм, а что тогда можно сделать? Просто позаменять на if всё?
|
|
|

13.06.2009, 16:09
|
|
Познающий
Регистрация: 08.12.2008
Сообщений: 58
С нами:
9170134
Репутация:
10
|
|
Поменял всё на иф , таже самая ошибка!
|
|
|

13.06.2009, 16:21
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами:
9017461
Репутация:
414
|
|
Виложи нормальный код с точным описанием ошибки!
|
|
|

13.06.2009, 16:25
|
|
Познающий
Регистрация: 08.12.2008
Сообщений: 58
С нами:
9170134
Репутация:
10
|
|
это и есть точный код, а описание ошибки такое какое выдаёт компилятор, скопировал полностью, компилятор висуал студио 2008
|
|
|

13.06.2009, 16:54
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
Djezul
ты лучше начни с улучшения кода и ооп. то что ты щас пишешь, это по сути си стайл. если бы ты юзал ооп, вся программа уменьшилась бы раз так в 8. та даже если ты банально прекратишь копипастить код, сделаешь функции для покупки товаров, вывода инфы итп, ты уже сократишь код программы и упростишь возможности ее модификации. привыкай, что просто написать программу - мало. потом ее надо поддерживат, улучшать и исправлять.
|
|
|

13.06.2009, 18:01
|
|
Познающий
Регистрация: 08.12.2008
Сообщений: 58
С нами:
9170134
Репутация:
10
|
|
Я её как раз и улучшаю, поэтому и перевожу всё в функции, а ооп я не использую , так как пишу на си, сначала, хочю его выучить, а учить лучше на практике__)) , тем более название раздела си/си++ , я думал и так понятно что это си. Кстати проблему я решил, просто названия функции и константы совпадали, вот и всё))
Последний раз редактировалось Djezul; 13.06.2009 в 18:16..
|
|
|

13.06.2009, 18:17
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами:
9017461
Репутация:
414
|
|
тем более название раздела си/си++ , я думал и так понятно что это си.
Достаточно взглянуть на использование потоковых классов что говорит о том что ты используешь с++. Советую перечитать книгу и понять отличия этих языков.
|
|
|

13.06.2009, 18:33
|
|
Познающий
Регистрация: 08.12.2008
Сообщений: 58
С нами:
9170134
Репутация:
10
|
|
Возможно ты и прав, не буду спорить так как я пока мало что в этом понимаю, но в компьютерной школе , куда я стал недавно ходить, мы учим пока си а не си++ , и там нам препод сказал делать так.
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
|
|
|
|