ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

10.06.2009, 18:09
|
|
Познающий
Регистрация: 27.09.2008
Сообщений: 57
Провел на форуме: 265628
Репутация:
23
|
|
Сообщение от ss88
Это что-то типа...... получить ответ не задав вопрос....
Для этого нужно принять определенные вещества и выйти на новый уровень общения с машиной.... )))
Оказалось намного проще =)
int sign = (num>0) - (num<0); //1 - положительное, -1 - отрицательное, 0 - ноль
|
|
|

10.06.2009, 18:16
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
Условные операторы все равно косвенно выполняются при подсчете возвращаемого значения выражения (num>0) и (num<0) = )
|
|
|

10.06.2009, 18:54
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
чтобы проверять вхождения удобнее юзать массивы. определяешь так
Код:
string invalid_dic [] = {"1", "2", "3", "4"};
bool is_valid(string data){
for(int i = 0; i < sizeof(invalid_dic) / sizeof(invalid_dic[0]); i++){
if(data.compare(invalid_dic[i]) == 0)
return false;
}
return true;
}
суть в том что при необходимости добавления нового ключа, ты просто добавляешь его в массив. больше ничего менять не надо. число элементов, которое используется для определения числа итераций цикла, вычисляется в момент компиляции.
Последний раз редактировалось Ra$cal; 10.06.2009 в 19:00..
|
|
|

10.06.2009, 18:55
|
|
Познающий
Регистрация: 08.12.2008
Сообщений: 58
Провел на форуме: 153361
Репутация:
10
|
|
В чём ошибка , не хочет компелироваться
Код:
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
struct personaj{
char name[20];
int game_class;
int power,stamina,agility,intelect,hp;
};
void main(){
void Info(char str[100],bool sound=false);
bool Main_Menu();
bool Arena(personaj player);
Info("### Welcome to the BK! ###",true);
//------------------------Переменные-------------------------
personaj player,computer;
computer.game_class=1;
computer.agility=5;
computer.intelect=5;
computer.power=5;
computer.stamina=5;
computer.hp=30;
cout<<"Enter your name!\t";
cin>>player.name;
enum {warrior=1,mage=2,priest=3,ranger=4};
// char enter_user_class;
int user_class=0; //Какой класс выбран!
char proverka_na_vubor_classa; //проверка на уверенность в выборе класса
bool prov_na_simvol=true; //проверка на правильность выбора класса
bool vtoraya_proverka_na_vubor_classa=true; //проверка на уверенность в выборе класса
while(vtoraya_proverka_na_vubor_classa){
system("cls");
cout<<"Choose your class!\n\n*** Warrior ***\t- 1\n*** Mage ***\t- 2"
<<"\n*** Priest ***\t- 3\n*** Ranger ***\t- 4\n\n";
//проверка на ввод числа а не чегото другого, такоеже сделать
/*while{user_class!=1||user_class!=2||user_class!=3||user_class!=4){
cin>>enter_user_class;
switch(enter_user_class){
case '1': user_class=1; cout<<"War"; break;
case '2': user_class=2; cout<<"W"; break;
case '3': user_class=3; cout<<"Wr"; break;
case '4': user_class=4; cout<<"Wa"; break;
default: cout<<"Fuck";
}}*/
cin>>user_class;
switch(user_class){
case warrior:
system("cls");
player.agility=0;
player.intelect=0;
player.power=6;
player.stamina=4;
player.hp=30;
cout<<"You choose warrior!\nYour standart parametrs!\n\n**************************\n"
<<"intelect - "<<player.intelect
<<"\npower - "<<player.power
<<"\nagility - "<<player.agility
<<"\nstamina - "<<player.stamina
<<"\n*************************\n";
player.game_class=1;
break;
case mage:
system("cls");
player.agility=0;
player.intelect=8;
player.power=0;
player.stamina=2;
player.hp=15;
cout<<"You choose mage!\nYour standart parametrs!\n\n**************************\n"
<<"intelect - "<<player.intelect
<<"\npower - "<<player.power
<<"\nagility - "<<player.agility
<<"\nstamina - "<<player.stamina
<<"\n*************************\n";
player.game_class=2;
break;
case priest:
system("cls");
player.agility=0;
player.intelect=5;
player.power=0;
player.stamina=5;
player.hp=20;
cout<<"You choose priest!\nYour standart parametrs!\n\n**************************\n"
<<"intelect - "<<player.intelect
<<"\npower - "<<player.power
<<"\nagility - "<<player.agility
<<"\nstamina - "<<player.stamina
<<"\n*************************\n";
player.game_class=3;
break;
case ranger:
system("cls");
player.agility=8;
player.intelect=0;
player.power=0;
player.stamina=2;
player.hp=20;
cout<<"Your standart parametrs!\n\n**************************\n"
<<"intelect - "<<player.intelect
<<"\npower - "<<player.power
<<"\nagility - "<<player.agility
<<"\nstamina - "<<player.stamina
<<"\n*************************\n";
player.game_class=4;
break;
}
cout<<"\nAre you shure?(Y/N)\t";
cin>>proverka_na_vubor_classa;
if(proverka_na_vubor_classa=='y'||proverka_na_vubor_classa=='Y'){
vtoraya_proverka_na_vubor_classa=false;
}
}
system("cls");
//конец выбора класса
Info("Now you will get into the main menu!");
Main_Menu();
cout<<"\n\n";
}
void Info(char str[100],bool sound=false){
int dl_str=strlen(str);
for(int i=0;i<dl_str;i++){
cout<<str[i];
if(sound){
if(i==0||i==dl_str-1){
cout<<"\a";
}
}
Sleep(100);
}
system("cls");
}
//Меню основное
bool Main_Menu(){
bool proverka_na_vuhod_iz_menu=true;
int user_choose_action_main_menu;
while(proverka_na_vuhod_iz_menu){
system("cls");
cout<<"Go to the Arena\t- 1\nGo to the shop\t- 2\nExit the game\t- 3\n";
cin>>user_choose_action_main_menu;
switch(user_choose_action_main_menu){
case 1:
system("cls");
Info("You will get to the arena soon!");
if(Arena(player)){
cout<<"Player win!";
}else{
cout<<"Player win!";
}
proverka_na_vuhod_iz_menu=false;
break;
case 2:
system("cls");
Info("You will get to the shop soon!");
proverka_na_vuhod_iz_menu=false;
break;
case 3:
system("cls");
Info("You will exit the game!");
proverka_na_vuhod_iz_menu=false;
return true;
break;
}
}
}
bool Arena(personaj player){
int player_action;
while(true){
if(player.hp<=0){
return false;
break;
}
if(computer.hp<=0){
return true;
break;
}
cout<<"Hit the Head!\t- 1\nHit the stomach!\t- 2\nHit \t- 3\n";
cin>>player_action;
switch(player_action){
case 1:
player.hp=player.hp-5;
computer.hp=computer.hp-10;
break;
case 2:
player.hp=player.hp-5;
computer.hp=computer.hp-10;
break;
case 3:
player.hp=player.hp-5;
computer.hp=computer.hp-10;
break;
}
}
}
пишет
Ошибка 1 error C2065: player: необъявленный идентификатор c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 149
Ошибка 2 error C3861: Arena: идентификатор не найден c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 149
Ошибка 3 error C2065: computer: необъявленный идентификатор c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 178
Ошибка 4 error C2228: выражение слева от ".hp" должно представлять класс, структуру или объединение c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 178
Ошибка 5 error C2065: computer: необъявленный идентификатор c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 187
Ошибка 6 error C2228: выражение слева от ".hp" должно представлять класс, структуру или объединение c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 187
Ошибка 7 error C2065: computer: необъявленный идентификатор c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 187
Ошибка 8 error C2228: выражение слева от ".hp" должно представлять класс, структуру или объединение c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 187
Ошибка 9 error C2065: computer: необъявленный идентификатор c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 191
Ошибка 10 error C2228: выражение слева от ".hp" должно представлять класс, структуру или объединение c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 191
Ошибка 11 error C2065: computer: необъявленный идентификатор c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 191
Ошибка 12 error C2228: выражение слева от ".hp" должно представлять класс, структуру или объединение c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 191
Ошибка 13 error C2065: computer: необъявленный идентификатор c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 195
Ошибка 14 error C2228: выражение слева от ".hp" должно представлять класс, структуру или объединение c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 195
Ошибка 15 error C2065: computer: необъявленный идентификатор c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 195
Ошибка 16 error C2228: выражение слева от ".hp" должно представлять класс, структуру или объединение c:\users\антон\documents\visual studio 2008\projects\09.06.09\09.06.09\09.06.09.cpp 195
как передать правильно функции арена, значения типа плеер?
Последний раз редактировалось Djezul; 10.06.2009 в 19:07..
|
|
|

10.06.2009, 19:08
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
bool Arena(personaj& player){
...
|
|
|

10.06.2009, 19:13
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
Сначала ты спрашиваешь в чем ошибка, а потом выкладываешь список ошибок >.<
Все ошибки указаны компилятором.
|
|
|

10.06.2009, 19:14
|
|
Познающий
Регистрация: 08.12.2008
Сообщений: 58
Провел на форуме: 153361
Репутация:
10
|
|
тоже самое((
|
|
|

10.06.2009, 19:16
|
|
Познающий
Регистрация: 08.12.2008
Сообщений: 58
Провел на форуме: 153361
Репутация:
10
|
|
Сообщение от Fata1ex
Сначала ты спрашиваешь в чем ошибка, а потом выкладываешь список ошибок >.<
Все ошибки указаны компилятором.
Я думал ты понял о чём я , я только неделю учу си и ещё не сильно в нём ориентируюсь, так что ошибки компилятора мне ни о чем не говорят, я понимаю что они указаны, но что надо исправить в коде , чтобы их небыло, и что это за ошибки, мсдл не сильно помогло(
|
|
|

10.06.2009, 19:18
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
это не какие то магические ошибки. они вполне четко описывают проблему. поэтому читай сообщение и исправляй.
почитай тогда книжку "Как программировать на с++". От этого будет больше толка.
|
|
|

10.06.2009, 19:21
|
|
Познающий
Регистрация: 08.12.2008
Сообщений: 58
Провел на форуме: 153361
Репутация:
10
|
|
я читаю выражение слева от ".hp" должно представлять класс, структуру или объединение , но оно и представляет структуру или обьединение
я читаю арена не обьявлена, хотя у меня всё обьёвлено
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|