Skip to content

Instantly share code, notes, and snippets.

Created June 6, 2009 04:07
Show Gist options
  • Save anonymous/124684 to your computer and use it in GitHub Desktop.
Save anonymous/124684 to your computer and use it in GitHub Desktop.
void creatBoatStatusTree(Boat *boat){
//All status in a boat (0,1) (1,0) (1,1) (0,2) (2,0)
int ans=boat->getStatus(0) + boat->getStatus(1) + boat->getStatus(2);
if ( !boat->isSafe() || ans==0 ){
return ;
}
if(boat->getStatus(2)==1){
boat->next[0]= new Boat(boat->getStatus(0) ,boat->getStatus(1)-1 ,0);
boat->next[1]= new Boat(boat->getStatus(0)-1 ,boat->getStatus(1) ,0);
boat->next[2]= new Boat(boat->getStatus(0)-1 ,boat->getStatus(1)-1 ,0);
boat->next[3]= new Boat(boat->getStatus(0) ,boat->getStatus(1)-2 ,0);
boat->next[4]= new Boat(boat->getStatus(0)-2 ,boat->getStatus(1) ,0);
boat->next[0]->prev=boat;
boat->next[1]->prev=boat;
boat->next[2]->prev=boat;
boat->next[3]->prev=boat;
boat->next[4]->prev=boat;
}else{
boat->next[0]= new Boat(boat->getStatus(0) ,boat->getStatus(1)+1 ,1);
boat->next[1]= new Boat(boat->getStatus(0)+1 ,boat->getStatus(1) ,1);
boat->next[2]= new Boat(boat->getStatus(0)+1 ,boat->getStatus(1)+1 ,1);
boat->next[3]= new Boat(boat->getStatus(0) ,boat->getStatus(1)+2 ,1);
boat->next[4]= new Boat(boat->getStatus(0)+2 ,boat->getStatus(1) ,1);
boat->next[0]->prev=boat;
boat->next[1]->prev=boat;
boat->next[2]->prev=boat;
boat->next[3]->prev=boat;
boat->next[4]->prev=boat;
}
//這段... /*
creatBoatStatusTree(boat->next[0]);
creatBoatStatusTree(boat->next[1]);
creatBoatStatusTree(boat->next[2]);
creatBoatStatusTree(boat->next[3]);
creatBoatStatusTree(boat->next[4]);*/
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment