ongelma tulee tässä:
aloin koodata tekstimuotoista hirsipuupeliä(aloittelia kun olen, graffoista ei olis tullu mitään) pienten ongelmien jälkeen koodiini lisäsin namespacen funktion rungolle ja parille muuttujalle, joita linkkeri ei päästänyt läpi.
dev-c++ kyllä kääntää koodin, mutta ajaessa tulee virhe.
voisitteko auttaa ja kertoa mistä se johtuu?
koodi saattaa näyttää epäselvältä, mutta en saanut headeria funktiot.h includeattua...(#include "funktiot.h" ei toiminut...)
jos selitin asiani jotenkin huonosti, pahoittelen sitäkin...
EDIT: pahoittelen liianpitkiä koodirivejä, en vielä osaa pitää niitä kohtuullisina... toivottavasti aika korjaa asian :)
koodi tulee tässä:
#include <cstdlib>
#include <iostream>
#include <string>
#include <time.h>
namespace fn//HUOM!! tein tämän namespacen koska kääntäjä valitti virheellisistä muuttujanimen
{ //käytöstä; ennenkuin joku sanoo sen TIEDÄN että muitakin keinoja tehdä sama asia
//tämä versio kuitenkin meni kääntäjästä läpi, ja minulle riittää se
using namespace std;
#include <string>
string valitse_sana();
int vaaria_jalj=10;
string arvaus=0;
string arvatut=0;
string valitse_sana(void)
{
srand(time(0));
string sanat[]={"abstrakti",
"hirsipuu",
"elokuva",
"tietokonepeli",
"n\x84it\x84",
"sanoja",
"voi",
"olla",
"niin",
"monta",
"kuin",
"haluat"};
//jos lisäät tai poistat sanoja, täydennä sanojen määrä muuttujaan
//const int lkm
//toistaiseksi ohjelma ei tue ääkkösiä,joten ne on kirjoitettava
//koodinvaihtomerkeillä seuraavasti:
// ä \x84 ö \x94
const int lkm=12;
int i=0;
i=rand()%lkm;
return sanat[i];
}
}
using namespace fn;
//string valitse_sana();//sananvalintafunktion prototyyppi
void vaarin();
string tarkistus(string, string);
int main()
{
string sana=fn::valitse_sana();
string arvaus=0;
string arvatut=0;
string rekvisiitta(sana.length(), '#');
fn::vaaria_jalj=10;
//muuttujien asetuksia... tossa yläpuolella
cout<<"Tervetuloa pelaamaan hirsipuu-peli\x84!"<<endl;
cout<<"Arvattava sana on valittu, ja se sis\x84lt\x84\x84 "<<sana.length()<<" merkki\x84."<<endl;
cout<<"Voit arvata kirjaimia, tai koknaisen sanan."<<endl;
do{
cout<<endl<<"********************";
cout<<endl<<rekvisiitta<<endl;
cout<<"Arvauksia j\x84ljell\x84 "<<fn::vaaria_jalj<<endl;
cin>>arvaus;
if(arvaus.length()==0)
vaarin();
else if(arvaus.length()==sana.length())
{
if(arvaus==sana)
{
cout<<endl<<"ARVASIT AIVAN OIKEIN!! Sanasi oli "
<<sana<<" ja arvauksia oli j\x84ljell\x84 "
<<fn::vaaria_jalj<<" kappaletta!";
}
}
if(arvaus.length()==1)
cout<<endl<<tarkistus(sana, arvaus);
}while(fn::vaaria_jalj<0);
system("PAUSE");
return 0;
}
void vaarin()
{
fn::vaaria_jalj--;
fn::arvatut+=fn::arvaus;
return;
}
string tarkistus(string sana, string arvaus)
{
int lkm=0;
string juttu=0;
for(int i=0; (i=sana.find(arvaus, i)) !=string::npos ; juttu=(i-1, arvaus),i++,lkm++)
{
}
if (lkm==0)
vaarin();
return juttu;
}
//Aihe on jo aika vanha, joten et voi enää vastata siihen.