Quoting reyza <[EMAIL PROTECTED]>:

> wah....bener nih....library ncurses.h (curses.h) kayanya menarik
> banget....klo saya liat dari contoh....tapi sampai sekarang saya belum
> bisa menggunakannya ... sudah man ncurses tuh...tapi saya masih lambat
> menerima ... maklum saya learning by ex. ... kira2 ada program kecil
> yang
> menggunakan library tsb ngga?
Seberapa kecil ? kecil kan relatif .. :)
Ini aku kasih program 'kecil' yang aku bikin. Program ini cuman menampilkan
gambar kotak-kotak di layar, terus user bisa menggerakkan panah, kemudian
menekan enter, setelah itu program selesai.
Kalau misalnya anda menggunakan linuxnya lewat microsoft telnet atau program
window base lainnya, jangan lupa set fontnya ke terminal, soalnya aku pake
character2 tertentu yang cuma ada di font terminal, misalnya untuk bikin kotak-
kotaknya.

Semoga bisa membantu.

--start of program--
/*
 * Last Update : March 2nd, 2001
 * Programmer : Hadi P.S.
 * Deskripsi :
 *   Program ini cuma nampilin kotak-kotak (square) ke layar, dan menghandle
 *   penekanan tombol-tombol panah dan Enter.
 *   Program ini nantinya akan digunakan sebagai modul untuk pembuatan
 *   program tictactoe (tapi ukuran kotaknya bukan 3X3)
 */

#include <stdio.h>
#include <curses.h>

#define SIZE 11
#define EMPTYCHAR ' '
#define FIRSTCHAR 'X'
#define SECONDCHAR 'O'

char scanKey();
void initSquare();
void printSquare();

char square[SIZE][SIZE];
char xi=0, yi=0;

int main(){
        //initialize window using ncurse library
        initscr();     //inisialisasi window
        cbreak();      //input keyboard diambil tanpa menunggu ditekan enter
        noecho();      //input dari keyboard tidak ditampilkan di layar
        nonl();        //newline bisa dianggap sebagai input
        intrflush(stdscr, FALSE); //do not flush on interrupt signal
        keypad(stdscr, TRUE); //enable keypad

        initSquare();  //initialize square
        printSquare(); //draw square on window buffer

        scanKey();     //handle arrow and wait for 'enter' / CR input

        mvaddstr(2*SIZE+1, 0, "Press any key to continue .."); //write string 
to bottom of square
        refresh();     // copy window buffer to real monitor / show anything we 
wrote to monitor
        getch();       // wait for any key pressed

        endwin();      // end using window

        return 0;
}

void initSquare(){
        int i, j;
        for(i=0;i<SIZE;i++)
                for(j=0;j<SIZE;j++){
                        if(i%2)
                                if(j%2)
                                        square[i][j] = SECONDCHAR;              
                else
                                        square[i][j] = FIRSTCHAR;
                        else
                                if(j%2)
                                        square[i][j] = FIRSTCHAR;
                                else
                                        square[i][j] = SECONDCHAR;
                }
}

void printSquare(){
        int i, j;
        
        // print square, using extended ASCII CODE
        addch(ACS_ULCORNER);
        addch(ACS_HLINE);
        addch(ACS_HLINE);
        addch(ACS_HLINE);
        for(j=1;j<SIZE;j++){
                addch(ACS_TTEE);
                addch(ACS_HLINE);
                addch(ACS_HLINE);
                addch(ACS_HLINE);
        }
        addch(ACS_URCORNER);
        addch((long)'\n');

        for(j=0;j<SIZE;j++){
                addch(ACS_VLINE);
                addch((long)' ');
                addch((long)square[0][j]);
                addch((long)' ');
        }
        addch(ACS_VLINE);
        addch((long)'\n');

        for(i=1;i<SIZE;i++){
                addch(ACS_LTEE);
                addch(ACS_HLINE);
                addch(ACS_HLINE);
                addch(ACS_HLINE);
                for(j=1;j<SIZE;j++){
                        addch(ACS_PLUS);
                        addch(ACS_HLINE);
                        addch(ACS_HLINE);
                        addch(ACS_HLINE);
                }
                addch(ACS_RTEE);
                addch((long)'\n');

                for(j=0;j<SIZE;j++){
                        addch(ACS_VLINE);
                        addch((long)' ');
                        addch((long)square[i][j]);
                        addch((long)' ');
                }
                addch(ACS_VLINE);
                addch((long)'\n');
        }

        addch(ACS_LLCORNER);
        addch(ACS_HLINE);
        addch(ACS_HLINE);
        addch(ACS_HLINE);
        for(i=1;i<SIZE;i++){
                addch(ACS_BTEE);
                addch(ACS_HLINE);
                addch(ACS_HLINE);
                addch(ACS_HLINE);
        }
        addch(ACS_LRCORNER);
        addch((long)'\n');

}

char scanKey(){
        int key, flag=0;

        move(xi*2+1, 2+4*yi);
        refresh();

        do{
                key = getch();
                switch(key){
                        case KEY_DOWN:
                                if(xi < SIZE-1)
                                        move(++xi*2+1, yi*4+2);
                                break;
                        case KEY_UP:
                                if(xi > 0)
                                        move(--xi*2+1, yi*4+2);
                                break;
                        case KEY_RIGHT:
                                if(yi < SIZE-1)
                                        move(xi*2+1, ++yi*4+2);
                                break;
                        case KEY_LEFT:
                                if(yi > 0)
                                        move(xi*2+1, --yi*4+2);
                                break;
                        case '\n':
                        case '\r':
                                flag=1;
                                break;
                        default:
                                break;
                }
                refresh();
        }while(!flag);

        return (char)key;
}

--end of program--

> terima kasih
sama-sama.

Hadi PS
[EMAIL PROTECTED]
--
Visit Ukhuwah.or.id at http://www.ukhuwah.or.id
The Coolest Islamic Portal in Indonesia

--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]

Kirim email ke