Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- #include <time.h>
- #include <stdlib.h>
- #include <string.h>
- #include <windows.h>
- #define K 13
- #define Q 13
- #define J 11
- #define T 10
- //--Tietotyyppien määrittettely
- typedef char Maa[7];
- typedef char Arvo[3];
- typedef struct {
- Maa maa;
- Arvo arvo;
- }Tkortti;
- //Määritellään kortin arvoille taulukot
- Arvo arvot[13]={"A", "2", "3", "4", "5", "6", "7","8","9","T","J","Q","K"};
- Maa maat[4]={"Hertta","Risti","Ruutu","Pata"};
- //******* FUNKTIOT ********
- void tayta_pakka(Tkortti *);
- void tulosta_pakka(Tkortti *);
- void sekoita_pakka(Tkortti *);
- Tkortti jaa_kortti(Tkortti *pakka, Tkortti *pelaaja, Tkortti *jakaja);
- void pelaajan_jako(Tkortti *pelaaja, Tkortti *jakaja, int *pelaajan_total, int i);
- int lisaa(void);
- void clrscr();
- //*******************PÄÄOHJELMA**********************//
- int main (void)
- {
- printf("| | _ _ _ _ _ |/_ | _ _ _ _ |\n");
- printf("| _|(_)| | | |(_| |\(_||_||(_|| | }_ | | |\n\n\n");
- printf("%c, %c, %c, %c", 979,980, 981, 982);
- srand(time(NULL));
- Tkortti pakka[52]; //Korttipakalle varataan taulukko, joka myöhemmin täytetään ja sekoitetaan jne
- Tkortti pelaaja[26]; //Pelaajalle jaetuille korteille varataan taulukko jotka tulostetaan aina pöydälle
- Tkortti jakaja[26];
- Tkortti pelaajan_poyta[26];
- Tkortti jakanan_poyta[26];
- int pelaajan_summa=0;
- int jakajan_summa;
- int assa, mones=0;
- tayta_pakka(pakka);
- sekoita_pakka(pakka);
- tulosta_pakka(pakka);
- jaa_kortti(pakka); //Jakaa pakan kahtia ja täyttää pelaajalle ja jakajalle varatut taulukot korteilla
- /*
- int i;
- for(i=0; i<10; i++)
- {
- printf("%s \n", pelaaja[i]);
- printf("%s \n", pelaaja[i]);
- }
- */
- pelaajan_jako(pelaaja,jakaja, &pelaajan_summa, mones);
- while(lisaa())
- {
- clrscr();
- printf("\n Halusit lisää \n");
- mones++;
- pelaajan_jako(pelaaja,jakaja, &pelaajan_summa, mones);
- printf("\n\nSumma main ohjelmassa: %d ", pelaajan_summa);
- }
- /*valinta=getchar();
- if (valinta == 'k' || valinta == 'K')
- printf("Halusit siis uuden kortin");
- else if (valinta == 'e' || valinta == 'E')
- printf("Et halua lisää");
- printf("Pelaajan eka kortti\n");
- printf("\n\nSumma main ohjelmassa: %d ", pelaajan_summa);
- printf(pelaaja[0].maa);
- printf(pelaaja[0].arvo);
- */
- system("PAUSE");
- }
- //***********************************************
- //LISÄÄ
- int lisaa()
- {
- char valinta;
- printf("Valitse joko k = lisää tai e = ei enempää\n");
- valinta=getche();
- while
- (valinta == 'k')
- return 1;
- if(valinta == 'e'){
- printf("\nEt halunnut lisää.\n");
- return 0;}
- else if (valinta != 'k' || valinta != 'e')
- {
- printf("VALITSTIT VÄÄRIN! Valitse joko k (lisää) tai e (ei lisää)");
- lisaa();
- }
- }
- //***************************************************//
- //PELAAJAN JAKO
- void pelaajan_jako(Tkortti *pelaaja, Tkortti *jakaja, int *pelaajan_total, int i)
- {
- int luku=0, osoite_summaan;
- char merkki, valinta;
- osoite_summaan=*pelaajan_total;
- merkki=pelaaja->arvo[i];
- printf("Jakajan ensimmäinen kortti on %s %s\n",jakaja[0].arvo, jakaja[0].maa);
- printf("Sinun korttisi on %s %s\n",pelaaja[i].arvo, pelaaja[i].maa);
- printf("\ni arvo on %d \n", i);
- if(merkki == 'K')
- luku=10;
- else if(merkki == 'Q')
- luku=10;
- else if(merkki == 'J')
- luku=10;
- else if(merkki == 'T')
- luku=10;
- else if(merkki >= 50 && merkki <= 57)
- luku=merkki-48;
- else if(merkki == 'A')
- {luku=1;}
- *pelaajan_total=osoite_summaan+luku;
- printf("\n\nSummasi on funktiossa : %d \n", *pelaajan_total);
- }
- //JAA KORTIT
- //Täyttää jaetut taulukon pelaajan korteilla
- Tkortti jaa_kortti(Tkortti *pakka, Tkortti *pelaaja, Tkortti *jakaja){
- int i;
- Tkortti aux;
- for(i=0; i<25; i++)
- {
- *pelaaja[i]=pakka[i];
- }
- for(i=26; i<51; i++)
- {
- *jakaja=pakka[i];
- }
- // Tulostut pelaajan korttejan (Tarkistusta varten)
- /* for (i=0;i<=25;i++){
- printf("Pelaaja %d", i); //Kortin järjestysluku
- printf(" "); //
- printf(pakka[i].maa); //Tulostaa kortin maa
- printf(" ");
- printf(pakka[i].arvo); //Tulostaa kortin arvon
- printf("\n");
- }
- */
- }
- //TÄYTÄ PAKKA
- //Täyttää pakan korteilla järjestykseen maittain
- void tayta_pakka(Tkortti *pakka){
- int i;
- for (i=0;i<=51;i++)
- {
- strcpy (pakka[i].arvo,arvot[i%13]);
- strcpy (pakka[i].maa,maat[i/13]);
- }
- }
- //SEKOITA PAKKA
- //Sekoittaa pakan
- void sekoita_pakka(Tkortti *pakka){
- int i,x; //Kaksi muuttujaa
- Tkortti apukortti; //Apukortti
- for (i=0;i<=51;i++)
- {
- x=rand()%52; //Arvotaan kortti
- apukortti=pakka[i]; //kopioidaan apukorttiin alkuperäisestä pakasta arvottu kortti
- pakka[i]=pakka[x]; //alkuperäiseen pakkaan laitetaan 0-51 järjestyksessä satunnainen kortti
- pakka[x]=apukortti; //arvotunkortin tilalle kortti joka oli tallessa
- }
- }
- //TULOSTA PAKKA
- //Tulostaa pakan siinä järjestyksessä kuin se on
- void tulosta_pakka(Tkortti *pakka){
- int i;
- for (i=0;i<=51;i++){
- printf(" %d", i); //Kortin järjestysluku
- printf(" "); //
- printf(pakka[i].maa); //Tulostaa kortin maa
- printf(" ");
- printf(pakka[i].arvo); //Tulostaa kortin arvon
- printf("\n");
- }
- }
- //RUUDUN TYHJENNYS
- void clrscr()
- {
- COORD coordScreen = { 0, 0 };
- DWORD cCharsWritten;
- CONSOLE_SCREEN_BUFFER_INFO csbi;
- DWORD dwConSize;
- HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
- GetConsoleScreenBufferInfo(hConsole, &csbi);
- dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
- FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize, coordScreen, &cCharsWritten);
- GetConsoleScreenBufferInfo(hConsole, &csbi);
- FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
- SetConsoleCursorPosition(hConsole, coordScreen);
- }
Add Comment
Please, Sign In to add comment