public void move_to_top() {
         if (!cards_selected()) {
            error(); return;
         }
         
         Card from_last = row[sel_row].getLast();
         if (from_last.num == 1) {
            for (int a = 0; a<8; a++) {
               if (home[a].isEmpty()) {
                  for (int b = sel_cnt; b>0; b--)
                     home[a].add(row[sel_row].pickLast());
                  check_finished();
                  unselect_and_draw();
                  return;
               }
            }
            error(); return;
         }
         for (int a = 0; a<8; a++) {
            if (!home[a].isEmpty() &&
                home[a].getLast().inc == from_last) {
               for (int b = sel_cnt; b>0; b--)
                  home[a].add(row[sel_row].pickLast());
               check_finished();
               unselect_and_draw();
               return;
            }
         }
         error(); return;
      }