📄 mainface.h
字号:
#include "head.h"
/*头文件、常量定义*/
void drawmat(char *mat,int matsize,int x,int y,int color)/*汉字点阵*/
{
int i,j,k,m;
m=(matsize-1)/8+1;
for(j=0;j<matsize;j++)
for(i=0;i<m;i++)
for(k=0;k<8;k++)
if(mat[j*m+i]&(0x80>>k))
putpixel(x+i*8+k,y+j,color);
}
void showStar(void)/*星空效果*/
{
int i;
for(i=0;i<300;i++)
{
putpixel(random(640),random(480),random(15));
}
}
void showBorder(void)/*边框*/
{
int x1=0,y1=0,x2=639,y2=479;
for(;x1<16;x1++,y1++,x2--,y2--)
{
setcolor(x1);
rectangle(x1,y1,x2,y2);
}
}
void showCaption(void)/*在(x,y)处显示欢乐五子棋,字间距为z*/
{
int x=120;
int y=100;
int z=70;
drawmat(huan64Z,64,x+2,y+2,7);
drawmat(le64Z,64,x+z+2,y+2,7);
drawmat(hei64Z,64,x+2*z+2,y+2,7);
drawmat(bai64Z,64,x+3*z+2,y+2,7);
drawmat(qi64Z,64,x+4*z+2,y+2,7);
drawmat(huan64Z,64,x,y,14);
drawmat(le64Z,64,x+z,y,14);
drawmat(hei64Z,64,x+2*z,y,8);
drawmat(bai64Z,64,x+3*z,y,15);
drawmat(qi64Z,64,x+4*z,y,14);
setcolor(2);
line(x-20,y+70,x+420,y+70);
setcolor(1);
line(x+380,y-10,x+380,y+100);
}
void showAuthor(void)/* 显示作者 */
{
int x=450;
int y=430;
drawmat(cheng16H,16,x,y,8);
drawmat(xu16H,16,x+20,y,8);
drawmat(she16H,16,x+40,y,8);
drawmat(ji16H,16,x+60,y,8);
drawmat(dian16H,16,x+80,y,8);
drawmat(tian16H,16,x+100,y,8);
drawmat(xue16H,16,x+120,y,8);
drawmat(ke16H,16,x+140,y,8);
x=451;
y=431;
drawmat(cheng16H,16,x,y,15);
drawmat(xu16H,16,x+20,y,15);
drawmat(she16H,16,x+40,y,15);
drawmat(ji16H,16,x+60,y,15);
drawmat(dian16H,16,x+80,y,15);
drawmat(tian16H,16,x+100,y,15);
drawmat(xue16H,16,x+120,y,15);
drawmat(ke16H,16,x+140,y,15);
}
void showInterfaceChessboard(void)/*显示主界面的棋盘*/
{
int x = 100;
int y = 200;
int z = 60;
int i;
setcolor(7);
for(i=0;i<5;i++)
{
line(x+1,y+i*z+1,x+4*z+1,y+i*z+1);
line(x+i*z+1,y+1,x+i*z+1,y+4*z+1);
}
setcolor(2);
for(i=0;i<5;i++)
{
line(x,y+i*z,x+4*z,y+i*z);
line(x+i*z,y,x+i*z,y+4*z);
}
setcolor(7);
setfillstyle(1,7);
fillellipse(192,292,25,25);
fillellipse(252,292,25,25);
fillellipse(192,352,25,25);
fillellipse(252,352,25,25);
setcolor(8);
setfillstyle(1,8);
fillellipse(190,290,25,25);
fillellipse(250,350,25,25);
setcolor(15);
setfillstyle(1,15);
fillellipse(190,350,25,25);
fillellipse(250,290,25,25);
}
void showMenuBG(void)/*显示菜单背景色*/
{
int x=220;
int y=250;
int j=30;
int h=35;
drawmat(ren32H,32,x+j+1,y+1,8);
drawmat(ji32H,32,x+2*j+1,y+1,8);
drawmat(dui32H,32,x+3*j+1,y+1,8);
drawmat(yi32H,32,x+4*j+1,y+1,8);
drawmat(ren32H,32,x+j+1,y+1+h,8);
drawmat(ren32H,32,x+2*j+1,y+1+h,8);
drawmat(dui32H,32,x+3*j+1,y+1+h,8);
drawmat(yi32H,32,x+4*j+1,y+1+h,8);
drawmat(you32H,32,x+j+1,y+1+2*h,8);
drawmat(xi32H,32,x+2*j+1,y+1+2*h,8);
drawmat(shuo32H,32,x+3*j+1,y+1+2*h,8);
drawmat(ming32H,32,x+4*j+1,y+1+2*h,8);
drawmat(li32H,32,x+j+1,y+1+3*h,8);
drawmat(kai32H,32,x+2*j+1,y+1+3*h,8);
drawmat(you32H,32,x+3*j+1,y+1+3*h,8);
drawmat(xi32H,32,x+4*j+1,y+1+3*h,8);
}
void showMenuFG(int fg1,int fg2,int fg3,int fg4)/*显示菜单前景色*/
{
int x=220;
int y=250;
int j=30;
int h=35;
drawmat(ren32H,32,x+j,y,fg1);
drawmat(ji32H,32,x+2*j,y,fg1);
drawmat(dui32H,32,x+3*j,y,fg1);
drawmat(yi32H,32,x+4*j,y,fg1);
drawmat(ren32H,32,x+j,y+h,fg2);
drawmat(ren32H,32,x+2*j,y+h,fg2);
drawmat(dui32H,32,x+3*j,y+h,fg2);
drawmat(yi32H,32,x+4*j,y+h,fg2);
drawmat(you32H,32,x+j,y+2*h,fg3);
drawmat(xi32H,32,x+2*j,y+2*h,fg3);
drawmat(shuo32H,32,x+3*j,y+2*h,fg3);
drawmat(ming32H,32,x+4*j,y+2*h,fg3);
drawmat(li32H,32,x+j,y+3*h,fg4);
drawmat(kai32H,32,x+2*j,y+3*h,fg4);
drawmat(you32H,32,x+3*j,y+3*h,fg4);
drawmat(xi32H,32,x+4*j,y+3*h,fg4);
}
void showMenu(int sele)/*显示主菜单函数*/
{
int fg = 5;/*当前菜单的颜色*/
int bg = 7;/*非当前菜单的颜色*/
switch(sele)
{
case 1: showMenuFG(fg,bg,bg,bg);break;
case 2: showMenuFG(bg,fg,bg,bg);break;
case 3: showMenuFG(bg,bg,fg,bg);break;
case 4: showMenuFG(bg,bg,bg,fg);break;
}
}
void runMenu(int sele)/*执行菜单*/
{
switch(sele)
{
case 1:effect();playFace();playGame();effect();showInterface();/* 人机对战 */
case 2:effect();playFace();pvsP();effect();showInterface();/* 人人对战 */
case 3:effect();moveWord();effect();showInterface();/*游戏说明*/
case 4:exit(0);
}
}
void moveMenu(void)/*移动菜单*/
{
int sele = 1;/*默认菜单编号为1*/
int key;/*接收键盘扫描码*/
showMenuBG();
showMenu(sele);
while(1)
{
key = bioskey(0);
if(key==UP&&sele!=1)
{
sele--;
showMenu(sele);
}
else if(key==DOWN&&sele!=4)
{
sele++;
showMenu(sele);
}
else if(key==ENTER||key==SPACE)
{
runMenu(sele);
}
else
continue;
}
}
int showInterface(void)/*初始化游戏主界面*/
{
setbkcolor(0);
showStar();
showBorder();
showCaption();
showAuthor();
/*showInterfaceChessboard();*/
moveMenu();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -