-(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; } } }
Source: https://habr.com/ru/post/182980/
All Articles