рдмрд┐рд▓реНрдмреЛ рдмреЗрдЧрд┐рдиреНрд╕ рдХреЗ рд▓реЗрдмрд┐рд░рд┐рдВрде



рд░реВрд╕реА рдореЗрдВ рдХреЛрдИ рднреА рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЬреНрдЮрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдПрдХ рдпрд╣реВрджреА рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реЛрдЧреАред
рдФрд░ рд╣реИрдмреЗ рдкрд░ рдХреЛрдИ рд▓реЗрдЦ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдИрдкреИрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд┐рд▓реМрдирд╛ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХрдерди рдХреЛ рд╕рд┐рджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкрд╣рд▓рд╛ рдкреНрд░рдХрд╛рд╢рди рд▓рд┐рдпрд╛, рдЬреЛ рд▓рд┐рдВрдХ ( рд▓рд┐рдВрдХ ) рдкрд░ рдЖрдпрд╛ рдФрд░ рдЙрд╕рдореЗрдВ рд╕реЗ рдПрдХ рдЖрд╡реЗрджрди рдХрд┐рдпрд╛ред
рдЙрддреНрдкрд╛рдж рдХреЛ рдРрдк рд╕реНрдЯреЛрд░ рдкрд░ рдЕрдкрд▓реЛрдб рдФрд░ рдЕрдиреБрдореЛрджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЬрдирддрд╛ рдХреЗ рд╕рд╛рдордиреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╣реИрдмрд░-рд╣рдмрд░ рдЕрджрд╛рд▓рдд, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдорд╛рдирд╡реАрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрджрд╛рд▓рддреЗрдВ рдорд╛рддреГрднреВрдорд┐ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдзрд┐рдХ рднрдпрд╛рдирдХ рдореЗрдВ рдЬрд╛рдиреА рдЬрд╛рддреА рд╣реИрдВред

рдПрд▓реЗрд░ рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо, рдкреНрд░рдХрд╛рд╢рди рдбреЗрдбреНрд░реЛрд▓рд┐рдХ рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред
рдПрдХ рд▓рд╛рдкрд░рд╡рд╛рд╣ рд╡реНрдпрдХреНрддрд┐ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд┐рдирд╛ рд╕реЛрдЪреЗ рд╕рдордЭреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░ рджрд┐рдпрд╛ рдФрд░ рднреВрд▓ рдЧрдпрд╛ред
рд▓реЗрдХрд┐рди рд╡реНрдпрд░реНрде рдореЗрдВред


рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдоред рдмреЗрд▓реЛрдорд▓рд┐рдВрд╕реНрдХреА рджреНрд╡рд╛рд░рд╛ рд╣реЙрдмрд┐рдЯ рдХреЛ рдЪрд┐рддреНрд░ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдЪреБрдирд╛ред
рдЕрдм рддрдХ рдХреЗ рд░рд╣рдорд╛рдиреЛрд╡рд╛ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдореЗрд░реА рдкрд╕рдВрджреАрджрд╛ рдкреБрд╕реНрддрдХред

рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЗ рд╕рднреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдПрдХ рдкреБрд░рд╛рдиреА рдЪрд╛рд▓ рдХреЛ рдЦреЗрд▓ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЕрдЧрд▓реЗ рджреМрд░ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ, рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдореЗрдВ 90, 180 рдпрд╛ 270 рдбрд┐рдЧреНрд░реА рддрдХ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдШреВрдорддрд╛ рд╣реИред
рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛ рдХрд╛рд░реНрдп рдПрд▓рд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдореВрд▓ рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЛ рд╕реЛрдЪрдиреЗ рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред

рдиреАрдЪреЗ рдлрд╝рдВрдХреНрд╢рди рдкрд╛рда рд╣реИ, рд░рдВрдЧ [] рд╕рд░рдгреА 7 рдмрд╛рдп 7 рднреВрд▓рднреБрд▓реИрдпрд╛ рдХрд╛ рд╣рд╛рдЗрдкреЛрд╕реНрдЯреИрд╕рд┐рд╕ рд╣реИред
рдПрдХ рдмрдбрд╝рд╛ рдмреЙрдХреНрд╕ iPhone рдкрд░ рдЧреЗрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред

initBoard рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдХреНрд╕реНрдЯ
-(int) initBoard:(int) num { int row1_numb[16]; int row1_edge[16]; int row1_down[16]; int rw_e[256]; int rw_d[256]; num_x = 7; num_y = 7; num_xy = num_x*num_y; for (int i=0; i<num_x; i++) { row1_numb[i] = 0; row1_edge[i] = 0; row1_down[i] = 0; } for (int j=0; j<num_y; j++) { for (int i=0; i<num_x; i++) { rw_e[i+j*num_x] = 0; rw_d[i+j*num_x] = 0; } } for (int j=0; j<num_y; j++) { for (int i=0; i<num_x; i++) { if (row1_numb[i]==0) row1_numb[i] = i + 1; } for (int i=0; i<num_x-1; i++) { // int mm = arc4random()%10; int mm = [self microsoft_rand:10]; int k = (mm<7) ? 0 : 1; if (row1_numb[i]==row1_numb[i+1]) k = 1; if (k>0) { row1_edge[i] = 1; row1_numb[i+1] = row1_numb[i]; } } row1_edge[num_x-1] = 1; for (int i=0; i<num_x; i++) { // int mm = arc4random()%10; int mm = [self microsoft_rand:10]; int k = (mm<7) ? 0 : 1; row1_down[i] = (k>0) ? 1 : 0; } int r_open = 0; int i_start = 0; for (int i=0; i<num_x; i++) { int r1 = row1_edge[i]; i_start++; if (row1_down[i] == 0) r_open = 1; if(r1) { if (r_open==0) row1_down[i-i_start+1] = 0; r_open=0; i_start = 0; } } for (int i=0; i<num_x; i++) { rw_e[i+j*num_x] = row1_edge[i]; rw_d[i+j*num_x] = row1_down[i]; } for (int i=0; i<num_x; i++) { row1_edge[i] = 0; if ( row1_down[i] == 1) row1_numb[i] = 0; row1_down[i] = 0; } } int j = num_y-1; for (int i=0; i<num_x; i++) { rw_e[i+j*num_x] = (i==num_x-1) ? 1 : 0; rw_d[i+j*num_x] = 1; } for (int j=0; j<num_y; j++) { for (int i=0; i<num_x; i++) { int r1 = rw_e[i+j*num_x]; int r2 = rw_d[i+j*num_x]; int r3 = (i) ? rw_e[i - 1 +j*num_x] : 1; int r4 = (j) ? rw_d[i+(j-1)*num_x] : 1; int r = (1-r1) + (1-r2)*2 + (1-r3)*4 + (1-r4)*8; color[i+j*num_x] = r; } } } 




рдЖрд╡реЗрджрди рдЬрд▓реНрджреА рд╕реЗ рдирд┐рдХрд▓рд╛ред рдбрд┐рдЬрд╛рдЗрди, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ, рдмрд╣реБрдд рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рдкреВрдЫрдиреЗ рдореЗрдВ рдХрднреА рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ


рдпрд╣ рднрдпрд╛рдирдХ рд╣реИ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ, рдореИрдВрдиреЗ рдПрд▓рд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдврд╝рд╛ рдФрд░ рдЕрдкрдиреЗ рдкрд╛рда рдореЗрдВ 2 рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╛рдИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдЕрдВрдд рддрдХ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ (рдпрд╛ рд▓реЗрдЦрдХ рдиреЗ рдмрд╛рдж рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛) рдФрд░ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреА рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдмрдирд╛рдИ, рд╕рднреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдХреНрд╖реИрддрд┐рдЬ рдмрд╣рд╛рд╡ рдЦреАрдВрдЪрд╛ред
рдореИрдВ рднреА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╢рд░реНрдореАрд▓реА рдереАред
рд▓реЗрдХрд┐рди рд╡реНрдпрд░реНрде рдореЗрдВред рдХрднреА рдпрд╣ рдкреВрдЫрдиреЗ рдореЗрдВ рд╢рд░реНрдо рди рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред

рдФрд░ рджреВрд╕рд░реА рдЧрд▓рддреА - рдореЗрд░реЗ рдорд╛рдЬрд╝реЛрдВ рдХреЗ рдкрд╛рд╕ рд▓реВрдк рд╣реИрдВред рдЬреЛ рдХреЛрдИ рдмрдЧ рдвреВрдВрдврддрд╛ рд╣реИ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рд╕рдореНрдорд╛рди рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдзрдиреНрдпрд╡рд╛рдж рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдПрдХ рдорд┐рд╢реНрд░рд┐рдд рдФрд░ рд▓рдЧрднрдЧ (рдЕрдВрддрд┐рдо рдЧрд▓рдд рд╕реЗрд▓ рдЦреЛрдЬреЗрдВ) рдЕрд╕реЗрдВрдмрд▓ рдХрд┐рдП рдЧрдП рдорд╛рдЬрд╝ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рддреНрд░реБрдЯрд┐рдпреЛрдВ, рдЕрдлрд╕реЛрд╕, рд╕реНрдкрд╖реНрдЯ рд╣реИред

рдлрд┐рд░ рднреА, рдЦреЗрд▓рдирд╛ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдиреЗрдЯрд╡рд╛рдХ рдЧреЗрдо рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВред

рдЖрдк рдЕрдкрдиреЗ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдмреНрд▓реЙрдЧ рдкрд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдРрдк рдореБрдлреНрдд рд╣реИред
рдпрд╣рд╛рдВ рд▓рд┐рдВрдХ рдХрд░реЗрдВ ред
рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд░реЗрдЯрд┐рдВрдЧ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ ред
рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЕрдореЗрд░рд┐рдХреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЦреЗрд▓рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рдпрд╣ рдЦреЗрд▓ рд╕рдлрд▓рддрд╛ рдирд╣реАрдВ рд▓рд╛рдПрдЧрд╛ред рд╡рд┐рдЬреНрдЮрд╛рдкрди рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ рдбреЙрд▓рд░ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ред

рдирд┐рд╖реНрдХрд░реНрд╖


рдПрд▓реНрдЧреЛрд░рд┐рдердо рдкреНрд░рдХрд╛рд╢рди рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИрдВред
рдЕрдХреНрд╕рд░ рд╡реЗ рдЖрдкрдХреА рдЕрдкрдиреА рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред
рдЕрдзрд┐рдХ рдмрд╛рд░ рд▓рд┐рдЦреЗрдВред рдЕрдзрд┐рдХ рдмрд╛рд░ рдкрдврд╝реЗрдВред рдХрдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВред

Source: https://habr.com/ru/post/In182980/


All Articles