 				ch->next->prev = ch;
                         	chld = ch->next;
 			}
+			chld->min_max = !chld->parent->min_max;
 			chld->how_much_children = 0;
 			chld->next = chld->children = NULL;
 			if (chprev != NULL)
-				copy_board(chprev, chld);
+				copy_board(chprev->board, chld);
 			else
-				copy_board(chld->parent, chld);
+				copy_board(chld->parent->board, chld);
 			chld->parent->how_much_children++;
 			chld->value = rand++;
                         chld->board[x1*8+y1] = chld->board[x*8+y];
                         chld->board[x*8+y] = EMPTY;
 			if (iskillsomethingnow)
-                        chld->board[(x+x1)/2*8+(y+y1)/2] = EMPTY;
+                            chld->board[(x+x1)/2*8+(y+y1)/2] = EMPTY;
 			ch = chld;
-			chld_now = ch;
 			nxt = true;
+			create_queen(chld->board, x1, y1);
 //			printf("%d, %d -> %d, %d\n", x, y, x1, y1);
-			/*
 			if (iskillsomethingnow){
+				int pm;
 				if (ch->board[x1*8+y1] == WHITE){
-		                	ch = pawn(ch, x1, y1, x1-2, y1-2, nxt, chld_now, rand, true);
-        		        	ch = pawn(ch, x1, y1, x1-2, y1+2, nxt, chld_now, rand, true);
+					pm = -2;
 				} else {
-		        	        ch = pawn(ch, x1, y1, x1+2, y1-2, nxt, chld_now, rand, true);
-  		                	ch = pawn(ch, x1, y1, x1+2, y1+2, nxt, chld_now, rand, true);
+					pm = 2;
 				}
-			}
-			*/
+				next_kill * first, * last, * temp;
+				last = first = create_next_move(x1, y1, ch->board, x1+pm, y1+2);
+				last->next = create_next_move(x1, y1, ch->board, x1+pm, y1-2);
+				last = last->next;
+				while (first != NULL){
+					ch = again(ch, first, last, pm);
+					temp = first;
+					first = first->next;
+					delete temp;
+				}
+			}
 		}
 		return ch;
 	}

			tab = ch->parent->board;
		if (is_move_correct(tab, x, y, pawn_owner(tab, x, y), x1, y1) == true){
//			printf("correct ");
			checkers_point * chld, * chld_now;
                        if (!nxt){
//				printf("chld ");
                                ch->children = new checkers_point;

    int alpha;
    int beta;
    int player;
};

struct next_kill{
    int t[4];
    next_kill * next;
    int * parent_tab;
};

class Queue{
