En ny tiiä onko tästä kenellekkään hyötyä, mut pistin ny kuitenki tänne tän. Ei toimi linuxilla. Koodi on vähä kömpelöö ko en oo mikää kokenu ohjelmoija.
Muokkaa miten huvittaa.
Jee eka koodivinkki.
nii ja valmis exe löytyy:
http://koti.mbnet.fi/zam0ut/ohjelmat/C/peli/tseikkailu.exe
tseikkailu.c
/************************************************************ ****** TSEIKKAILU.C ***************************************** ****** Konsolipohjainen peli. ******************************* ****** Peli toimii vain windowsilla. ************************ ****** Oon laiska, ja en jaksanu kommentoida funktioit.****** ************************************************************/ #include <stdio.h> #include <stdlib.h> #include <windows.h> /* tyyppimuunnokset */ typedef const int COI; typedef const char NAP; typedef const int OBJ; typedef const int MUU; /* vakiot */ COI PELAA = 1; COI OHJEET = 2; COI TOPLISTA = 3; COI POISTU = 4; COI TNAYTTO = 5; COI MAARA = 5; NAP YLOS = 'w'; NAP ALAS = 's'; NAP VASEN = 'a'; NAP OIKEA = 'd'; OBJ PAISTI = 2; OBJ KALA = 2; OBJ LEIPA = 1; MUU ELAMAT = 3; /* Funktioiden protyypit */ void aloitaPeli(void); void naytaOhjeet(void); void naytaValikko(int valinta); void poistu(void); int kysyValinta(void); void tyhjennaNaytto(void); void naytaTopLista(void); void laskuri(int sekunnit); int poistaElama(int pelam, int elam); int lisaaElama(int pelam, int elam); /* Pääfunktio */ int main(int argc, char *argv[]) { /* Muuttujat */ int valikko; printf("Tervetuloa pelaamaan peli\x84!\n"); /* Loppumaton silmukka */ while(1) { /* Näytetään valikko */ valikko = kysyValinta(); naytaValikko(valikko); } } /* Funktioiden määrittelyt */ /* Itse pelifunktio. */ void aloitaPeli(void) { char nappain; int elamat = ELAMAT; int pelitaso = 0; int pelivalinta; int valikko; puts("Aloitetaan uusi peli.\n"); printf("Katsoaksesi peliohjeet, k\x84ynnist\x84 ohjelma uusiksi ja katso ohjeet.\n", OHJEET); printf("\n\n ###TASO 1###\n\n"); printf("Alapuolellasi on 1 sein\x84. Niit\x84 on 3 riviss\x84 vierekk\x84in. Minnep\x84in siirryt? "); scanf("%s",&nappain); while(nappain == ALAS && elamat > 1) { elamat = poistaElama(1,elamat); printf("Alapuolellasi on 1 sein\x84. Niit\x84 on 3 riviss\x84 vierekk\x84in. Minnep\x84in siirryt? "); scanf("%s",&nappain); } if(nappain == VASEN) { printf("Oikealle puolelle kaatui puu. Yl\x83puolellasi on sein\x84. Minne siirryt?"); scanf("%s",&nappain); while(nappain != VASEN && elamat > 1) { elamat = poistaElama(1,elamat); printf("Oikealle puolelle kaatui puu. Yl\x83puolellasi on sein\x84. Minne siirryt?"); scanf("%s",&nappain); } } else if(nappain == OIKEA) { printf("\n\nRosvojoukko ry\x94st\x84\x84 sinut. Mit\x84 sanot?\n"); printf("1: \"Ei minulla ole rahaa, eik\x84 muutakaan arvokasta.\"\n"); printf("2: \"Saamari m\x84 en teille paskiaisille rahaa anna!\"\n"); printf("3: \"Katsokaa! Lent\x84v\x84 lehm\x84!\""); scanf("%d",&pelivalinta); if(pelivalinta == 1) { printf("\"- Tutkikaa h\x84net! H\x84 huijaa!\"\n"); } else if(pelivalinta == 2) { printf("\"- Ai jaa sinulla on rahaakin. Hakataan h\x84net!\"\n"); printf("Rosvojoukko hakkasi ja ry\x94sti sinut.\n\n"); elamat = poistaElama(1,elamat); } else if(pelivalinta == 3) { printf("Otat aseen ja ammut heid\x84t. \n"); elamat = lisaaElama(1,elamat); } } else if(nappain == YLOS) { printf("Ai tuli kuset housuu? Meinaa vaa ku oot menos takas"); laskuri(5); exit(0); } pelitaso++; printf("Onnea! L\x84p\x84isit tason %d (+ 2 el\x84m\x84\x84!)!",pelitaso); elamat = lisaaElama(2,elamat); printf("\n\n ###BONUSTASO###\n\n"); printf("Jokaisesta oikeasta kysymyksest\x84 1 bonusel\x84m\x84.\n\n"); printf("Valo kulkee sekunnissa...\n"); printf("1: n. 1000000 km/s\n"); printf("2: n. 300 000 m/s\n"); printf("3: n. 500 km/s\n"); printf("4: n. 300 000 km/s\n"); scanf("%d",&pelivalinta); if(pelivalinta == 4) { elamat = lisaaElama(1,elamat); printf("\nOikea vastaus!\n\n"); } else printf("\nV\x84\x84r\x84 vastaus! Oikea vastaus oli 4 (n. 300 000 km/s)"); printf("\n\nMik\x84 on aurinkoa l\x84hin oleva planeetta?\n"); printf("1: Venus\n"); printf("2: Merkurius\n"); printf("3: Maa\n"); printf("4: Mars\n"); scanf("%d",&pelivalinta); if(pelivalinta == 2) { elamat = lisaaElama(1,elamat); printf("\nOikea vastaus!\n\n"); } else printf("\nV\x84\x84r\x84 vastaus! Oikea vastaus oli 2 (Merkurius)"); printf("\n\n ###TASO 2###\n\n"); printf("Er\x84s ihminen tarjoaa sinulle ison pussin perunoita. Ostatko?\n"); printf("1: Kyll\x84\n"); printf("2: Ei\n"); scanf("%d",&pelivalinta); if(pelivalinta == 1) { printf("Ei pid\x84 ostaa sikaa s\x84kiss\x84. Virhe maksoi sinulle yhden el\x84m\x84n.\n"); printf("S\x84kki sis\x84lsi kivi\x84.\n"); elamat = poistaElama(1,elamat); } else { printf("Viisas valinta. S\x84kki sis\x84lsi kivi\x84. (+ 1 el\x84m\x84)\n"); elamat = lisaaElama(1,elamat); } } /* Funktio kysyy mikä toiminto tehdään. */ int kysyValinta() { int val; printf("\n\n ###VALIKKO:###\n"); printf("%d - pelaa\n",PELAA); printf("%d - ohjeet\n",OHJEET); printf("%d - toplista\n",TOPLISTA); printf("%d - poistu\n",POISTU); printf("%d - tyhjenn\x84 n\x84ytt\x94\n",TNAYTTO); printf("Anna valinta: "); scanf("%d",&val); while (val < 1 || val > MAARA) { printf("Virheellinen arvo (%d), arvo t\x84ytyy olla v\x84lilt\x84 1-%d.\n", val, MAARA); printf("Anna valinta uudelleen: "); scanf("%d",&val); } return val; } /* Funktio näyttää valikon. */ void naytaValikko(int valinta) { switch(valinta) { case 1: { aloitaPeli(); break; } case 2: { naytaOhjeet(); break; } case 3: { naytaTopLista(); break; } case 4: { poistu(); break; } case 5: { tyhjennaNaytto(); break; } default: { printf("Virhe! Poistutaan "); laskuri(3); exit(0); } } } /* Poistumisfunktio. */ void poistu(void) { int varmista; int valikko; puts("Oletko varma, ett\x84 haluat poistua pelist\x84?"); puts("1 = kyll\x84, 2 = ei, anna luku: "); scanf("%d",&varmista); while(varmista < 1 && varmista > 2) { printf("Anna joko luku 1 (kyll\x84) tai luku 2 (ei): "); scanf("%d",&varmista); } if(varmista == 1) { printf("Haluat siis poistua. Poistutaan "); laskuri(3); exit(0); } else { printf("Palataan takaisin peliin..."); Sleep(500); valikko = kysyValinta(); naytaValikko(valikko); } } /* Funktio tyhjentää näytön. */ void tyhjennaNaytto(void) { system("CLS"); } /* Funktio näyttää ohjeet. */ void naytaOhjeet(void) { int valikko; printf("\n\n ###OHJEET:###\n"); printf("Voit liikuttaa ukkelia painamalla\n"); printf("%c: yl\x94s\n",YLOS); printf("%c: alas\n",ALAS); printf("%c: vasemmalle\n",VASEN); printf("%c: oikealle\n",OIKEA); printf("ja sen j\x84lkeen enter.\n\n"); valikko = kysyValinta(); naytaValikko(valikko); } /* Funktio näyttää toplistan. En jaksanu ohjelmoida sitä. */ void naytaTopLista(void) { int valikko; printf("\n\n ###TOPLISTA:###\n"); printf("Valitettavasti toplista ei ole k\x84ytett\x84viss\x84.\n"); valikko = kysyValinta(); naytaValikko(valikko); } /* Funktio aiheuttaa viiveen. */ void laskuri(int sekunnit) { int i; printf("\n"); for(i = sekunnit; i > 0; i--) { printf("%d...",i); Sleep(1000); } } /* Funktio poistaa halutun elämämäärän. */ int poistaElama(int pelam, int elam) { int tulos; tulos = elam - pelam; if(tulos == 0) { printf("\n\nPeli loppu! Se oli viimeinen el\x84m\x84si.\n\n"); } else { printf("\nHuono valinta. Menetit yhden el\x84m\x84n. El\x84mi\x84 j\x84ljell\x84: %d\n",tulos); } return tulos; } /* Funktio lisää halutun elämämäärän. */ int lisaaElama(int pelam, int elam) { int tulos; tulos = elam + pelam; if(pelam == 1) printf("\nHyv\x84 valinta. Sait yhden el\x84m\x84n! El\x84mi\x84 j\x84ljell\x84: %d\n",tulos); else printf("\nSait %d el\x84m\x84\x84! El\x84mi\x84 j\x84ljell\x84: %d\n",pelam,tulos); return tulos; }
Varmaan aika hyvä mut en saanu toimimaan
Aihe on jo aika vanha, joten et voi enää vastata siihen.