Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <time.h>
- #define velikostPole 8000000
- /* slovnik bude vypadat takto:
- pes;pritel cloveka
- slunce;nejblizsi hvezda
- sobota;den odpocinku
- skola;vzdelavaci instituce
- leto;nejteplesi rocni obdobi
- strom;rostlina s pevnym kmenem
- hlina;zemina
- parez;zbytek stromu po kaceni
- */
- char slovnik[velikostPole][100];
- char popisySlov[velikostPole][100];
- unsigned int mujRand(unsigned int rozsah) {
- return (rand() * rand()) % rozsah;
- }
- int main(int argc, char* argv[]) {
- FILE* vstup = stdin;
- FILE* vystup = fopen("krizovka.txt", "w");
- if (vystup == NULL) {
- printf("Nemohu otevrit soubor krizovka.txt\n");
- return 0;
- }
- if (argc > 1) {
- vstup = fopen(argv[1], "r");
- if (vstup == NULL) {
- printf("Nemohu otevrit soubor %s\n", argv[1]);
- return 0;
- }
- }
- else
- printf("Vlozte slova (konec=CTRL+Z): \n");
- char slovo[256], popis[256];
- int pocetSlov = 0;
- while (fscanf(vstup, "%255[^;];%255[^\n]%*c", slovo, popis) == 2 && pocetSlov < velikostPole) {
- slovo[255] = 0;
- strcpy(slovnik[pocetSlov], slovo);
- strcpy(popisySlov[pocetSlov], popis);
- pocetSlov++;
- }
- printf("Pocet nactenych slov = %d\n", pocetSlov);
- srand(time(NULL));
- do {
- int indexTajenky = mujRand(pocetSlov);
- char* tajenka = slovnik[indexTajenky];
- printf("Tajenka=%s\n", tajenka);
- int delkaTajenky = strlen(tajenka);
- for (int i = 0; i < delkaTajenky; i++) {
- char pismeno = tajenka[i];
- char* ukPozice;
- char* slovoTajenky;
- int indexSlova;
- do {
- indexSlova = mujRand(pocetSlov);
- slovoTajenky = slovnik[indexSlova];
- ukPozice = strchr(slovoTajenky, pismeno);
- } while (ukPozice == NULL);
- int pozicePismenaTajenky = ukPozice - slovoTajenky;
- for (int j = 0; j < 40 - pozicePismenaTajenky; j++) {
- putchar(' ');
- fputc(' ', vystup);
- }
- for (int j = 0; j < pozicePismenaTajenky; j++) {
- putchar(slovoTajenky[j]);
- fputc('.', vystup);
- }
- printf("|%c|%s : %s\n", pismeno, ukPozice + 1, popisySlov[indexSlova]);
- fprintf(vystup, "|.|");
- for (int j = pozicePismenaTajenky+1; j < strlen(slovoTajenky); j++)
- fputc('.', vystup);
- fprintf(vystup, " >> %s\n", popisySlov[indexSlova]);
- }
- fprintf(vystup, "Dalsi krizovka:\n\n");
- fflush(vystup);
- printf("Chces dalsi krizovku? (A)no - (N)=ne\n");
- char znak;
- do {
- znak = getchar();
- } while (znak != 'A' && znak != 'N');
- if (znak == 'N') break;
- } while (1);
- fclose(vystup);
- if (vstup!=stdin) fclose(vstup);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement