Oli pakko pistää tämä tänne, koska en itse kyennyt korjaamaan virhettä. Ohjelma on vielä kesken, joten se ei toimi oikein vaikka menisi kääntäjästä läpi.
Tuli vahingossa 2 kertaa sama aihe, sori. -.-
eli virhe on seuraava:
35: error: invalid conversion from `char' to `char*'
35: error: initializing argument 1 of `std::string print(char*, std::string)'
mitä siis teen väärin?
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
string print(char usedcharacters[], string word);
string getrandomword(string word);
bool checkvalidcharacter(char character);
bool checkword(string gameword);
int main()
{
const int maxsize = 100;
int tries = 0;
int characterN = 0;
string word;
string gameword;
char character;
char usedcharacters[maxsize];
getrandomword(word);
cout << "Welcome to hangman v.1.0" << endl;
do
{
do
{
cout << "Give character (a-z): " << endl;
cin >> character;
checkvalidcharacter(character);
}
while(checkvalidcharacter == false);
usedcharacters[characterN] = character;
usedcharacters[characterN] + 1;
print(usedcharacters[maxsize], word); <--- 35
checkword(gameword);
}
while((checkword(gameword) == false) && (tries < 6));
if(checkword(gameword) == true)
{
cout << "Congratulations! You have found the word!" << endl;
}
else if(tries >= 6)
{
cout << "Omg, you have killed the hangman" << endl;
}
return 0;
}
string print(char usedcharacters[],string word)
{
string gameword;
for(int a=0; a!='\0'; a++)
{
for(int b=0; b<word.length(); b++)
{
if(word[b] == usedcharacters[a])
{
cout << word[b];
}
else
{
cout << "-";
}
}
}
for(int c=0; c!='\0'; c++)
{
for(int d=0; d<word.length(); d++)
{
if(word[d] == usedcharacters[c])
{
gameword[d] = word[d];
}
else
{
gameword[d] = '-';
}
}
}
return gameword;
}
bool checkvalidcharacter(char character)
{
char taulukko[26] = {'a','b','c','d', 'e','f','g','h', 'i','j','k','l', 'm','n','o','p', 'q','r','s','t', 'u','v','w','x', 'y','z'};
for(int a=0; a<26; a++)
{
if(character == taulukko[a])
{
return true;
}
}
return false;
}
string getrandomword(string word)
{
int a = rand() % 5;
string words[] = {"advanced", "professional", "advantageous", "programmer", "suitcase" };
return words[a];
}(Mod. Edit. Tolkkua rivien pituuksiin.)
Ota tuosta 35 riviltä se [maxsize] pois, koska tarkoitus on välittää parametrina koko taulukko eikä suinkaan taulukon maxsize:s alkio, joka muutenkin ohi-indeksoisi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.