Advertisement
Guest User

akasztofa

a guest
Oct 23rd, 2014
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.89 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #define clearScreen() system("clear")
  6. char userSzo[100];
  7. char szo[100];
  8. char rosszBetuk[11];
  9. int rosszBetukIndex=0;
  10. int hibaPont = 0;
  11. char bekertChar;
  12.  
  13. //Megnézi, hogy a szóban csak karakterek vannak-e
  14. void szoEllenorzes(){
  15.     while(1){
  16.  
  17.         int hiba=0;
  18.         int i=0;
  19.         for (i=0;szo[i]!=0;i++){
  20.             if (!(szo[i]>='a'&& szo[i]<='z')||(szo[i]>='A' && szo[i]<='Z')){
  21.                 hiba++;
  22.                 break;
  23.             }
  24.         }
  25.         //Ha talált hibás karaktert
  26.         if (hiba==0){
  27.             break;
  28.         }
  29.         //Ha NEM talált hibás karaktert
  30.         else{
  31.             clearScreen();
  32.             akasztofaRajzol();
  33.             printf("Csak az angol ábécé kis- és nagybetűit használhatod! Add meg újra a szót!\n");
  34.             //gets(szo);
  35.             scanf("%s", szo);
  36.             clearScreen();
  37.             akasztofaRajzol();
  38.         }
  39.     }
  40. }
  41.  
  42. //Megnézi, hogy megadta-e már az adott betűt, és helyes-e!
  43. void betuEllenorzes(){
  44.     while (1){
  45.        
  46.         int rosszChar=0;
  47.         if(!((bekertChar>='a' && bekertChar<='z')||(bekertChar>='A' && bekertChar<='Z'))){
  48.             clearScreen();
  49.             akasztofaRajzol();
  50.             printf("Csak az angol ábécé kis- és nagybetűit használhatod! Add meg újra a következő betűt!\n");
  51.             scanf("%c", &bekertChar);
  52.             clearScreen();
  53.             akasztofaRajzol();
  54.             rosszChar++;
  55.         }
  56.         //ELSEÁG
  57.         int i;
  58.         int voltMar=0;
  59.         //Megnézi a jók között
  60.         for (i=0;userSzo[i]!=0;i++){
  61.             if (userSzo[i]==bekertChar){
  62.                 ++voltMar;
  63.                 break;
  64.  
  65.             }
  66.         }
  67.         //Megnézi a hibásak között
  68.         for (i=0;rosszBetuk[i]!=0;i++){
  69.             if (rosszBetuk[i]==bekertChar){
  70.                 ++voltMar;
  71.                 break;
  72.             }
  73.         }  
  74.         //Ha előtte már meg lett adva a betű
  75.         if(voltMar){
  76.             clearScreen();
  77.             akasztofaRajzol();
  78.             printf("Ezt a betűt már megadtad! Adj meg egy másik betűt!\n");
  79.             scanf("%c", &bekertChar);
  80.             clearScreen();
  81.             akasztofaRajzol();
  82.         }      
  83.         else if (voltMar==0 && rosszChar==0){
  84.             break;
  85.         }
  86.     }
  87. }
  88. //Rossz betűk kiíratása
  89. void rosszBetukKiir(){
  90.     int j;
  91.     for (j=0;rosszBetuk[j]!=0;j++){
  92.  
  93.         if (rosszBetuk[j+1]!=0){
  94.             printf("%c, ", rosszBetuk[j]);
  95.         }
  96.         else{
  97.             printf("%c", rosszBetuk[j]);
  98.         }
  99.     }
  100.  
  101.     printf("\n");
  102. }
  103.  
  104. //Megnézi, hogy a bekért karakter benne van-e a szóban
  105. void benneVane(){
  106.     int i;
  107.     int joBetu=0;
  108.     for (i=0;szo[i]!=0;i++){
  109.         if (szo[i]==bekertChar){
  110.             ++joBetu;
  111.             userSzo[i]=szo[i];
  112.            
  113.         }
  114.     }
  115.     //Ha nem találtuk el
  116.     if (!joBetu){
  117.         hibaPont++;
  118.         rosszBetuk[rosszBetukIndex]=bekertChar;
  119.         rosszBetukIndex++;
  120.         rosszBetuk[rosszBetukIndex]=0;
  121.     }      
  122. }
  123.  
  124. //Akasztófát kirajzolja
  125. void akasztofaRajzol() {
  126.     switch (hibaPont) {
  127.         case 0 :
  128.         printf("Hibás karakterek: %d\n\n", hibaPont);
  129.         rosszBetukKiir();
  130.         printf("\n");
  131.         printf("\n");
  132.         printf("\n");
  133.         printf("\n");
  134.         printf("\n");
  135.         printf("\n");
  136.         printf("____________\n\n");
  137.         printf("\nA szó:\n%s\n", userSzo);
  138.         break;
  139.         case 1 :
  140.         printf("Hibás karakterek: %d\n\n", hibaPont);
  141.         rosszBetukKiir();
  142.         printf("\n");
  143.         printf(" |\n");
  144.         printf(" |\n");
  145.         printf(" |\n");
  146.         printf(" |\n");
  147.         printf(" |\n");
  148.         printf("_|_________\n\n");
  149.         printf("\nA szó:\n%s\n", userSzo);
  150.         break;
  151.         case 2 :
  152.         printf("Hibás karakterek: %d\n\n", hibaPont);
  153.         rosszBetukKiir();
  154.         printf(" _______\n");
  155.         printf(" |\n");
  156.         printf(" |\n");
  157.         printf(" |\n");
  158.         printf(" |\n");
  159.         printf(" |\n");
  160.         printf("_|_________\n\n");
  161.         printf("\nA szó:\n%s\n", userSzo);
  162.         break;
  163.         case 3 :
  164.         printf("Hibás karakterek: %d\n\n", hibaPont);
  165.         rosszBetukKiir();
  166.         printf(" _______\n");
  167.         printf(" |/\n");
  168.         printf(" |\n");
  169.         printf(" |\n");
  170.         printf(" |\n");
  171.         printf(" |\n");
  172.         printf("_|_________\n\n");
  173.         printf("\nA szó:\n%s\n", userSzo);
  174.         break;
  175.         case 4 :
  176.         printf("Hibás karakterek: %d\n\n", hibaPont);
  177.         rosszBetukKiir();
  178.         printf(" _______\n");
  179.         printf(" |/ | \n");
  180.         printf(" |  O \n");
  181.         printf(" |\n");
  182.         printf(" |\n");
  183.         printf(" |\n");
  184.         printf("_|_________\n\n");
  185.         printf("\nA szó:\n%s\n", userSzo);
  186.         break;
  187.         case 5 :
  188.         printf("Hibás karakterek: %d\n\n", hibaPont);
  189.         rosszBetukKiir();
  190.         printf(" _______\n");
  191.         printf(" |/ | \n");
  192.         printf(" |  O \n");
  193.         printf(" |  |\n");
  194.         printf(" |  |\n");
  195.         printf(" |\n");
  196.         printf("_|_________\n\n");
  197.         printf("\nA szó:\n%s\n", userSzo);
  198.         break;
  199.         case 6 :
  200.         printf("Hibás karakterek: %d\n\n", hibaPont);
  201.         rosszBetukKiir();
  202.         printf(" _______\n");
  203.         printf(" |/ | \n");
  204.         printf(" |  O \n");
  205.         printf(" | \\|\n");
  206.         printf(" |  | \n");
  207.         printf(" |\n");
  208.         printf("_|_________\n\n");
  209.         printf("\nA szó:\n%s\n", userSzo);
  210.         break;
  211.         case 7 :
  212.         printf("Hibás karakterek: %d\n\n", hibaPont);
  213.         rosszBetukKiir();
  214.         printf(" _______\n");
  215.         printf(" |/ | \n");
  216.         printf(" |  O \n");
  217.         printf(" | \\|/\n");
  218.         printf(" |  | \n");
  219.         printf(" |\n");
  220.         printf("_|_________\n\n");
  221.         printf("\nA szó:\n%s\n", userSzo);
  222.         break;
  223.         case 8 :
  224.         printf("Hibás karakterek: %d\n\n", hibaPont);
  225.         rosszBetukKiir();
  226.         printf(" _______\n");
  227.         printf(" |/ | \n");
  228.         printf(" |  O \n");
  229.         printf(" | \\|/\n");
  230.         printf(" |  | \n");
  231.         printf(" | /\n");
  232.         printf("_|_________\n\n");
  233.         printf("\nA szó:\n%s\n", userSzo);
  234.         break;
  235.         case 9 :
  236.         printf("Hibás karakterek: %d\n\n", hibaPont);
  237.         rosszBetukKiir();
  238.         printf(" _______\n");
  239.         printf(" |/ | \n");
  240.         printf(" |  O \n");
  241.         printf(" | \\|/\n");
  242.         printf(" |  | \n");
  243.         printf(" | / \\\n");
  244.         printf("_|_________\n\n");
  245.         printf("\nA szó:\n%s\n", userSzo);
  246.         break;
  247.         case 10 :
  248.         printf("Hibás karakterek: %d\n\n", hibaPont);
  249.         rosszBetukKiir();
  250.         printf(" _______\n");
  251.         printf(" |/ | \n");
  252.         printf(" |  X \n");
  253.         printf(" | \\|/\n");
  254.         printf(" |  | \n");
  255.         printf(" | / \\\n");
  256.         printf("_|_________\n\n");
  257.         printf("\nA szó:\n%s\n", userSzo);
  258.         break;
  259.     }
  260. }
  261.  
  262.  
  263.  
  264.  
  265. int main (){
  266.     clearScreen(); 
  267.     rosszBetuk[0]=0;
  268.     //Bekérés, hogy mi legyen a forrás
  269.     printf("Üdvözöllek az akasztófában!\n");
  270.     printf("Kérlek add meg a kívánt forrást!\n");
  271.     printf("(1)\tMagam írok be szót.\n");
  272.     printf("(2)\tA szavak.txt szókészletét használom.\n");
  273.     char forras;
  274.     scanf("%c", &forras);
  275.     while (forras != '1' && forras != '2'){
  276.         scanf ("%c", &forras);
  277.         clearScreen();
  278.         printf("Hibás adatbevitel! Kérlek add meg újra a kívánt forrást!\n");
  279.         printf("(1)\tMagam írok be szót.\n");
  280.         printf("(2)\tA szavak.txt szókészletét használom.\n");
  281.     }
  282.     switch (forras) {
  283.         case '1':
  284.             clearScreen();
  285.             printf("Add meg a szót!\n");
  286.             scanf("%s", szo);
  287.             //gets(szo);
  288.             printf("%s\n", szo);
  289.             szoEllenorzes();
  290.             clearScreen();
  291.             break;
  292.         case '2':
  293.             //MEGÍRNI A TXT KEZELŐSET
  294.             break; 
  295.         }
  296.     //Feltölti _-okkal az userSzot.
  297.     int l;
  298.     for (l=0;l<strlen(szo);l++){
  299.         userSzo[l]='_';
  300.     }
  301.     //Játék kezdete
  302.     while (hibaPont < 11){
  303.         clearScreen();     
  304.         akasztofaRajzol();
  305.         printf("Add meg a következő betűt!\n");
  306.         scanf("%c", &bekertChar);
  307.         betuEllenorzes();
  308.         benneVane();
  309.  
  310.     }
  311.     //MEGÍRNI A GAME OVERT
  312.     return 0;
  313. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement