Problem z char
Ostatnio zmodyfikowano 2011-10-23 15:23
marcin107 Temat założony przez niniejszego użytkownika |
Problem z char » 2011-10-23 13:58:33 Witam mam problem z składnią, konkretnie kompilator ostrzega mnie przed tym że char jest za krótki. objaśnienia np: zmienna mgwklvl odpowiada za poziom umiejętności których jest 3. int mgwklvl = 0; int mgstrlvl = 0; int buflvl = 0; int ultilvl = 0; char spell;
void spelluse() { using namespace std; if( spell < 1 ) { cout << "Nie opanowales jeszcze tej umiejentnosci\n"; Sleep( 2000 ); przebieggry(); } if( manaja >= spellcost ) { switch( wybor ) { case 2: { obrazenia0(); break; } case 3: { obrazenia2(); break; } case 4: { buf(); break; } case 5: { ulti(); break; } } } }
void menuataku() { using namespace std; cout << "1 - Atak fizyczny\n"; cout << "2 - Slaby atak magiczny(30 many)\n"; cout << "3 - Mocny atak magiczny (koszt 50 many)\n"; cout << "4 - Buf (+" << bufheal << " hp (koszt 60 many))\n"; cout << "5 - Ultimate (koszt 100 many)(200dmg + obrazenia magiczne)\n\n"; cin >> wybor; switch( wybor ) { case 1: { obrazenia1(); break; } case 2: { spell = 'mgwklvl'; spellcost = 30; spelluse(); break; } case 3: { spell = 'mgstrlvl'; spellcost = 50; spelluse(); break; } case 4: { spell = 'buflvl'; spellcost = 60; spelluse(); break; } case 5: { spell = 'ultilvl'; spellcost = 100; spelluse(); break; } default: { cout << "Nie ma takiej opcji\n"; Sleep( 2000 ); przebieggry(); } } runda++; }
Czy można jakoś zastąpić tego char ? Używając zmiennej string nie można użyć operatora matematycznego do warunku, a określając char zmienna[x] wyskakuje błąd w warunku. Proszę o pomoc. |
|
m4tx |
» 2011-10-23 14:15:10 char spell;
spell = 'mgwklvl';
if( spell < 1 ) Tu nie ma w ogóle żadnej logiki. Przypisujesz ciąg znaków do zmiennej, która może przechować tylko 1 znak, a potem sprawdzasz, czy ta zmienna ma wartość poniżej 1? Yyy... LOL? |
|
marcin107 Temat założony przez niniejszego użytkownika |
» 2011-10-23 14:30:26 Chodzi mi raczej o to że przypisuje zmiennej char nazwe innej zmiennej która ma wartość int mgwklvl = 0; char spell; spell = 'mgwklvl'; Chodzi tu jakby o to że do chara jest przypisywana za każdym razem nazwa zmiennej z switch(wybor) która jest wywoływana w warunku.
Czyli jeżeli if( spell < 1 ) a spell ze switch(wybor) = 'mgwklvl'; to if( mgwklvl < 1 ) |
|
m4tx |
» 2011-10-23 14:33:07 Czyli jeżeli if( spell < 1 ) a spell ze switch(wybor) = 'mgwklvl'; to if( mgwklvl < 1 ) |
No cóż... Niestety tak nie jest :P Możesz natomiast usunąć apostrofy i będzie działać, tylko że wtedy jak zmienisz wartość zmiennej mgwklvl, to zmienna spell nie zaaktualizuje się. |
|
marcin107 Temat założony przez niniejszego użytkownika |
» 2011-10-23 15:23:17 Wartość zmiennej może zmienić się po pokonaniu przeciwnika ale nie w trakcie walki, czy aktualizacja będzie, dzięki za pomoc. |
|
« 1 » |