Olen tekemässä "peliä" jossa tarvitsisin koodin millä voisi arpoa kirjaimia. Kirjainten pitäsis olla joko A tai B.
Eli miten saisin arvottua nuo kirjaimet?
Laita se arpomaan ascii numero 65 tai 66 ja sitten
printf("%c", arvottavan_kirjaimen_muuttuja);Homma lähtee helposti kunhan huomaat, että kirjaimet (eli ascii-merkit) voidaan osoittaa suoraan '-merkeillä jolloin se on merkin ascii-koodi tekstin sijasta (tyypiltään usein char).
Eli esim. int a = 'A';
Ai, se oliki noi helppo :P kiitti.
Nyt tuliki vaan toinen ongelma:
muuttuja menetää arvon.
Eli koodi näyttää suurinpiirtein tältä:
#include <iostream>
#include <stdlib.h>
class Peli
{
public:
int luku;
void kasittele();
void tulosta();
};
void Peli::kasittele()
{
luku += 1;
}
void Peli::tulosta()
{
cout << luku << endl;
system("pause");
}
int main()
{
// annetaan muuttujalle alkuarvo ja kutsutaan funktio
Peli arvot;
arvot.luku = 1;
arvot.kasittele();
}siis minun koodini periaate on sama, tuo koodi on siis vain esimerkki. Ja ongelmana oli se että muuttuja luku menettää arvon 1 ja laittaa tilalle jotain 453555. Mikä on vikana?
Koeta tulostamalla katsoa, mikä on muuttujan luku aevo ennen arvon 1 asettamista ja sen jälkeen. Eli saako muuttuja koskaan arvoa 1?
Sijoittamalla laitettu arvo kun ei aina aseta sitä aiottua arvoa...
Muuttujan arvo pysyy oikeana siihenasti, kunnes siihen lisätään 1. Sitten sen arvo onkin 44564456 tyyliä :( Eli arvo menee muuttujaan, ja pysyy siellä muuttujan käsittelyyn saakka. Sama käy jos yritän tulostaa muuttujaa useasti. Ihme juttu :D
Hei, tää ei oo enää yhtään kivaa! Se muuttuja pitää arvoaan tasan niin pitkään kunnes sitä tarvis!
Mikä tossa nyt vois olla vikana?
Aihe on jo aika vanha, joten et voi enää vastata siihen.