Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Enemy::Move(PCHARACTER A, DungeonC* D, bool& cond, bool& win)
- {
- Trap* trap = new Trap;
- Treasure* treasure = new Treasure;
- Player* player = new Player;
- char cell;
- if (D->ShowCell(Offset(X-1,Y,D->rWidth())) == player->rPeg())
- {
- win = cond = false;
- D->AddPeg(this,X-1,Y);
- D->RemovePeg(X,Y);
- delete trap;
- delete treasure;
- delete player;
- return;
- }
- if (D->ShowCell(Offset(X+1,Y,D->rWidth())) == player->rPeg())
- {
- win = cond = false;
- D->AddPeg(this,X+1,Y);
- D->RemovePeg(X,Y);
- delete trap;
- delete treasure;
- delete player;
- return;
- }
- if ( D->ShowCell(Offset(X,Y+1,D->rWidth())) == player->rPeg())
- {
- win = cond = false;
- D->AddPeg(this,X,Y+1);
- D->RemovePeg(X,Y);
- delete trap;
- delete treasure;
- delete player;
- return;
- }
- if (D->ShowCell(Offset(X,Y-1,D->rWidth())) == player->rPeg())
- {
- win = cond = false;
- D->AddPeg(this,X,Y-1);
- D->RemovePeg(X,Y);
- delete trap;
- delete treasure;
- delete player;
- return;
- }
- int Xdif, Ydif;
- Xdif = A->GetX() - X;
- Ydif = A->GetY()-Y;
- int Diff = Xdif-Ydif;
- if (Diff == 0)
- {
- if (rand()%2)
- Diff -= 1;
- else
- Diff += 1;
- }
- if ((A->GetX() < X) && Diff > 0)
- {
- cell = D->ShowCell(Offset(X-1,Y,D->rWidth()));
- if (cell == player->rPeg())
- {
- cond = false;
- win = false;
- }
- if (cell != trap->rPeg() && cell != treasure->rPeg())
- {
- D->AddPeg(this,X-1,Y);
- D->RemovePeg(X,Y);
- X -= 1;
- }
- }
- else if ((A->GetX() < Y) && Diff < 0)
- {
- cell = D->ShowCell(Offset(X,Y-1,D->rWidth()));
- if (cell != trap->rPeg() && cell != treasure->rPeg())
- {
- D->AddPeg(this,X,Y-1);
- D->RemovePeg(X,Y);
- Y -= 1;
- }
- }
- else if ((A->GetX() > X) && Diff > 0)
- {
- cell = D->ShowCell(Offset(X+1,Y,D->rWidth()));
- if (cell != trap->rPeg() && cell != treasure->rPeg())
- {
- D->AddPeg(this,X+1,Y);
- D->RemovePeg(X,Y);
- X += 1;
- }
- }
- else if ((A->GetX() > Y) && Diff < 0)
- {
- cell = D->ShowCell(Offset(X,Y+1,D->rWidth()));
- if (cell != trap->rPeg() && cell != treasure->rPeg())
- {
- D->AddPeg(this,X,Y+1);
- D->RemovePeg(X,Y);
- Y += 1;
- }
- }
- delete trap;
- delete treasure;
- delete player;
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment