Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private Collection<char[]> getDomainValues(int cols, int row,int start_pos) {
- List<char[]> vals=new LinkedList();
- char[] basic=new char[cols];
- int pos=start_pos;
- for(int j=0;j<pos;j++){
- basic[j]='_';
- }
- for(Pair p:unary.rows[row].pairs){
- for(int j=pos;j<pos+p.count;j++){
- if(j>=cols){
- return vals;
- }
- basic[j]=p.color;
- }
- pos+=p.count;
- }
- for(int j=pos;j<cols;j++){
- basic[j]='_';
- }
- vals.add(basic);
- vals.addAll(getDomainValues(cols,row,start_pos+1));
- vals.addAll(getVariants(basic,row,start_pos));
- return vals;
- }
- private Collection<char[]> getVariants(char[] basic,int row,int start_pos) {
- List<char[]> vals=new LinkedList();
- for(Pair p:unary.rows[row].pairs){
- boolean add=true;
- char prev=basic[start_pos+unary.rows[row].pairs.get(0).count-1];
- for(int j=start_pos+unary.rows[row].pairs.get(0).count;j<cols;j++){
- char pom=basic[j];
- if(pom!='_' && j+1>=cols){
- add=false;
- break;
- }
- basic[j]=prev;
- prev=pom;
- }
- if(add){
- vals.add(basic);
- vals.addAll(getVariants(basic,row,start_pos));
- }
- }
- return vals;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement