Örneğin açıklaması

Çığlık atmayın. Biliyorum büyük bir örnek. Fakat bazı önemli noktaları burada anlatmalıyım :-). Bu program sol, sağ, üst ve aşağı ok tuşlarıyla hareket eden dikdörtgen bir pencere oluşturur. Ardışıl olarak kullanıcının her tuşa basışında pencereyi yıkıp yeniden oluşturur. Ekran sınırlarının ötesine gitmeyin. Bu sınırların kontrol edilmesi okuyucuya bir örnek olarak bırakılmıştır. Şimdi satır satır inceleyelim.

create_newwin() işlevi newwin() ile yeni bir pencere oluşturur ve etrafına box() işlevi ile bir çerçeve çizer. destroy_win() işlevi ilk önce ' ' karakteri ile bir çerçeve oluşturarak pencereyi ekrandan siler ve daha sonra delwin()'i çağırarak onunla ilişkili belleği geri verir. Kullanıcının bastığı tuşa bağlı olarak, starty ve startx değişir ve yeni bir pencere oluşturulur.

destroy_win içerisinde gördüğünüz gibi, wborder yerine box işlevini kullandım. Nedeni açıklama satırlarında yazılı (Atladınız. Biliyorum. Kodu okuyun :-)). wborder, belirtilen 4 köşe ve 4 çizgi parametresiyle pencere etrafına bir çerçeve çizer. Daha açık hale getirmek için, eğer wborder'ı aşağıdaki şekilde çağırırsanız:

wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');

şöyle bir şey üretir:

  +------------+
  |            |
  |            |
  |            |
  |            |
  |            |
  |            |
  +------------+