Advertisement
Guest User

Untitled

a guest
Mar 21st, 2013
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.55 KB | None | 0 0
  1. private Collection<char[]> getDomainValues(int cols, int row,int start_pos) {
  2.         List<char[]> vals=new LinkedList();
  3.        
  4.         char[] basic=new char[cols];
  5.         int pos=start_pos;
  6.         for(int j=0;j<pos;j++){
  7.             basic[j]='_';
  8.         }
  9.        
  10.         for(Pair p:unary.rows[row].pairs){
  11.             for(int j=pos;j<pos+p.count;j++){
  12.                 if(j>=cols){
  13.                     return vals;
  14.                 }
  15.                 basic[j]=p.color;                
  16.             }
  17.             pos+=p.count;
  18.         }
  19.         for(int j=pos;j<cols;j++){
  20.             basic[j]='_';
  21.         }
  22.        
  23.         vals.add(basic);
  24.         vals.addAll(getDomainValues(cols,row,start_pos+1));
  25.        
  26.         vals.addAll(getVariants(basic,row,start_pos));
  27.        
  28.         return vals;
  29.     }
  30.  
  31.     private Collection<char[]> getVariants(char[] basic,int row,int start_pos) {
  32.         List<char[]> vals=new LinkedList();
  33.        
  34.         for(Pair p:unary.rows[row].pairs){
  35.             boolean add=true;
  36.             char prev=basic[start_pos+unary.rows[row].pairs.get(0).count-1];
  37.             for(int j=start_pos+unary.rows[row].pairs.get(0).count;j<cols;j++){
  38.                 char pom=basic[j];
  39.                 if(pom!='_' && j+1>=cols){
  40.                     add=false;
  41.                     break;
  42.                 }
  43.                 basic[j]=prev;
  44.                 prev=pom;
  45.             }
  46.             if(add){
  47.                 vals.add(basic);
  48.                 vals.addAll(getVariants(basic,row,start_pos));
  49.             }            
  50.         }
  51.        
  52.         return vals;
  53.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement