src/puzzle.cpp
/* dpnshort is pecial for level 4 (nested dynamic)
   in that level, derived weak link have to be considered 
     for the remaining valid candidates of the set

*/
dpnshort is pecial for level 4 (nested dynamic)
in that level, derived weak link have to be considered
for the remaining valid candidates of the set
dpnshort is pecial for level 4 ( nested dynamic ) in that level derived weak link have to be considered for the remaining valid candidates of the set
void PUZZLE::Gen_dpnShort(USHORT tag) { 
	dpn.Init(); 
	BFTAG * tdp = hdp_base_nested.t;
	USHORT tagc = tag;
	if(tagc & 1) tagc ^= 1;
	for(int j = 2; j < col; j++) {
		if(j == tagc)
			continue; 
		if(allsteps.On(j))
			continue; 
		if(allsteps.On(j ^ 1))
			continue;  as well (to check)
		dpn.t[j] = tdp[j];
		if(rbase>100) 
			dpn.t[j] |= dpn_old.t[j];
		dpn.t[j] -= allsteps; 
	}
	if(rbase>100){  
        zcx.DeriveDynamicShort(allsteps,dpn,dn);
        zcx.DeriveDynamicShort(allsteps,dpn,dn);
		dpn_old=dpn;
 	}
	dn.ExpandAll(*this, dpn);
	if(0) {  
		Image(allsteps,"allsteps",0);
		EE.Enl("image dpn de dpnshort");
		Image(dpn);
		EE.Enl("image dp de dpshort");
		Image(dpn);
	}
}
void PUZZLE :: Gen_dpnShort ( USHORT tag ) { dpn . Init ( ) ; BFTAG * tdp = hdp_base_nested . t ; USHORT tagc = tag ; if ( tagc & 1 ) tagc ^= 1 ; for ( int j = 2 ; j < col ; j ++ ) { if ( j == tagc ) continue ; if ( allsteps . On ( j ) ) continue ; if ( allsteps . On ( j ^ 1 ) ) continue ; dpn . t [ j ] = tdp [ j ] ; if ( rbase > 100 ) dpn . t [ j ] |= dpn_old . t [ j ] ; dpn . t [ j ] -= allsteps ; } if ( rbase > 100 ) { zcx . DeriveDynamicShort ( allsteps , dpn , dn ) ; zcx . DeriveDynamicShort ( allsteps , dpn , dn ) ; dpn_old = dpn ; } dn . ExpandAll ( * this , dpn ) ; if ( 0 ) { Image ( allsteps , " " , 0 ) ; EE . Enl ( " " ) ; Image ( dpn ) ; EE . Enl ( " " ) ; Image ( dpn ) ; } }
dpnshort is pecial for level 4 (nested dynamic)
in that level, derived weak link have to be considered
for the remaining valid candidates of the set
dpnshort is pecial for level 4 ( nested dynamic ) in that level derived weak link have to be considered for the remaining valid candidates of the set
// create the reduced set of tags check tagelim empty  // don't process the start point // that tag is defined // that tag is defined as well (to check) // reduce the primary weak links //level 4 must find  derived weak links // this must be a specific process working on reduced sets; // only one step of derivation is made  // dn.ExpandAll(*this, dpn); // done in derive // do it twice // dn.ExpandAll(*this, dpn); same