anchor.diff:        32 : begin
                with BShip do
                  if ammunition > 0 then begin
  -                 ammupos[posx] := max_y;
  +                 ammupos[posx] := max_y-5;
                    Dec(ammunition);
                  end;
                Shoot(BShip);
              end;
       end; 
  -    mvprintw(max_y, BShip.posx, 'O');
  -    refresh();
  +    { nettoyage la fenetre field }
  +    wclear(field);
  +    wclear(dashboard);
  +    drawBox(field);
  +    drawBox(dashboard);
  +    //mvwprintw(field, 1, 1, 'Field');
  +    mvwprintw(dashboard, 1, max_x div 2 , PChar(concat('| Ammo : ', IntToStr(BShip.ammunition))));
  +    // refresh each window
  +    wrefresh(field);
  +    wrefresh(dashboard);
  +    mvprintw(max_y-5, BShip.posx, 'O');
  +    refresh;
  +    if (BEnemy.nbr > 0) then begin
  +      randomize;
  +      BEnemy.enepos[random(max_x)+1] := 2;
  +      Dec(BEnemy.nbr);
  +    end;
       Shoot(BShip);
  -    Enemys(BEnemy);
  +    //Enemys(BEnemy);
       {un petit dodo pour 3 millisecondes}
  -    napms(3);
  +    napms(5);
     end;
     endwin();
   END.
  
positive.code:   initscr();
    noecho();
    curs_set(0);
    init(BShip);
    getmaxyx(stdscr, max_y, max_x);  {stdscr est la fenetre par default}
    { des petits problemes sous les terminal linux (XFCE et Gnome) 
      un decalage d'un pixel (ou c'est juste moi) a essayer sous windows}
    Dec(max_y); Dec(max_x);
    i := 0; k:=0;
    { la procedure permet de ne pas attendre l'utilisateur d'entrer une touche
      par contre elle retourne ERR si il n'entre rien}
    nodelay(stdscr, true);
    while True do begin
      Inc(i); Inc(k);
      clear();
      rk := getch();
      case rk  of 
        67 : BShip.posx :=newPos('L');
  
negative.code: (* Simple jeu réalise par Mohamed Aziz Knani 
   * Email : medazizknani@gmail.com
   * Blog  : http://mohamedazizknani.wordpress.com
   * Sorry for the spaghetti code :v
   *)
  
  program theGame; 
  uses ncurses,strings;
  {$H+}
  type
    Ship = record 
    posx       : integer;
    shape      : string;
    ammunition : integer;
    ammupos    : array [1..100] of byte; { contient la postion des missiles }
    end;
  
    Enemy = record
    shape : char;
    nbr   : integer;
    enepos : array[1..100] of byte; {contient la postion des ennemies}
    end;
  
  var
    max_y, max_x : integer; { les resolutions de la fenetre }
    BShip            : Ship;
    BEnemy           : Enemy;
    rk               : integer;
    i, k, new_x, new_y             : integer; { des compteurs pour ralentir }
    dashboard, field : Pwindow;
  
  function newPos(Posi : char) : integer;
  begin
    if (Posi = 'L')  and (3+BShip.posx <= max_x) then
      newPos := 1+BShip.posx
    else if (Posi = 'R') and (BShip.posx-2 >= 0) then
      newPos := BShip.posx-1
    else newPos := BShip.posx;
  end;
  