Shop Mobile More Submit  Join Login
About Varied / Student blackwildFemale/Poland Recent Activity
Deviant for 9 Years
Needs Core Membership
Statistics 34 Deviations 1,980 Comments 22,866 Pageviews
×

Newest Deviations

deformation of cube :iconblackwild:blackwild 2 0 Ratusz 2 :iconblackwild:blackwild 4 0 Untitled :iconblackwild:blackwild 2 0 park jordana :iconblackwild:blackwild 5 0 sth weird :iconblackwild:blackwild 4 0 Rasta :iconblackwild:blackwild 4 5 Origami vase with ear ver II :iconblackwild:blackwild 4 10 Origami vase with ear :iconblackwild:blackwild 18 23 origami :iconblackwild:blackwild 4 4 Czajniczek :iconblackwild:blackwild 6 7 Glass :iconblackwild:blackwild 7 10 Town Hall in Zamosc :iconblackwild:blackwild 7 1 The Parrot :iconblackwild:blackwild 17 12 Ukladanka :iconblackwild:blackwild 5 10 Bird :iconblackwild:blackwild 25 18 Agito :iconblackwild:blackwild 12 23

Activity


  • Listening to: When The Wild Wind Blows
  • Reading: Walter Moers
  • Watching: Supernatural
#include <stdio.h>
#include <string.h>

// Zadanie 1

int starts_with(char *str1, char *str2) {
  int pozdro;
  if (strncmp(str1, str2, strlen (str2))==0) {
    pozdro=1;
    } else {
    pozdro=0;
    }
  return pozdro;
}

// Zadanie 2
void words_with_a(char *str) {
   char *poz;       
   poz = strtok(str, " "); // dzieli łańcuch na fragmenty oddzielone spacją

   while (poz!=NULL) {
    if (strchr(poz, 'a')!=NULL) { // jeśli wystąpi choć jedna litera "a" w łańcuchu-słowie
        printf ("%s\n", poz);
    }
   poz = strtok(NULL, " ");
   }
}

// Zadanie 3
int guess(char *secret, char *state, char *answer) {
  /* Uzupełnij tutaj:
     1. Sprawdź, czy słowo 'secret' zaczyna się od napisu 'answer'.
     2. Jeżeli tak, zaktualizuj stan gry ('state'), wpisując do niego znaki z 'answer'.
     3. Zwróć 0 lub 1 w zależności od tego, czy odgadnięto całe słowo.
  */

  int zmienna;
  if (starts_with(secret,answer)) memcpy(state,answer,strlen(answer));
  if (strcmp(answer,secret)==0) zmienna=1;
  return zmienna;
}

// Zadanie 4
void game(char *secret) {
  char state[100], answer[100]; // stan gry, wczytywana odpowiedź
  int finished = 0; // zmienna oznaczająca koniec gry
  memset(state, '?', strlen(secret)); // inicjowanie stanu gry pytajnikami
  state[strlen(secret)] = '\0';

  printf("Stan początkowy: %s\n", state);

  do {
    printf("Podaj słowo\n");
    fgets(answer, 100, stdin); // wczytuje linię tekstu
    answer[strlen(answer)-1] = '\0';

    /* Uzupełnij tutaj:
     * 1. Wypisz odpowiedź użytkownika.
     * 2. Wywołaj funkcję 'guess' i zaktualizuj zmienną 'finished'.
     * 3. Wypisz nowy stan gry.
     */

    
    finished = guess(secret, state, answer);
    printf("Guess='%d'.\n",guess(secret, state, answer));
    printf("Stan gry: '%s', zgaduję '%s'...\n", state, answer);
  } while (finished!=1);
 
 puts("Odgadłeś całe słowo, brawo!!");
}

/*
 * Poniżej znajdują się testy - nie należy ich modyfikować.
 */

void test_starts_with() {
  char *results[] = {"nie zaczyna się od", "zaczyna się od"};
  char *word = "deliberacja";
  char *de = "de", *li = "li";
  printf("Łańcuch '%s' %s '%s'\n", word, results[starts_with(word, de)], de);
  printf("Łańcuch '%s' %s '%s'\n", word, results[starts_with(word, li)], li);
}

void test_words_with_a() {
  char sentence[] = "ala ma kota i zielony rower oraz psa";
  printf("Szukam wyrazów zwierających 'a' w zdaniu: '%s'\n", sentence);
  words_with_a(sentence);
}

void test_guess() {
  char *secret = "sekret", state[] = "se????";
  char *finished_texts[] = {"gra trwa", "koniec gry"};
  int finished = 0;
  printf("Stan gry: '%s', zgaduję 'ser'...\n", state);
  finished = guess(secret, state, "ser");
  printf("Stan gry: '%s', zgaduję 'sekr'...\n", state);
  finished = guess(secret, state, "sekr");
  printf("Stan gry: '%s', %s, zgaduję 'sekret'...\n", state, finished_texts[finished]);
  finished = guess(secret, state, "sekret");
  printf("Stan gry: '%s', %s\n", state, finished_texts[finished]);
}

void test_game() {
  game("kolokwium");
}

int main(int argc, char *argv[]) {
  if (argc < 2) {
    printf("Nie podano argumentów.\n");
    printf("Sposób użycia: %s <nr. zadania>\n", *argv);
    printf("    <nr. zadania> to 1, 2, 3 lub 4.\n");

    return 1;
  }

  switch (argv[1][0]) {
  case '1':
    test_starts_with();
    break;
  case '2':
    test_words_with_a();
    break;
  case '3':
    test_guess();
    break;
  case '4':
    test_game();
    break;
  default:
    printf("Błędny numer zadania.\n");
    return 1;
  }

  return 0;
}

Comments


Add a Comment:
 
Hidden by Owner
Hidden by Owner
Hidden by Owner
Add a Comment: