10
« : 21.12.08 - klo:22.30 »
Okei, kiitoksia tiedosta, mutta en kuitenkaan tajunnut tuota. Eli voisiko joku näyttää tällä pienellä koodillani miten tuo koodi jaetaan ja laitetaan toimimaan makefilen kautta? Eli toivon, että tuo Peli luokka laitettaisiin omaan tiedostoon ja sitten koko systeemi kääntymään makefilen kautta. Toivottavasti ei oo liikaa pyydetty.
#include <ncurses.h>
class Peli //Pääohjelman luokka
{
int syote; //Näppäimen painallus
int lopeta; //kertoo, että onko ohjelma lopetusvalmis
public:
Peli(); //Alustaa yllä mainitut asiat
void Aja(); //Ohjelma ajetaan tässä
void LueSyote(); //Syötteiden luku
int Lopeta(int syote, int merkki); //Ohjelman lopetuksesta huolehtiva toiminto palauttaa 1 jos lopetetaan
};
Peli::Peli() //Pelin tietojen alustus
{
syote = 127;
lopeta = 0;
}
/////////////////////////////////////////
/////////////////////////////////////////
void Peli::Aja() //Toiminto, johon kaikki lopulta liitetään.
{
do
{
//PIIRETÄN PELI
//TOIMINNOT
LueSyote(); //Luetaan pelaajan antamat syötteet
lopeta = Lopeta(syote,113); //Lopettaa ohjelman, jos painetaan q
}
while (lopeta == 0);
}
//////////////////////////////////////////
//////////////////////////////////////////
void Peli::LueSyote() //Lukee näppäimistön syötteet
{
syote = getch(); //Luetaan syöte
}
//////////////////////////////////////////
//////////////////////////////////////////
int Peli::Lopeta(int syote, int merkki) //Hoitaa pelin sulkemisen ja tallentamisen
{
if(syote == merkki)
{
return 1;
}
return 0;
}
//////////////////////////////////////
//////////////////////////////////////
int main (int argc, char** argv)
{
//ALUSTETAAN NCURSES TOIMIMAAN
initscr(); //Siirytään käyttämään cursesia
keypad(stdscr,TRUE); //Otetaan nuolinäppäimet käyttöön
raw (); //Näppäimet suoraan käyttöön, ei puskurointia
start_color(); //Värien käyttö otetaan päälle
curs_set(0); //Poistetaan tekstikursori näkyvistä
noecho(); //ei piiretä syötettyä tekstiä näytölle
//ITSE OHJELMA
Peli paaohjelma;
paaohjelma.Aja();
//LOPETETAAN OHJELMA
endwin(); //Suljetaan curses tila
return 0;
}