程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 上海黑暗之龍--麻將原代碼

上海黑暗之龍--麻將原代碼

編輯:C語言基礎知識
部分圖片未上傳
   /*天宇軟件
   作者:上海黑暗之龍
   2002/10/30
   麻將原代碼*/
   #include "dos.h"
   #include "stdio.h"
   #include "graphics.h"
   #include "bios.h"
   #include "conio.h"
   #include "stdlib.h"
   unsigned char far *video_buffer=(char far *)0xA0000000L;
   #define VGA256 0x13 /*圖形模式13h*/
   #define TEXT_MODE 0x03 /*普通文本模式*/
   #define SETVGA Set_Video_Mode(VGA256)
   #define OUTVGA Set_Video_Mode(TEXT_MODE)
   #define BYTE unsigned char
   #define Word unsigned int
   #define DWORD unsigned int
   #define ESC 283
   #define LEFT 19200
   #define RIGHT 19712
   #define H 9064
   #define ENTER 7181
   unsigned long int z=54400,zz=0,zy=0,zyy=0,z1=0,zl=10140;
   int key=0,keyy=0,sing=0,sing1=0,second=0,threes=0;
   strUCt chi
   {
   int lg;
   int lgg;
   }ch[13];
   struct mj
   { char *name; /*名字*/
   int data1; /*是否已出,無用了*/
   int data2; /*是否在手中,1為自己,2為對方*/
   int number; /*同一個花色的第幾張,共4張*/
   }m[136]={"1.bmp",0,0,1,"1.bmp",0,0,2,"1.bmp",0,0,3,"1.bmp",0,0,4,"2.bmp",0,0,1,
   "2.bmp",0,0,2,"2.bmp",0,0,3,"2.bmp",0,0,4,"3.bmp",0,0,1,"3.bmp",0,0,2,
   "3.bmp",0,0,3,"3.bmp",0,0,4,"4.bmp",0,0,1,"4.bmp",0,0,2,"4.bmp",0,0,3,
   "4.bmp",0,0,4,"5.bmp",0,0,1,"5.bmp",0,0,2,"5.bmp",0,0,3,"5.bmp",0,0,4,
   "6.bmp",0,0,1,"6.bmp",0,0,2,"6.bmp",0,0,3,"6.bmp",0,0,4,"7.bmp",0,0,1,
   "7.bmp",0,0,2,"7.bmp",0,0,3,"7.bmp",0,0,4,"8.bmp",0,0,1,"8.bmp",0,0,2,
   "8.bmp",0,0,3,"8.bmp",0,0,4,"9.bmp",0,0,1,"9.bmp",0,0,2,"9.bmp",0,0,3,
   "9.bmp",0,0,4,"10.bmp",0,0,1,"10.bmp",0,0,2,"10.bmp",0,0,3,"10.bmp",0,0,4,
   "11.bmp",0,0,1,"11.bmp",0,0,2,"11.bmp",0,0,3,"11.bmp",0,0,4,"12.bmp",0,0,1,
   "12.bmp",0,0,2,"12.bmp",0,0,3,"12.bmp",0,0,4,"13.bmp",0,0,1,"13.bmp",0,0,2,
   "13.bmp",0,0,3,"13.bmp",0,0,4,"14.bmp",0,0,1,"14.bmp",0,0,2,"14.bmp",0,0,3,
   "14.bmp",0,0,4,"15.bmp",0,0,1,"15.bmp",0,0,2,"15.bmp",0,0,3,"15.bmp",0,0,4,
   "16.bmp",0,0,1,"16.bmp",0,0,2,"16.bmp",0,0,3,"16.bmp",0,0,4,"17.bmp",0,0,1,
   "17.bmp",0,0,2,"17.bmp",0,0,3,"17.bmp",0,0,4,"18.bmp",0,0,1,"18.bmp",0,0,2,
   "18.bmp",0,0,3,"18.bmp",0,0,4,"19.bmp",0,0,1,"19.bmp",0,0,2,"19.bmp",0,0,3,
   "19.bmp",0,0,4,"20.bmp",0,0,1,"20.bmp",0,0,2,"20.bmp",0,0,3,"20.bmp",0,0,4,
   "21.bmp",0,0,1,"21.bmp",0,0,2,"21.bmp",0,0,3,"21.bmp",0,0,4,"22.bmp",0,0,1,
  
   "22.bmp",0,0,2,"22.bmp",0,0,3,"22.bmp",0,0,4,"23.bmp",0,0,1,"23.bmp",0,0,2,
   "23.bmp",0,0,3,"23.bmp",0,0,4,"24.bmp",0,0,1,"24.bmp",0,0,2,"24.bmp",0,0,3,
   "24.bmp",0,0,4,"25.bmp",0,0,1,"25.bmp",0,0,2,"25.bmp",0,0,3,"25.bmp",0,0,4,
   "26.bmp",0,0,1,"26.bmp",0,0,2,"26.bmp",0,0,3,"26.bmp",0,0,4,"27.bmp",0,0,1,
   "27.bmp",0,0,2,"27.bmp",0,0,3,"27.bmp",0,0,4,"28.bmp",0,0,1,"28.bmp",0,0,2,
   "28.bmp",0,0,3,"28.bmp",0,0,4,"29.bmp",0,0,1,"29.bmp",0,0,2,"29.bmp",0,0,3,
   "29.bmp",0,0,4,"30.bmp",0,0,1,"30.bmp",0,0,2,"30.bmp",0,0,3,"30.bmp",0,0,4,
   "31.bmp",0,0,1,"31.bmp",0,0,2,"31.bmp",0,0,3,"31.bmp",0,0,4,"32.bmp",0,0,1,
   "32.bmp",0,0,2,"32.bmp",0,0,3,"32.bmp",0,0,4,"33.bmp",0,0,1,"33.bmp",0,0,2,
   "33.bmp",0,0,3,"33.bmp",0,0,4,"34.bmp",0,0,1,"34.bmp",0,0,2,"34.bmp",0,0,3,
   "34.bmp"};
   struct every
   { int *k; /*名字*/
   int oneorfour; /*同一張牌的第幾張*/
   int number; /*第幾張牌136*/
   int p;
   int g;
   int c;
   int d[2];
   };
   struct me
   { int m; /*定義有幾張牌,開始有13張隨著游戲的進行,會越來越小*/
   int p; /*乓對方*/
   int c; /*吃對方*/
   int g; /*槓*/
  
   struct every pp[14]; /*存放手上的牌*/
   }me;
   struct computer
   { int m;
   int p;
   int c;
   int g;
   struct every pp[14];
   }computer,comp;
  
   /* 設置調色板 */
   void Set_Palette(int Color,BYTE r,BYTE g,BYTE b)
   {
   outportb(0x3c8,Color); /*0x3c8寫端口 寫色號*/
   outportb(0x3c9,r); /*0x3c9數據端口 R、G、B的比例*/
   outportb(0x3c9,g);
   outportb(0x3c9,b);
   }
   /*0x3c7讀端口 0x3c6計算機調色板寄存器調用端口*/
   /* 設置顯示模式的函數 */
   void Set_Video_Mode(int mode)
   {
   union REGS inregs,outregs; /*定義輸入和返回寄存器*/
   inregs.h.ah=0; /*ah存放功能號0h表示進入視頻模式*/
   inregs.h.al=(unsigned char)mode; /*al存放要設定的視頻模式*/
   int86(0x10,&inregs,&outregs); /*通過10h中斷設定顯示模式int86()包含在dos.h*/
   }
   void v_line(int y0,int y1,int x,unsigned int color)
   { unsigned int address,n,temp;
   if(y0>y1)
   {
   temp=y1;
   y1=y0;
   y0=temp;
   }
   address=320*y0+x;
   for(n=0;n<=y1-y0;n++)
   {
   video_buffer[address]=color;
   address+=320;
   }
   }
   void h_line(int x0,int x1,int y,unsigned int color)
   { unsigned int address,n,temp;
   if(x0>x1)
   {
   temp=x1;
   x1=x0;
   x0=temp;
   }
   address=320*y+x0;
   for(n=0;n<=x1-x0;n++)
   {
  
   video_buffer[address]=color;
   address+=1;
   }
   }
   void p_pixel(int x,int y,unsigned int color)
   { video_buffer[y*320+x]=color;
   }
   void s_square(int x,int y,int side,int color)
   {
   h_line(x,x+side,y,color);
   h_line(x,x+side,y+side,color);
   v_line(y,y+side,x,color);
   v_line(y,y+side,x+side,color);
   }
   void r_rectangle(int x1,int y1,int x2,int y2,int color)
   {
   h_line(x1,x2,y1,color);
   h_line(x1,x2,y2,color);
   v_line(y1,y2,x1,color);
   v_line(y1,y2,x2,color);
   }
   void fillRectangle(int x1,int y1,int x2,int y2,int color)
   {
   int i;
   for(i=y1;i<=y2;i++)
   {
   h_line(x1,x2,i,color);
   }
   }
   void showbmp(int l)
   { FILE *bmp;
   int i,x,y;
   BYTE palette[256][3];
   bmp=fopen(me.pp[l].k,"rb");
   fseek(bmp,54,SEEK_SET);
   for(i=0;i<256;i++)
   {
   palette[i][2]=fgetc(bmp)>>2;
   palette[i][1]=fgetc(bmp)>>2;
   palette[i][0]=fgetc(bmp)>>2;
   fgetc(bmp);
   Set_Palette(i,palette[i][0],palette[i][1],palette[i][2]);
   }
   for (y=0;y<30;y++)
   for(x=0;x<20;x++)
   pokeb(0xa000,y*320+x+z+zz+z1,fgetc(bmp));
   fclose(bmp);
   }
   void showbmpd(int l)
   { FILE *bmp;
   int i,x,y;
   BYTE palette[256][3];
   bmp=fopen(me.pp[l].k,"rb");
   fseek(bmp,54,SEEK_SET);
   for(i=0;i<256;i++)
   {
   palette[i][2]=fgetc(bmp)>>2;
   palette[i][1]=fgetc(bmp)>>2;
   palette[i][0]=fgetc(bmp)>>2;
   fgetc(bmp);
   Set_Palette(i,palette[i][0],palette[i][1],palette[i][2]);
   }
   for (y=0;y<30;y++)
   for(x=0;x<20;x++)
   pokeb(0xa000,y*320+x+zyy,fgetc(bmp));
   fclose(bmp);
   }
   void showybmp(int ll)
   { FILE *bmp;
   int i,x,y;
   BYTE palette[256][3];
   bmp=fopen(computer.pp[ll].k,"rb");
   fseek(bmp,54,SEEK_SET);
   for(i=0;i<256;i++)
   {
   palette[i][2]=fgetc(bmp)>>2;
   palette[i][1]=fgetc(bmp)>>2;
   palette[i][0]=fgetc(bmp)>>2;
   fgetc(bmp);
   Set_Palette(i,palette[i][0],palette[i][1],palette[i][2]);
   }
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved