fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5. #include <ctype.h>
  6.  
  7. #define MAX_TRIES 6
  8.  
  9. // Lista de cuvinte pentru joc
  10. const char *cuvinte[] = {"calculator", "programare", "joc", "variabila", "functie", "algoritm", "structura"};
  11. int numar_cuvinte = sizeof(cuvinte) / sizeof(cuvinte[0]);
  12.  
  13. void afiseaza_progres(char *cuvant_ghicit, int lungime) {
  14. for (int i = 0; i < lungime; i++) {
  15. printf("%c ", cuvant_ghicit[i]);
  16. }
  17. printf("\n");
  18. }
  19.  
  20. int main() {
  21. // Inițializează generatorul de numere aleatorii
  22. srand(time(0));
  23. const char *cuvant_secret = cuvinte[rand() % numar_cuvinte]; // Alege un cuvânt aleatoriu
  24. int lungime = strlen(cuvant_secret);
  25.  
  26. char cuvant_ghicit[lungime + 1];
  27. for (int i = 0; i < lungime; i++) {
  28. cuvant_ghicit[i] = '_'; // Inițial, toate literele sunt neghicite
  29. }
  30. cuvant_ghicit[lungime] = '\0';
  31.  
  32. int incercari_ramase = MAX_TRIES;
  33. int litere_ramase = lungime;
  34. char litera;
  35. int gasit;
  36.  
  37. printf("Bine ai venit la jocul de Spânzurătoarea!\n");
  38. printf("Trebuie să ghicești cuvântul: ");
  39. afiseaza_progres(cuvant_ghicit, lungime);
  40. printf("Ai %d încercări.\n", MAX_TRIES);
  41.  
  42. // Buclează până când utilizatorul epuizează încercările sau ghicește cuvântul
  43. while (incercari_ramase > 0 && litere_ramase > 0) {
  44. gasit = 0;
  45. printf("Introdu o literă: ");
  46. scanf(" %c", &litera);
  47. litera = tolower(litera); // Convertește litera la minusculă pentru consistență
  48.  
  49. // Verifică dacă litera este în cuvânt
  50. for (int i = 0; i < lungime; i++) {
  51. if (cuvant_secret[i] == litera && cuvant_ghicit[i] == '_') {
  52. cuvant_ghicit[i] = litera;
  53. litere_ramase--;
  54. gasit = 1;
  55. }
  56. }
  57.  
  58. if (!gasit) {
  59. incercari_ramase--;
  60. printf("Litera nu este în cuvânt. Încercări rămase: %d\n", incercari_ramase);
  61. } else {
  62. printf("Ai ghicit o literă!\n");
  63. }
  64.  
  65. afiseaza_progres(cuvant_ghicit, lungime);
  66. }
  67.  
  68. // Afișează rezultatul final
  69. if (litere_ramase == 0) {
  70. printf("Felicitări! Ai ghicit cuvântul: %s\n", cuvant_secret);
  71. } else {
  72. printf("Ai pierdut! Cuvântul era: %s\n", cuvant_secret);
  73. }
  74.  
  75. return 0;
  76. }
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
Bine ai venit la jocul de Spânzurătoarea!
Trebuie să ghicești cuvântul: _ _ _ _ _ _ _ _ 
Ai 6 încercări.
Introdu o literă: Litera nu este în cuvânt. Încercări rămase: 5
_ _ _ _ _ _ _ _ 
Introdu o literă: Litera nu este în cuvânt. Încercări rămase: 4
_ _ _ _ _ _ _ _ 
Introdu o literă: Litera nu este în cuvânt. Încercări rămase: 3
_ _ _ _ _ _ _ _ 
Introdu o literă: Litera nu este în cuvânt. Încercări rămase: 2
_ _ _ _ _ _ _ _ 
Introdu o literă: Litera nu este în cuvânt. Încercări rămase: 1
_ _ _ _ _ _ _ _ 
Introdu o literă: Litera nu este în cuvânt. Încercări rămase: 0
_ _ _ _ _ _ _ _ 
Ai pierdut! Cuvântul era: algoritm