⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 screen.c

📁 我搜集到的一个java常用类库的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include "curses.h"#include <stdlib.h>#include <string.h>#include <signal.h>#include <sys/time.h>#include "mjdef.h"#include "qkmj.h"  set_color(fore,back)int fore;int back;{  char msg_buf[80];  wrefresh(stdscr);  if(color)  {    fprintf(stdout,"[%d;%dm",fore,back);    fflush(stdout);/*    sprintf(msg_buf,"[%d;%dm",fore,back);    waddstr(stdscr,msg_buf);*/  }}set_mode(mode)int mode;{  char msg_buf[80];  wrefresh(stdscr);  if(color)  {    printf("[%dm",mode);    fflush(stdout);/*    sprintf(msg_buf,"\033%dm",mode);    waddstr(stdscr,msg_buf);*/  }}mvprintstr(win,y,x,msg)WINDOW *win;int y;int x;char *msg;{  wmove(win,y,x);  printstr(win,msg); }printstr(win,str)WINDOW *win;char *str;{  int i,len;  len=strlen(str);  for(i=0;i<len;i++)    printch(win,str[i]);}printch(win,ch)WINDOW *win;char ch;{  char msg[3];    msg[0]=ch;    msg[1]='\0';    waddstr(win,msg);}  mvprintch(win,y,x,ch)WINDOW *win;int y,x;char ch;{  wmove(win,y,x);  printch(win,ch);}clear_screen_area (ymin, xmin, height, width)int ymin, xmin, height, width;{	int i;  char line_buf[255];  for (i = 0; i < width; i++) line_buf[i] = ' ';	line_buf[width] = '\0';  for (i = 0; i < height; i++)    wmvaddstr (stdscr,ymin+i, xmin, line_buf);  wrefresh(stdscr);}clear_input_line(){  werase(inputwin);  talk_x=0;  wmove(inputwin,0,talk_x);  talk_buf_count=0;  talk_buf[0]='\0';  wrefresh(inputwin);}wait_a_key(msg)char *msg;{  int ch;  werase(inputwin);  wmvaddstr(inputwin,0,0,msg);  wrefresh(inputwin);  beep1();  do(ch=my_getch());  while(ch!=KEY_ENTER && ch!=ENTER);  werase(inputwin);  mvwaddstr(inputwin,0,0,talk_buf);  wrefresh(inputwin);}ask_question(question,answer,ans_len,type)char *question;char *answer;int ans_len;int type;{  werase(inputwin);  wmvaddstr(inputwin,0,0,question);  wrefresh(inputwin);  mvwgetstring(inputwin,0,strlen(question),ans_len,answer,type);  werase(inputwin);  wmvaddstr(inputwin,0,0,talk_buf);  wrefresh(inputwin);}draw_index(max_item)int max_item;{  int i;  /* normal();  */  for(i=1; i<max_item; i++)  {    wmvaddstr(stdscr,INDEX_Y,INDEX_X+(17-max_item+i)*2-2,menu_item[i]);  }  wmvaddstr(stdscr,INDEX_Y,INDEX_X+16*2+1,menu_item[max_item]);  return_cursor();}current_index(current)int current;{  wmove(stdscr,INDEX_Y, INDEX_X+current*2);  wrefresh(stdscr);}show_cardback(sit)char sit;{  int i;  switch((sit-my_sit+4)%4)  {    case 0:      break;    case 1:      for(i=0;i<pool[sit].num;i++)      {        show_card(40,INDEX_X1,INDEX_Y1-i,0);      }      break;    case 2:      for(i=0;i<pool[sit].num;i++)      {        show_card(30,INDEX_X2-i*2,INDEX_Y2,1);       }      break;    case 3:      for(i=0;i<pool[sit].num;i++)      {        show_card(40,INDEX_X3,INDEX_Y3+i,0);      }      break;  }  return_cursor();}show_allcard(sit)char sit;{  int i;    switch((sit-my_sit+4)%4)  {    case 0:      break;    case 1:      for(i=0;i<pool[sit].num;i++)      {        show_card(pool[sit].card[i],INDEX_X1,INDEX_Y1-(16-pool[sit].num+i),0);      }      break;    case 2:      for(i=0;i<pool[sit].num;i++)      {        show_card(pool[sit].card[i],INDEX_X2-(16-pool[sit].num+i)*2,INDEX_Y2,1);      }      break;    case 3:      for(i=0;i<pool[sit].num;i++)      {        show_card(pool[sit].card[i],INDEX_X3,INDEX_Y3+(16-pool[sit].num+i),0);      }      break;  }  return_cursor();}show_kang(sit)char sit;{  int i;  switch((sit-my_sit+4)%4)  {    case 0:      break;    case 1:      for(i=0;i<pool[sit].out_card_index;i++)        if(pool[sit].out_card[i][0]==11)  /* 暗杠 */        {          show_card(pool[sit].out_card[i][2],INDEX_X1,INDEX_Y1-i*3-1,0);        }      break;    case 2:      for(i=0;i<pool[sit].out_card_index;i++)        if(pool[sit].out_card[i][0]==11)        {          show_card(pool[sit].out_card[i][2],INDEX_X2-i*6-2,INDEX_Y2,1);        }      break;    case 3:      for(i=0;i<pool[sit].out_card_index;i++)        if(pool[sit].out_card[i][0]==11)        {          show_card(pool[sit].out_card[i][2],INDEX_X3,INDEX_Y3+i*3+1,0);        }      break;  }}       show_newcard(sit,type)char sit;char type;/*  type 1 : 摸牌  *//*  type 2 : 摸入  *//*  type 3 : 丢出  *//*  type 4 : 显示  */{  int i;  switch((sit-my_sit+4)%4)  {    case 0:      switch(type)      {        case 2:          show_card(current_card,INDEX_X,INDEX_Y+1,1);        case 4:          show_card(current_card,INDEX_X+16*2+1,INDEX_Y+1,1);          break;      }      break;    case 1:      switch(type)      {        case 1:/*          attron(A_BOLD);          show_card(10,INDEX_X1,INDEX_Y1-17,0);          attroff(A_BOLD);*/          break;        case 2:          show_card(40,INDEX_X1,INDEX_Y1-17,0);          break;        case 3:          show_card(20,INDEX_X1,INDEX_Y1-17,0);          break;        case 4:          show_card(current_card,INDEX_X1,INDEX_Y1-17,0);          break;      }      break;    case 2:      switch(type)      {        case 1:/*          attron(A_BOLD);          show_card(10,INDEX_X2-16*2-1,INDEX_Y2,1);          attroff(A_BOLD);*/          break;        case 2:          show_card(30,INDEX_X2-16*2-1,INDEX_Y2,1);          show_card(20,INDEX_X2-16*2-1,INDEX_Y2,1);          show_card(30,INDEX_X2-16*2-1,INDEX_Y2,1);          break;        case 3:          show_card(20,INDEX_X2-16*2-1,INDEX_Y2,1);          break;        case 4:          show_card(current_card,INDEX_X2-16*2-1,INDEX_Y2,1);          break;      }      break;    case 3:      switch(type)      {        case 1:/*          attron(A_BOLD);          show_card(10,INDEX_X3,INDEX_Y3+17,0);          attroff(A_BOLD);*/          break;        case 2:/* 为处理 color 的问题 */          show_card(40,INDEX_X3,INDEX_Y3+17,0);        /*  show_card(20,INDEX_X3,INDEX_Y3+17,0); */          show_card(40,INDEX_X3,INDEX_Y3+17,0);          break;        case 3:          show_card(20,INDEX_X3,INDEX_Y3+17,0);          break;        case 4:          show_card(current_card,INDEX_X3,INDEX_Y3+17,0);          break;      }      break;  }}      /* Show cards on the screen. *//* type   0: row             *//* type   1: column          */show_card(card,x,y,type)  char card;  int x;  int y;  int type;{  char card1[3];  char card2[3];    reset_cursor();  mvwaddstr(stdscr,y,x,"  ");   wrefresh(stdscr);  wmove(stdscr,y,x);if(card==30 || card==40)  set_color(32,40);if(card>=1 && card<=9){  set_mode(1);  set_color(31,40);}else if(card>=11 && card<=19){  set_mode(1);  set_color(32,40);}else if(card>=21 && card<=29){  set_mode(1);  set_color(36,40);}else if(card>=31 && card<=34){  set_mode(1);  set_color(33,40);}else if(card>=41 && card<=43){  set_mode(1);  set_color(35,40);}  if(type==1)  {    card1[0]=mj_item[card][0];    card1[1]=mj_item[card][1];    card1[2]=0;    card2[0]=mj_item[card][2];    card2[1]=mj_item[card][3];    card2[2]=0;    mvwaddstr(stdscr,y,x,card1);    mvwaddstr(stdscr,y+1,x,card2);  }  else    mvwaddstr(stdscr,y,x,mj_item[card]);wrefresh(stdscr);set_color(37,40);set_mode(0);}draw_title(){  int x,y;  for(y=0;y<24;y++)  {    mvprintstr(stdscr,y,0,"│");    mvprintstr(stdscr,y,76,"│");  }  mvprintstr(stdscr,22,0,"├");  for(x=2;x<=75;x+=2)  {   printstr(stdscr,"─");  }  mvprintstr(stdscr,22,76,"┤");  wmvaddstr(stdscr,23,2,"【对话】");  wrefresh(stdscr);}init_playing_screen(){  info.wind=1;  info.dealer=1;  info.cont_dealer=0;  talk_right=55;  inputwin=playing_win;  talk_x=0;  talk_y=0;  talk_buf_count=0;  talk_buf[0]='\0';  comment_right=55;  comment_up=19;  comment_bottom=22;  comment_y=19;  commentwin=newwin(comment_bottom-comment_up+1,comment_right-comment_left+1,                    comment_up,comment_left);  scrollok(commentwin,TRUE);  screen_mode=PLAYING_SCREEN_MODE;  draw_playing_screen();  wmove(inputwin,talk_y,talk_x);  wrefresh(inputwin);}init_global_screen(){  char msg_buf[255];  char ans_buf[255];  comment_left=comment_x=org_comment_x;  comment_right=72;  comment_up=0;  comment_bottom=21;  comment_y=org_comment_y;  talk_left=11;  talk_right=74;  talk_x=0;  talk_buf_count=0;  talk_buf[0]='\0';  screen_mode=GLOBAL_SCREEN_MODE;  commentwin=newwin(22,74,0,2);  scrollok(commentwin,TRUE);  inputwin=newwin(1,talk_right-talk_left,org_talk_y,talk_left);  draw_global_screen();  input_mode=TALK_MODE;  talk_left=11;  inputwin=global_win;  wmvaddstr(stdscr,23,2,"【对话】");  return_cursor();}  int wmvaddstr(win,y,x,str)WINDOW *win;int y;int x;char *str;{  wmove(win,y,x);  waddstr(win,str);}draw_table(){

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -