- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
#include <locale.h>
#include <string.h>
#include <ctype.h>
#define PL 300
#define X 35
#define Y 35
#define LN 15
#define MN 2
int main(void){
char *words[PL] = {
"гарпия","ястреб", "самоходка","снайпер","медведь","баркас","ельцин", "пушкин","рязанов","рузвельт","вагонетка","богатырь", "галстук","мебель","вождь","кобра","журналист", "валюта","кабель","реванш",
"фляжка","пирожок", "гайдай","люстра","соль","вантуз","дерево", "крантик","гитара","спилберг", "пижон","европа", "достоевский","самокрутка","адвокат","колыбель","калькулятор", "освальд","остановка","фикус",
"вавилен","мыщъх", "озборн","ильинский","пархоменко","связка","стекло", "крепеж","тайсон","мэйсон","николай","глушитель", "сапфир","служанка","стояк","пфайфер","градусник", "стамбул","маядзаки","эйзенхаур",
"али","колбаса", "яжевика","совок","число","кобель","ожог", "страница","ваучер","пафос", "самокат","хвостик", "дурында","пучков","дворкович","барабас","сурков", "шут","асфальт","токио",
"лепесток","удав", "выстрел","калибр","улов","копенгаген","осло", "калипсо","грунт","процент", "блоха","след", "пружина","монтажник","экран","боромир","оскар", "бобик","курасава","никсон",
"сталкер","ягодица", "глазок","шмель","геринг","монро","бондаренко", "стрела","носок","мачетэ","шпицберген","сталь", "монолит","случай","зуб","малохит","клубника", "золото","чехов","диск",
"форд","чубайс", "пелевин","юматов","молоток","демократия","сократ", "геродот","невзоров","сорокин","макконохи","быков", "штанга","гвоздь","весло","табурет","вопрос", "колдовство","обида","смерчь",
"блэкмор","тезка", "зубик","сноха","порше","тормоз","туше", " сигал","баярский","китано", "лунаход","гагарин", "синематограф","жим","электрика","веретино","шахматы", "кувшин","букварь","символ",
"башня","котенок", "револьвер","леннон","тигр","телефон","хамелеон", "матрас","зубр","техникс","леонов","коппола", "овчарка","ауди","сфинкс","матрос","ленин", "доберман","фролово","банан",
"самосвал","куба", "амстердам","клык","шпиль","мука","край", "чатский","бугур","паскаль","альпы","лодка", "транспорт","гиря","шпагат","боцман","мауддиб", "игра","крыло","окно",
"одежда","кольцо", "монитор","гриб","тетрис","человек","обезьяна", "шахматы","кинг","эллрой","кобейн","немезида", "ванна","волонтер","эхо","икота","пена", "звук","сьемка","отстойник",
"мачо","конверт", "снаряд","писатель","поисковик","бегун","бетон", "коллапс","пожарник","сигнал","балоболка","свекровь", "спойлер","запас","морковь","питбуль","кемерово", "загон","юпитер","вашингтон",
"труба","статуя", "дверь","агрегат","мачта","корень","волчара", "корова","маскит","радзинский","канада","челюсть", "сейлормун","ньютон","дзержинский","шестерня","валькирия", "компот","адам","матрица",
"бетховен","пудель", "деталь","коломбо","рахит","монголия","колба", "конфета","енот","груздь","наполеон","вертухай", "сковородка","гейша","мост","гриль","комедия", "кубрик","ганапольский","паук",
"скороход","крым", "ротшильд","гайдар","пешка","козырь","дерижабль", "магнезия","магнум","рогатка","гайка","штопор", "перевертыш","репортаж","москва","дзедун","меньшов", "пиксель","розетка","гарем",
};
srand(time(NULL));
setlocale( LC_ALL,"Russian" );
void write_vertical( int x , int y , char board[][Y] , char *content );
void write_horizantal( int x , int y ,char board[][Y] , char *content );
void(*write[ MN])( int x , int y ,char board[][Y] , char *content ) = {write_vertical,write_horizantal};
int search_cross_pnt(char cross_point[LN] , int *point ,char *content[PL] , int in_x , int in_y );
int checking_space_null (char board[][Y] , int mem ,int sh, int br );
int checking_space_one (char board[][Y] , int mem ,int sh, int br );
int (*chk_mask[ MN])(char board[][Y] , int mem ,int sh, int br ) = { checking_space_null , checking_space_one } ;
int search_cross_pnt(char cross_point[LN] , int *point ,char *content[PL] , int in_x , int in_y ) ;
int n_x = 2 , n_y = 3 ;
int kk = 0;
int first = first = 1 + rand() % 299 ;
int lng = strlen(words[first]) ;
char crossboard[X][Y] = {" "} ;
int removing_mask (int *x , int *y, int *lng , char board[][Y],
char *content[PL], int select, void (*write )( int x , int y ,char board[][Y],
char *content ),
int search_cross_pnt(char cross_point[LN] , int *point ,char *content[PL] , int in_x , int in_y) ,
int (*chk_mask )(char board[][Y] , int mem ,int sh, int br ) );
write_horizantal( n_x , n_y , crossboard , words[first] );
words[first] = " ";
for(removing_mask( &n_x , &n_y , &lng , crossboard , words , kk % MN , write[kk % MN] , search_cross_pnt , chk_mask[kk % MN] );
removing_mask( &n_x , &n_y , &lng , crossboard , words , kk % MN , write[kk % MN] , search_cross_pnt , chk_mask[kk % MN] ) ;
kk++
) ;
for( n_x = 0 ;n_x <= X - 1 ; n_x ++, puts(" ") ){
for(n_y = 0 ;n_y <= Y - 1 ; n_y++ ){
printf("%c " , crossboard[n_x ][n_y ] ) ;
}
}
return 0;
}