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]