All pastes #812268 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-12-11 17:11 UTC
rendered paste body
/***************
*Tekstiseikkailupeli Final Ultimate Koodiorjat Of Doom (FUKD). MAIN-funktion toteutus
*Valintasi kerryttävät pistesaldoasi
*Tekijä: Jarno Kurlin
*Ryhmä: tie07a
*PVM: 7.12.2007
********************/

/***
MAIN-funktion toteutus
****/

#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <string.h>
#include <stdlib.h>


int Funktio1(int pisteet);

int Funktio3(int pisteet);

int Funktio5(int pisteet);

int Funktio7(int pisteet);
int Funktio10(int pisteet);
int valikko(void); // funktion 3 tarvitsema lisäfunktio

/************
*Hiscore systeemin kamoja
*************/
struct{  // tein structil tiedot ku sil saa vähän helpommin filuihin
	char nimi[40];
	int score;
}scoreja[10];
int hiscore(int pisteet);
int tarkistus(int a);
void ekakerta(void);
void luku();

int main(void)
{
	setlocale(LC_ALL, "Finnish");
	
	int valikko = 0;
	int pisteet = 0;
	char puskuri[6];
	int ok = 0; 
	char iddqd[]= "iddqd";
	int kooditesti = 222;
	
	
	
	printf("**::** Final Ultimate Koodiorjat Of Doom (FUKD)**::**\n");
	printf("         _=______________________-_\n     =< ' | ========|______________\n        \| | ========|______________\n       /  | ========|/\n      |   | ========|'\n      |___| ________'\n     '.... /  |  |\n    |......|  |   |\n    |......|-____'\n    |......|\n   '.......|\n   |.......|\n   |_______) \n\n\n");
	printf("Press any key");
	getch();
	printf("\n\nTehtävänäsi kerätä mahdollisimman paljon pisteitä, \nvalintasi vaikuttavat pisteiden määrään, choose carefully!\n\nMinne haluat lähteä?\n1: Pimeään huoneeseen\n3: Huoneeseen jossa haisee oudolle\n5: Viidakkoon metsästämään leijonia\n7: Kalastamaan\n10: Valaistuun huoneeseen\n:: ");

	
	
	do		//Pelinpyörityslooppi joka pyörittää peliä niin kauan kunnes syötetään 99 
	{
	  do   //looppi joka tarkistaa, että on syötetty luku eikä esim kirjainta joka sotkee switch-lauseen
	  {
	 	fflush(stdin);
		fgets(puskuri,6,stdin); //luetaan max 2 merkkiä puskurimuuttujaan
	 	ok = sscanf(puskuri,"%d",&valikko);	 //luetaan puskurimuuttujasta integeri muuttujaan valikko, jos onnistuu niin sscanf palauttaa arvon 1, muutoin arvon 0
		kooditesti = strcmp(puskuri,iddqd);  //verrataan onko puskurin sisältö sama kuin iddqd:n
		
		if (ok < 1) // jos integeriä ei pystytty lukemaan niin tehdään seuraavaa...
	 	{
			if (kooditesti == 0) //jos käyttäjä on syöttänyt iddqd koodin niin tehdään seuraavaa...
			{
				printf("Damn you rock!\n::");
				pisteet = 666;
				hiscore(pisteet);
				getch();
				return 0;

			}
			else 
			{	
				printf("\nValintasi on virheellinen, yritä uudelleen:\n:: ");
			}
		}
		
	  }while(ok < 1)  ;  // ...kunnes ok on jotain muuta kuin 0....
	
		switch(valikko) //siirrytään valitsemaan kenttä johon mennään...
		{
			case 1:	
				pisteet = Funktio1(pisteet);  //käynnistetään eka peli, funktio itse huolehtii pisteiden kumuloimisesta 
				printf("\n\nMinne haluat lähteä?\n1: Pimeään huoneeseen\n3: Huoneeseen jossa haisee oudolle\n5: Viidakkoon metsästämään leijonia\n7: Kalastamaan\n10: Valaistuun huoneeseen\n99: Lopetus\n:: ");
				break;
			
			case 3:	
				pisteet = Funktio3(pisteet);
				printf("\n\nMinne haluat lähteä?\n1: Pimeään huoneeseen\n3: Huoneeseen jossa haisee oudolle\n5: Viidakkoon metsästämään leijonia\n7: Kalastamaan\n10: Valaistuun huoneeseen\n99: Lopetus\n:: ");
				break;
			
			case 5:	
				pisteet = Funktio5(pisteet);
				printf("\n\nMinne haluat lähteä?\n1: Pimeään huoneeseen\n3: Huoneeseen jossa haisee oudolle\n5: Viidakkoon metsästämään leijonia\n7: Kalastamaan\n10: Valaistuun huoneeseen\n99: Lopetus\n:: ");
				break;
			
			case 7:	
				pisteet = Funktio7(pisteet);
				printf("\n\nMinne haluat lähteä?\n1: Pimeään huoneeseen\n3: Huoneeseen jossa haisee oudolle\n5: Viidakkoon metsästämään leijonia\n7: Kalastamaan\n10: Valaistuun huoneeseen\n99: Lopetus\n:: ");
				break;
			case 10:	
				pisteet = Funktio10(pisteet);
				printf("\n\nMinne haluat lähteä?\n1: Pimeään huoneeseen\n3: Huoneeseen jossa haisee oudolle\n5: Viidakkoon metsästämään leijonia\n7: Kalastamaan\n10: Valaistuun huoneeseen\n99: Lopetus\n:: ");
				break;
			default:
				if(valikko != 99) //jos syötetään 99 niin switch-lause loppuu, ihan turha alkaa tulostelemaan seuraavaa
				{
					printf("\n\nMinne haluat lähteä?\n1: Pimeään huoneeseen\n3: Huoneeseen jossa haisee oudolle\n5: Viidakkoon metsästämään leijonia\n7: Kalastamaan\n10: Valaistuun huoneeseen\n99: Lopetus\n:: ");
				}
		}
	}while (valikko != 99);
	
	hiscore(pisteet);  // funktio jolla katsellaan suurimpia pistemääriä
	

	
	getch();
	return 0;


}


/***********
*pimeä huone
***********/

int Funktio1(int pisteet) 
{
	int valinta, lapio, kattila;
	valinta = 0;
	lapio = 0;
	kattila = 0;

	printf("** Saavut huoneeseen 1 **\n\n");
	printf("Huone on pimeä ja näet vain kaksi kytkintä.\n\n* Haluatko kääntää [1]vasenta vai [2]oikeata kytkintä?: ");
	scanf("%d",&valinta);

	while (valinta != 1 && valinta != 2) 
	{
		printf("Väärä valinta. Valitse 1 tai 2: ");
		scanf("%d",&valinta);
	}
	if (valinta == 1) { printf("\n\nHuoneen sulake hajosi, etkä saa enään valoja päälle. Lähdet pois huoneesta.\n[Teh End] Pisteet: %d",pisteet); return pisteet; }
	else { printf("Huoneeseen tuli valot. Huone on varastohuone.\n\n"); pisteet++; }

	printf("Katselet ympärillesi.\n-Näet vasemmalla pöydän.\n Pöydällä on vanhoja arkistoituja papereita, kyniä ja kynttilä. Pöydässä on myös laatikoita. Yksi laatikoista on auki ja siihen nojaa ruosteinen lapio.");
	printf("\n-Edessäsi on vanhan aarrearkun näköinen laatikko.");
	printf("\n-Oikealla on hylly. Hyllystön  hyllyillä on paljon tavaraa ja ne näyttävät\n huterilta.");
	printf("\n\n* Minne haluat mennä: [1]pöydän, [2]laatikon vai [3]hyllyn luo?: ");
	scanf("%d",&valinta);

	while (valinta != 1 && valinta != 2 && valinta != 3) 
	{
		printf("Väärä valinta. Valitse 1, 2 tai 3: ");
		scanf("%d",&valinta);
	}

	while (valinta == 1 || valinta == 2 || valinta == 3)
	{
		if (valinta == 1) {
			if (lapio == 1) { printf("Täällä ei ole enää mitään nähtävää -.-\n"); }
			else 
			{ 
				printf("\n-Saavut pöydän luokse. Pöydällä onkin enemmän rojua mitä ovelta näit, mutta ei\n mitään mitä haluaisit. Katsot lapiota, joka nojaa laatikkoa vasten. Mietit\n haluatko sen mukaasi vai et?");
				printf("\n\n* Haluatko [1]jättää lapion, vai [2]ottaa lapion: ");
				scanf("%d",&lapio);
				while (lapio != 1 && lapio != 2) 
					{
						printf("Väärä valinta. Valitse 1 tai 2 : ");
						scanf("%d",&lapio);
					}
				lapio--;
				if (lapio == 1) { printf("-Otit lapion!"); pisteet++; }
			}
			printf("\n\n* Minne haluat mennä: [1]pöydän, [2]laatikon vai [3]hyllyn luo?: ");
			scanf("%d",&valinta);
		}
		else if (valinta == 2) {
			if (kattila == 1) { printf("Täällä ei ole enää mitään nähtävää -.-\n"); }
			else
			{
				printf("\n-Saavut laatikon luo. Laatikko on todella pölyinen ja näyttää antiikkiselta.\n Avaat laatikon. Näet siellä kattilan.");
				printf("\n\n* Haluatko [1]jättää kattilan, vai [2]ottaa kattilan: ");
				scanf("%d",&kattila);
				while (kattila != 1 && kattila != 2) 
					{
						printf("Väärä valinta. Valitse 1 tai 2 : ");
						scanf("%d",&kattila);
					}
				kattila--;
				if (kattila == 1) { printf("-Otit kattilan! Koska olet laiska, etkä jaksa kantaa sitä, laitat sen päähäsi."); pisteet++; }
			}
			printf("\n\n* Minne haluat mennä: [1]pöydän, [2]laatikon vai [3]hyllyn luo?: ");
			scanf("%d",&valinta);
		}
		else 
		{ 
			printf("-Hyllyt ovat täynnä rojua, mutta takana näkyy jotain, mikä muistuttaa ovea.");
			printf("\n\n* Haluatko [1]lähteä pois vai [2]rikkoa hyllyn?: ");
			scanf("%d",&valinta);

			while (valinta != 1 && valinta != 2) 
				{
					printf("Väärä valinta. Valitse 1 tai 2: ");
					scanf("%d",&valinta);
				}
			if (valinta == 2 && kattila == 1 && lapio == 1)
			{
				printf("-Lyöt hyllyn hajalle lapiolla, sieltä lentelee tavaroita, mutta onneksi sinulla\n on kattila pään suojana. Menet uudesta ovesta.");
				pisteet++;
				printf("\n\n[Teh End] Pisteet: %d", pisteet);
				return pisteet;
			}
			else if (valinta == 2 && kattila == 0 && lapio == 1)
			{
				printf("-Lyöt hyllyn hajalle lapiolla ja sieltä lentelee tavaroita. Maalipurkki lentää\n päähäsi ja päätäsi alkaa särkeä todella pahasti. Menet uudesta ovesta.");
				printf("\n\n[Teh End] Pisteet: %d", pisteet);
				return pisteet;
			}
			else if (valinta == 2 && kattila == 1 && lapio == 0)
			{
				printf("-Lyöt hyllyn hajalle lapiolla ja sieltä lentelee tavaroita, mutta onneksi\n sinulla on kattila pään suojana. Menet uudesta ovesta.");
				pisteet++;
				printf("\n\n[Teh End] Pisteet: %d", pisteet);
				return pisteet;
			}
			else if (valinta == 2 && kattila == 0 && lapio == 0)
			{
				printf("-Kaadat hyllyn ja sieltä lentelee tavaroita. Maalipurkki lentää päähäsi ja\n päätäsi alkaa särkeä todella pahasti. Menet uudesta ovesta.");
				pisteet--;
				printf("\n\n[Teh End] Pisteet: %d", pisteet);
				return pisteet;
			}
			else {
				printf("\n\n* Minne haluat mennä: [1]pöydän, [2]laatikon vai [3]hyllyn luo?: ");
				scanf("%d",&valinta);
			}
		}
	}
}



int Funktio2(int pisteet) 
{ 
	printf("\nFunktio 2!"); return 2; 
}



/*****************************
Huone jossa haisee omituiselle
*****************************/

int Funktio3(int pisteet) 
{
	int valinta;
	int piste = 0;
	int whatif = 0;
	

	printf("Yhtäkkiä löydät itsesi huoneesta, jossa haisee omituiselle.\n"
		   "Jotenkin... omituiselle. Astut muutaman askeleen ja törmäät johonkin.\n"
		   "Huomaat, että edessäsi on tietokoneja sen edessä ohjelmoinnin koe.\n"
		   "Jäät tuijottamaan koepaperia ja mietit vaihtoehtojasi:\n\n");
				
	
	while (whatif == 0)
	{
		valinta = valikko();

		switch(valinta)
		{

			case 1:
				printf("\nKoe on vasta alkanut, et voi poistua ;( Hyvä yritys kuitenkin.\n");
			
			break;

			case 2:
				printf("\nGERONIMO...! (1 pts.)");
				whatif++;
				piste = 1;

			break;

			case 3: 
				printf("\nEilen oli keskiviikko, etkä baari-illan takia valmistautunut lainkaan kokeeseen.\n"
					   "Läpäiset kokeen rimaa hipoen ja poistut huoneesta häpeä kasvoillasi. (3 pts.)\n");
				whatif++;
				piste = 3;
			break;

			case 4: 
				printf("\nOnnistuit hakkeroitumaan opettajan tietokoneelle,\n"
					   "ja sait vaivihkaa hankittua koevastaukset\n\n"
					   "Opettaja huomasi temppusi, muttei kyennyt todistamaan mitään.\n"
					   "Menetit kasvosi, mutta ainakin sait täydet pisteet kokeesta. (5 pts)\n");
				whatif++;
				piste = 5;
			break;
	
			case 5:
				printf("Onnistuit panikoinnillasi ärsyttämään vierustoveriasi, joka helpotti tuskaasi\n"
					   "kiristämällä hiirensä johdon kaulasi ympärille muutamaksi minuutiksi. (0 pts.)\n");
				getch();
				
			break;

			default:
					printf("Tarkista valintasi.\n");

		}
	}

	
	pisteet = pisteet + piste;

return pisteet;
}


int valikko(void)
{
	int valittu;

	printf("1. RUN FORREST, RUN!\n");
	printf("2. Paiskaat tietokoneen ikkunasta pihalle ja pakenet paloportaita pitkin.\n");
	printf("3. Istut urheasti alas ja rupeat koodaamaan.\n");
	printf("4. PANIIKKI! Entäpä hakkerointi..?\n");
	printf("5. Jokeri?\n");
	scanf("%d", &valittu);

	return valittu;

}


int Funktio4(int pisteet) 
{ 
	printf("\nFunktio 4!"); return 4; 
}

/***************************
*Viidakkoon metsästämään
***************************/

int Funktio5(int pisteet) 
{

	char merkki;

	pisteet = 0;

	printf("Haluatko lähteä viidakkoon metsästämään leijonia vaiko tapaamaan muinaista intiaaniheimoa? (V/T)");
	scanf("%c", &merkki);
	fflush(stdin);


	if ((merkki == 'V')||(merkki == 'v'))
	{
	
		pisteet = pisteet + 5;
	
		printf("Valitsit leijonanmetsästyksen. Tahdotko leikkiä Indiana Jonesia vai itse Terminaattoria? (I/E)");
		scanf("%c", &merkki);
		fflush(stdin);

		if ((merkki == 'I')||(merkki == 'i'))
		{
		
			pisteet = pisteet + 5;

			printf("Valitsit Indiana Jonesin. Leijonia vasemmalla! Mitä teet?\n");
			printf("a. Syöksyt apinan raivolla leijonien kimppuun.\n");
			printf("b. Ryntäät lähimpään pusikkoon ja jäät kytikselle.\n");
			printf("c. Juokset kotiin sänkysi alle.");
			scanf("%c", &merkki);
			fflush(stdin);
			
			switch(merkki)
			{
			
			case 'a':
			
				pisteet = pisteet + 1;

				printf("Leijonat raatelevat sinua, ja toisinpäin. Olet saanut suurimman osan tapettua, mutta muutama\n");
				printf("sinnittelee vielä. Voimasi ovat vähissä, ja sinulla on enää yksi todellinen paikka iskeä.\n");
				printf("Käytätkö voimasi yhteen leijonaan, jolloin saat sen takuulla tapettua, vai kaikkiin jäljellä");
				printf("oleviin, jolloin kaikki eivät välttämättä kuole? (Y/K)");
				scanf("%c", &merkki);
				fflush(stdin);

				if ((merkki == 'Y')||(merkki == 'y'))
				{
				
					pisteet = pisteet + 5;

					printf("Viisas valinta! Tapettuasi vielä yhden jellonan muut lähtevät karkuun ja voitat pelin.\n");
					printf("Onneksi olkoon!");
				
				
				}

				if ((merkki == 'K')||(merkki == 'k'))
				{
				
					pisteet = pisteet + 0;

					printf("Voi voi, voimasi eivät riittäneet loppujen leijonien tappamiseen, vaan ne pääsivät niskan\n");
					printf("päälle ja raatelivat lopulta sinut.");
				
				
				
				}

				break;

			case 'b':

				pisteet = pisteet + 5;

				printf("Kyttäyksesi kannatti, ja sait yllätettyä leijonat niiden ollessa lepäämässä. Onneksi olkoon,\n");
				printf("sait Indiana Jonesina maksimipisteet!");

				break;

			case 'c':

				pisteet = pisteet + 0;

				printf("Pelkuri! Lähdet itkien kotiin, jossa lämmität kupin kaakaota. Se ei kuitenkaan pisteiden valossa\n");
				printf("juuri tunnu, sillä tällä kertaa rohkeus olisi palkittu.\n");

				break;


			default: printf("Valitsit väärin.\n");
			}


		
		}

		if ((merkki == 'E')||(merkki == 'e'))
		{
		
			pisteet = pisteet + 3;

			printf("Valitsit Ison Arskan. Leijonia joka puolella! Mitä teet?\n");
			printf("a. Toteat 'Hasta la vista, baby!' ja aloitat silmittömän tulituksen.\n");
			printf("b. Ryntäät lähimpään pusikkoon ja jäät kytikselle.\n");
			printf("c. Juokset kotiin sänkysi alle.");
			scanf("%c", &merkki);
			fflush(stdin);
		
			switch(merkki)
			{
			
			case 'a':

				pisteet = pisteet + 1;

				printf("Kuteja kuluu hirveästi, ja suurin osa niistä osuu harhaan. Sinulla on enää yksi lipas jäljellä.\n");
				printf("Peräännytkö suosiolla, vai otatko tietoisen riskin, ja yrität niitata loput leijonat? (P/N");
				scanf("%c", &merkki);
				fflush(stdin);

				if ((merkki == 'P')||(merkki == 'p'))
				{

					pisteet = pisteet + 5;

					printf("Viisas valinta! Peräännyttyäsi kohtaat matkalla Indiana Jonesin ja päätätte yhdessä liistiä\n");
					printf("loput leijonat. Onnistutte myös siinä, ja viidakko on taas astetta turvallisempi paikka.");


				
				}

				if ((merkki == 'N')||(merkki == 'n'))
				{
				
					pisteet = pisteet + 2;

					printf("Kutisi eivät kuitenkaan riittäneet loppuun asti, ja leijonat pääsivät niskan päälle.\n");
					printf("Saat kuitenki viimeisillä voimillasi tapettua ne, mutta hinta on kallis: menetät toisen\n");
					printf("jalkasi taistelussa, ja palaat tuskissasi takasin kaupunkiin.");
				
				}
				break;

			case 'b':

				pisteet = pisteet + 7;

				printf("Yö laskeutuu viidakon ylle ja näet tilaisuutesi tulleen. Yllätät jellonat niiden nukkuessa ja\n");
				printf("maailma on taas pelastettu. Onnittelut, sait maksimipistemäärän Iso-A:lla pelatessa!");
			
				break;

			case 'c':

				pisteet = pisteet + 0;
			
				printf("Pelkuri! Lähdet itkien kotiin, jossa lämmität kupin kaakaota. Se ei kuitenkaan pisteiden valossa\n");
				printf("juuri tunnu, sillä tällä kertaa rohkeus olisi palkittu.\n");

				break;

			default: printf("Valitsit väärin.\n");
			}
		}

	}

	if ((merkki == 'T')||(merkki == 't'))
	{
	
		pisteet = pisteet + 5;
	
		printf("Valitsit muinaisen intiaaniheimon tapaamisen.\n");
		printf("Lähdetkö sinne rauhanomasin elkein vaiko kenties valloitusmielessä? (R/A)");
		scanf("%c", &merkki);
		fflush(stdin);

		if ((merkki == 'R')||(merkki == 'r'))
		{
		
			pisteet = pisteet + 5;

			printf("Lähdit siis rauhanomaisin aikein. Heimo osoittautuu varsin ystävälliseksi, ja he haluavat\n");
			printf("käydä kauppaa kanssasi. Kumman otat vaihdossa vastaan, 10kg kultaa vai 5kg hopeaa? (C/H)");
			scanf("%c", &merkki);
			fflush(stdin);

			if ((merkki == 'C')||(merkki == 'c'))
			{
			
				pisteet = pisteet + 0;
			
				printf("Hahaa, tällä kertaa ahneus ei kannattanut. Saamasi kulta osoittautuikin kissankullaksi\n");
				printf("tarkistuttaessasi sen kaupungissa paikallisessa kultaliikkeessä. Heimokin on jo kadonnut\n");
				printf("jäljettömiin, joten sinun on vain pakko tyytyä kovaan kohtaloosi..");
			
			}

			if ((merkki == 'H')||(merkki == 'h'))
			{
			
				pisteet = pisteet + 3;

				printf("Onneksi olkoon valinnastasi, sillä kulta olisi ollut kissankultaa. Tämän tarinan opetus\n");
				printf("lienee siis se, ettei kannata olla liian ahne.");
			
			}





		}

		if ((merkki == 'A')||(merkki == 'a'))
		{
		
			pisteet = pisteet + 0;

			printf("Intiaaniheimo osoittautuikin kannibalismin ystäviksi ja he söivät sinut elävältä. Kurja\n");
			printf("kohtalo, mutta minkäs teet..");
		
		}
	
	}

	printf("\nPisteesi ovat %d.", pisteet);

	getch();
	return pisteet;
	

}

int Funktio6(int pisteet) 
{ 
	printf("\nFunktio 6!"); return 6; 
}


/***************
* Kalaan
****************/

int Funktio7(int pisteet) 
{ 

	int valintA=0, valintB=0, valintC=0, valintD=0, valintE=0;
	int pisteet_funkt=0;

	printf("Nuori Koodari lähtee kalaan.\n\n");
	printf("!!!! Anna valintasi numeroilla 1-5 !!!!!\n\n");
	while((valintA<=0) || (valintA>5))
	{
		printf("A: Kalaan mennessään hänen täytyy ylittää tie ja hän ylittää sen:\n");
		printf("1. Hammasharjalla\n2. Pomppukepillä\n3. Kävellen\n4. Juosten\n5. Tetsaten\nValintasi: ");
		scanf("%d", &valintA);
		if(valintA==5)
		{
			pisteet++;
			pisteet_funkt++;
		}
		else if((valintA<=0) || (valintA>5))
		{
			printf("\nValinnan piti olla väliltä 1-5!\n\n");
		}
	}

	while((valintB<=0) || (valintB>5))
	{
		printf("\nB: Tien yli päästyään Koodari tapaa vanhan- ja viisaan Unix-asiantuntijan Jurgen   Guntherswarchzhaffenstrassenin. Hän kysyy mitä Nuori Koodaaja meinaa järvellä tehdä?\n");
		printf("1. Kalastaa siikoja\n2. Kalastaa särkiä\n3. Kalastaa haukia\n4. Puukottaa sorsaa\n5. Kalastaa lohia\nValintasi: ");
		scanf("%d", &valintB);
		if(valintB==4)
		{
			pisteet++;
			pisteet_funkt++;
		}
		else if((valintB<=0) || (valintB>5))
		{
			printf("\nValinnan piti olla väliltä 1-5!\n\n");
		}
	}

	while((valintC<=0) || (valintC>5))
	{
		printf("\nC: Päästyään järven rantaan Nuoren Koodarin piti valita mistä meinasi kalastaa:\n");
		printf("1. Jolla\n2. TERHI Baby Fun soutuvene\n3. SeaRay 60 Sundancer -vene\n4. Buster Magnum -vene\n5. Kalastaa laiturilta\nValintasi: ");
		scanf("%d", &valintC);
		if(valintC==3)
		{
			pisteet++;
			pisteet_funkt++;
		}
		else if((valintC<=0) || (valintC>5))
		{
			printf("\nValinnan piti olla väliltä 1-5!\n\n");
		}
	}
	
	while((valintD<=0) || (valintD>5))
	{
		printf("\nD: Nuori Koodaari huomasi vieressään 12V tupakansytytinpistokkeen, josta aina\thänen mukanaan kantamansa invertterin avulla saa virtaa ikiomaan läppäriin.\tHänellä on myös sattumalta mukanaan HSDPA:a tukeva matkapuhelin, joten hän\tpäättää käyttää haluamaansa keskustelutapaa **KING OF IRC**-kaverinsa kanssa:\n");
		printf("1. Live Messenger\n2. mIRC\n3. IRC\n4. IRC-Galleria\n5. TEINIX XÄT\nValintasi: ");
		scanf("%d", &valintD);
		if(valintD==3)
		{
			pisteet++;
			pisteet_funkt++;
		}
		else if((valintD<=0) || (valintD>5))
		{
			printf("\nValinnan piti olla väliltä 1-5!\n\n");
		}
	}

	while((valintE<=0) || (valintE>5))
	{
		printf("\nE Päivän päättyessä Nuori Koodari kävelee onnellisena kohti auringon laskua. Hän huomaa, että ei ollutkaan saanut hirveästi kalaa runsaasta viestittelysessiosta johtuen. Mutta kalaa tuli kuitenkin jonkin verran, joten hän päätti tehdä\tniille seuraavaa:\n");
		printf("1. Näillä opintotuilla vedetään kaikki saadut kalat ruotoineen\n\n2. Hän suorittaa kaloille rituaalisen armomurhan itse tehdyn pentagramin päällä\n\n3. Päästää kalat takaisin järveen, koska hän kuitenkin elää Coca-Colalla ja\t   sipseillä\n\n4. Vie kalat kämpille Fortran-nimisen kissansa ruuaksi\n\n5. Hän antaa kalat vanhalle- ja viisaalle Unix-asiantuntijalle\nValintasi:");
		scanf("%d", &valintE);
		if(valintE==1)
		{
			pisteet++;
			pisteet_funkt++;
		}
		else if((valintE<=0) || (valintE>5))
		{
			printf("\nValinnan piti olla väliltä 1-5!\n\n");
		}
	}
	printf("\nPisteesi tästä osiosta: %d/5.", pisteet_funkt);

	return pisteet;

}


/***************
* Valaistu huone
****************/

int Funktio10(int pisteet)
{
	int vastaus;
	printf("RP-HUONE\n");
	printf("Saavut valaistuun huoneeseen. Näet edessäsi kolme ovea ja kyltin seinällä \n1. Mene ovesta numero 1. \n2. Mene ovesta numero 2.\n3. Mene ovesta numero 3.\n4. Lue kyltti.\n");
	scanf("%d", &vastaus);
	while (vastaus <1 || vastaus > 4)
	{
		printf("Annoit väärän arvon, syötä valinta väliltä 1-4");
		scanf("%d", &vastaus);
	}
	if (vastaus == 1)
	{
		printf("\nEnsimmäinen ovi aukeaa hiljaa narahtaen... Astut varovasti eteenpäin..");
		printf("\nHuoneesta kuuluu murinaa ja laahavia askeleita, tästä huolimatta päätät jatkaa..");
		printf("Astut askeleen, astut toisen kunnes yhtäkkiä!");
		printf("\nKymmenet mätänevät käsivarret tarttuvat sinuun ja repivät kurkkusi auki!");
		printf("\nElävät kuolleet syövät sinut hyvällä ruokahalulla ja pelisi päättyy tähän.");
	}
	else if (vastaus == 2)
	{
		printf("\nToinen ovi on turvonnut kosteudesta, päätät kuitenkin nykiä oven auki...");
		printf("\nKiskot lujempaa ja lujempaa kunnes ovi vihdoin lävähtää auki");
		printf("\nSisään vyöryvä vesimassa hukuttaa sinut!");
	}
	else if (vastaus == 3)
	{
		printf("\nKolmas ovi aukeaa helposti...");
		printf("\nTunnet kasvoillasi hieman raikkaamman ilman henkäyksen edetessäsi huoneeseen.");
		pisteet = pisteet + 3;
	}
	else if (vastaus == 4)
	{
		printf("\nTaulussa on numerosarja: 0011\n");
		pisteet++;
		printf("Taulun luettuasi ja hieman viisaampana päätät avata oven numero: ");
		scanf("%d", &vastaus);

		while (vastaus <1 || vastaus > 3)
		{
			printf("Annoit väärän arvon, syötä valinta väliltä 1-3");
			scanf("%d", &vastaus);
		}

		if (vastaus == 1)
		{
			printf("\nTaulun tekstin perusteella olet vakuuttunut siitä että ensimmäinen ovi on oikea.");
			printf("Ovi aukeaa hiljaa narahtaen...");
			printf("\nEdetessäsi kuulet hiljaista murinaa ja laahaavia askeleita.");
			printf("\nYrität astua askeleen eteenpäin, mutta et onnistu!");
			printf("\nSinuun tarttuvat kymmenet mädäntyneet kädet!");
			printf("\nElävät kuolleet syövät sinut hyvällä ruokahalulla ja pelisi päättyy tähän.");
		}
		else if (vastaus == 2)
		{
			printf("\nTaulun tekstin perusteella olet varma että oikea ovi on numero kaksi.");
			printf("\nOvi on turvonnut tiukasti kiinni...");
			printf("\nRiuhdot ja riuhdot kunnes ovi viimein antaa periksi");
			printf("\nHuoneeseen vyöryy suunnaton vesimassa hukuttaen sinut!");
		}
		else if (vastaus == 3)
		{
			printf("\nTaulun tekstin perusteella olet varma että ovi numero kolme on avain onneen.");
			printf("\nTyönnät ovea kevyesti ja se aukeaa helposti. ");
			printf("\nTunnet kasvoillasi hieman raikkaamman ilman henkäyksen edetessäsi huoneeseen.");
			pisteet = pisteet + 3;
		}
	}
	
	return pisteet;
}

/****************
*Hiscore systeemi
*****************/

int hiscore(int pisteet){
	char uusinimi[40];
	int uusi,palautus;
	uusi= tarkistus(pisteet); //tarkitusfunktio
	if(uusi<10){                        // jos uusi hiscore
		FILE *tiedosto;
		tiedosto = fopen("HISCORE.DAT","rb+");
		fread(&scoreja,sizeof(scoreja),10,tiedosto);
		printf("Onneksi olkoon uusi HISCORE!!! Syötä nimesi: ");
		fflush(stdin);
		scanf("%39[^\n]",uusinimi);	//pelaajan nimi
		for(int k=9;k>uusi;k--){  //pistetään edelliset nimet yks slotti eteenpäin jotta saadaan uusi nimi ja score väliin
			strcpy(scoreja[k].nimi,scoreja[k-1].nimi);
			scoreja[k].score = scoreja[k-1].score;
		}
		strcpy(scoreja[uusi].nimi,uusinimi);
		scoreja[uusi].score=pisteet;
		tiedosto = fopen("HISCORE.DAT","wb+");
		fwrite(&scoreja,sizeof(scoreja),10,tiedosto);//kirjotetaan uudet tiedot
		luku();
		fclose(tiedosto);
		palautus = 1;
		
	}
	else{
		printf("Ei uutta hiscorea\n\n");
		luku();
		palautus = 0;
	}
	return(palautus);		//palauttaa arvon 1 jos uusi highscore ja 0 jos ei uutta highscorea	
}
void luku(){
	FILE *tiedosto;
	tiedosto = fopen("HISCORE.DAT","ab+");
	fread(&scoreja,sizeof(scoreja),10,tiedosto);
	printf("HISCORELISTA: \n\n\n");
	for(int i=0;i<10;i++){
		printf("%d.\t %s :\t\t%d\n",i+1,scoreja[i].nimi,scoreja[i].score);
	}
}

int tarkistus(int a){   //kattoo eka et onko tiedostoa hiscore.dat ees olemassa jos ei niin kysyy käyttäjältä luodaanko uusi
	int i,palautus;
	FILE *tiedosto;
	tiedosto = fopen("HISCORE.DAT","rb+");
	if(tiedosto == NULL){
		printf("Tiedoston avaus ei onnistunu. Luodaan uusi hiscore.dat\n");
		ekakerta();          //käy ekakerta funktios luomassa uuden tiedoston
	}
	tiedosto = fopen("HISCORE.DAT","rb+");
	fread(&scoreja,sizeof(scoreja),10,tiedosto);
	for(i=0;i<10;i++){                              // tarkistetaan onko suurempi kuin yksikään hiscorelistassa
		if(scoreja[i].score < a){
			palautus = i;
			fclose(tiedosto);
			break;                  //hypätään loopista puis jos on uus hiscore
		}
		else{
			palautus = 10;                //palautetaan 10 jos ei uutta hiscorea
		}


	}
	fclose(tiedosto);
	return(palautus);                           //returnataan löytyikö uus hiscore ja monennessa slotissa se on
}


void ekakerta(void){               //luo 10 kertaa eikukaan 0 pisteellä hiscore.dattiin
	FILE *tiedosto;
	tiedosto = fopen("HISCORE.DAT","ab+");
	for(int i = 0;i<10;i++){
		strcpy(scoreja[i].nimi,"eikukaan");
		scoreja[i].score = 0;

	}
	fwrite(&scoreja,sizeof(scoreja),10,tiedosto);
	fclose(tiedosto);
}