麻将C语言源代码求完善版.docx

上传人:b****6 文档编号:7453616 上传时间:2023-01-24 格式:DOCX 页数:67 大小:23.35KB
下载 相关 举报
麻将C语言源代码求完善版.docx_第1页
第1页 / 共67页
麻将C语言源代码求完善版.docx_第2页
第2页 / 共67页
麻将C语言源代码求完善版.docx_第3页
第3页 / 共67页
麻将C语言源代码求完善版.docx_第4页
第4页 / 共67页
麻将C语言源代码求完善版.docx_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

麻将C语言源代码求完善版.docx

《麻将C语言源代码求完善版.docx》由会员分享,可在线阅读,更多相关《麻将C语言源代码求完善版.docx(67页珍藏版)》请在冰豆网上搜索。

麻将C语言源代码求完善版.docx

麻将C语言源代码求完善版

非吾之力,此资源:

求更改,求完善,求分享!

邮箱:

*****************

麻将源代码*/

#include"dos.h"

#include"stdio.h"

#include"graphics.h"

#include"bios.h"

#include"conio.h"

#include"stdlib.h"

unsignedcharfar*video_buffer=(charfar*)0xA0000000L;

#defineVGA2560x13/*图形模式13h*/

#defineTEXT_MODE0x03/*普通文本模式*/

#defineSETVGASet_Video_Mode(VGA256)

#defineOUTVGASet_Video_Mode(TEXT_MODE)

#defineBYTEunsignedchar

#defineWORDunsignedint

#defineDWORDunsignedint

#defineESC283

#defineLEFT19200

#defineRIGHT19712

#defineH9064

#defineENTER7181

unsignedlongintz=54400,zz=0,zy=0,zyy=0,z1=0,zl=10140;

intkey=0,keyy=0,sing=0,sing1=0,second=0,threes=0;

structchi

{

intlg;

intlgg;

}ch[13];

structmj

{char*name;/*名字*/

intdata1;/*是否已出,无用了*/

intdata2;/*是否在手中,1为自己,2为对方*/

intnumber;/*同一个花色的第几张,共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"};

structevery

{int*k;/*名字*/

intoneorfour;/*同一张牌的第几张*/

intnumber;/*第几张牌136*/

intp;

intg;

intc;

intd[2];

};

structme

{intm;/*定义有几张牌,开始有13张随着游戏的进行,会越来越小*/

intp;/*乓对方*/

intc;/*吃对方*/

intg;/*杠*/

structeverypp[14];/*存放手上的牌*/

}me;

structcomputer

{intm;

intp;

intc;

intg;

structeverypp[14];

}computer,comp;

/*设置调色板*/

voidSet_Palette(intColor,BYTEr,BYTEg,BYTEb)

{

outportb(0x3c8,Color);/*0x3c8写端口写色号*/

outportb(0x3c9,r);/*0x3c9数据端口R、G、B的比例*/

outportb(0x3c9,g);

outportb(0x3c9,b);

}

/*0x3c7读端口0x3c6计算机调色板寄存器调用端口*/

/*设置显示模式的函数*/

voidSet_Video_Mode(intmode)

{

unionREGSinregs,outregs;/*定义输入和返回寄存器*/

inregs.h.ah=0;/*ah存放功能号0h表示进入视频模式*/

inregs.h.al=(unsignedchar)mode;/*al存放要设定的视频模式*/

int86(0x10,&inregs,&outregs);/*通过10h中断设定显示模式int86()包含在dos.h*/

}

voidh_line(intx0,intx1,inty,unsignedintcolor)

{unsignedintaddress,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;

}

}

voidp_pixel(intx,inty,unsignedintcolor)

{video_buffer[y*320+x]=color;

}

voids_square(intx,inty,intside,intcolor)

{

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);

}

voidr_rectangle(intx1,inty1,intx2,inty2,intcolor)

{

h_line(x1,x2,y1,color);

h_line(x1,x2,y2,color);

v_line(y1,y2,x1,color);

v_line(y1,y2,x2,color);

}

voidfillRectangle(intx1,inty1,intx2,inty2,intcolor)

{

inti;

for(i=y1;i<=y2;i++)

{

h_line(x1,x2,i,color);

}

}

voidshowbmp(intl)

{FILE*bmp;

inti,x,y;

BYTEpalette[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);

}

voidshowbmpd(intl)

{FILE*bmp;

inti,x,y;

BYTEpalette[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);

}

voidshowybmp(intll)

{FILE*bmp;

inti,x,y;

BYTEpalette[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]);

}

for(y=0;y<30;y++)

for(x=0;x<20;x++)

pokeb(0xa000,y*320+x+zy,fgetc(bmp));

fclose(bmp);

}

voidshowcbmp(intll)

{FILE*bmp;

inti,x,y;

BYTEpalette[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]);

}

for(y=0;y<30;y++)

for(x=0;x<20;x++)

pokeb(0xa000,y*320+x+zyy,fgetc(bmp));

fclose(bmp);

}

voidbmpp(intnumber)

{FILE*bmp;

inti,x,y;

BYTEpalette[256][3];

bmp=fopen(m[number].name,"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+zl,fgetc(bmp));

fclose(bmp);

}

voidcomlipai()/*整理电脑的牌*/

{intn,j,u;

int*lingshi;

for(n=0;n

for(j=n;j

{

if(computer.pp[n].number>computer.pp[j+1].number)

{

lingshi=computer.pp[n].k;

computer.pp[n].k=computer.pp[j+1].k;

computer.pp[j+1].k=lingshi;

u=computer.pp[n].oneorfour;

computer.pp[n].oneorfour=computer.pp[j+1].oneorfour;

computer.pp[j+1].oneorfour=u;

u=computer.pp[n].number;

computer.pp[n].number=computer.pp[j+1].number;

computer.pp[j+1].number=u;

}

else

if(computer.pp[n].number==computer.pp[j+1].number)

if(computer.pp[n].oneorfour>computer.pp[j+1].oneorfour)

{

lingshi=computer.pp[n].k;

computer.pp[n].k=computer.pp[j+1].k;

computer.pp[j+1].k=lingshi;

u=computer.pp[n].oneorfour;

computer.pp[n].oneorfour=computer.pp[j+1].oneorfour;

computer.pp[j+1].oneorfour=u;

u=computer.pp[n].number;

computer.pp[n].number=computer.pp[j+1].number;

computer.pp[j+1].number=u;

}

}

}

voidmelipai()

{intn,j,u;

int*lingshi;

for(n=0;n

for(j=n;j

{

if(me.pp[n].number>me.pp[j+1].number)

{

lingshi=me.pp[n].k;

me.pp[n].k=me.pp[j+1].k;

me.pp[j+1].k=lingshi;

u=me.pp[n].oneorfour;

me.pp[n].oneorfour=me.pp[j+1].oneorfour;

me.pp[j+1].oneorfour=u;

u=me.pp[n].number;

me.pp[n].number=me.pp[j+1].number;

me.pp[j+1].number=u;

}

else

if(me.pp[n].number==me.pp[j+1].number)

if(me.pp[n].oneorfour>me.pp[j+1].oneorfour)

{

lingshi=me.pp[n].k;

me.pp[n].k=me.pp[j+1].k;

me.pp[j+1].k=lingshi;

u=me.pp[n].oneorfour;

me.pp[n].oneorfour=me.pp[j+1].oneorfour;

me.pp[j+1].oneorfour=u;

u=me.pp[n].number;

me.pp[n].number=me.pp[j+1].number;

me.pp[j+1].number=u;

}

}

}

voidrgzn(intc)/*本程序涵数的核心针对电脑的牌*/

{intb=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;

if(me.pp[c].number<=35&&me.pp[c].number>=0)

{

logo=1;

if(me.pp[c].number<=3&&me.pp[c].number>=0)

logoo=1;

elseif(me.pp[c].number<=7&&me.pp[c].number>=4)

logoo=2;

elseif(me.pp[c].number<=11&&me.pp[c].number>=8)

logoo=3;

elseif(me.pp[c].number<=15&&me.pp[c].number>=12)

logoo=4;

elseif(me.pp[c].number<=19&&me.pp[c].number>=16)

logoo=5;

elseif(me.pp[c].number<=23&&me.pp[c].number>=20)

logoo=6;

[1] [2]

elseif(me.pp[c].number<=27&&me.pp[c].number>=24)

logoo=7;

elseif(me.pp[c].number<=31&&me.pp[c].number>=28)

logoo=8;

elseif(me.pp[c].number<=35&&me.pp[c].number>=32)

logoo=9;

}

elseif(me.pp[c].number<=71&&me.pp[c].number>=36)

{

logo=2;

if(me.pp[c].number<=39&&me.pp[c].number>=36)

logoo=1;

elseif(me.pp[c].number<=43&&me.pp[c].number>=40)

logoo=2;

elseif(me.pp[c].number<=47&&me.pp[c].number>=44)

logoo=3;

elseif(me.pp[c].number<=51&&me.pp[c].number>=48)

logoo=4;

elseif(me.pp[c].number<=55&&me.pp[c].number>=52)

logoo=5;

elseif(me.pp[c].number<=59&&me.pp[c].number>=56)

logoo=6;

elseif(me.pp[c].number<=63&&me.pp[c].number>=60)

logoo=7;

elseif(me.pp[c].number<=67&&me.pp[c].number>=64)

logoo=8;

elseif(me.pp[c].number<=71&&me.pp[c].number>=68)

logoo=9;

}

elseif(me.pp[c].number<=107&&me.pp[c].number>=72)

{

logo=3;

if(me.pp[c].number<=75&&me.pp[c].number>=72)

logoo=1;

elseif(me.pp[c].number<=79&&me.pp[c].number>=76)

logoo=2;

elseif(me.pp[c].number<=83&&me.pp[c].number>=80)

logoo=3;

elseif(me.pp[c].number<=87&&me.pp[c].number>=84)

logoo=4;

elseif(me.pp[c].number<=91&&me.pp[c].number>=88)

logoo=5;

elseif(me.pp[c].number<=95&&me.pp[c].number>=92)

logoo=6;

elseif(me.pp[c].n

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1