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

📄 game.c

📁 数字信号处理实验
💻 C
📖 第 1 页 / 共 2 页
字号:
/* WIN-TC BGI 图形编程模板 */

/*随机函数*/
#include <stdlib.h>
#include <time.h>

#include <Conio.h>
#include <graphics.h>
#include <bios.h>
#define BACKGROUND DARKGRAY
#define ENTER 1
#define QUITE -1
#define VK_DOWN 0x5000
#define VK_UP 0x4800
#define VK_ENTER 0x1c0d
/*随机函数值*/
#define MAN 1
#define COMPUTER 0
/*人下的棋子的位置*/
#define P1 1

/*计算机下的棋子的位置*/
#define P2 -1

#define WIN 1
#define LOSE -1
#define PEACE 0

/*在第row行的空格中下一子*/
#define chkAndPutDwnRow(row) {\
   for(col = 0; col < 3; col++)\
     {if(chsman[row][col] == 0)\
        {draw(row,col,P2);\
         return;\
        }\
     }\
}
/*在第col列的空行中下一子*/
#define chkAndPutDwnCol(col) {\
   for(row = 0; row < 3; row++)\
     {if(chsman[row][col] == 0)\
        {draw(row,col,P2);\
         return;\
        }\
     }\
}

int chsman[3][3] = {0};
int stepFlg;/*变量stepFlg用于表计算计算机所下的子的数量*/
int firstone,mancolor,computercolor;;

char jing24S[]={
/* 以下是 '井' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC1,
  0x80,0x00,0x81,0x00,0x00,0x81,0x00,0x00,
  0x81,0x00,0x00,0x81,0x00,0x3F,0xFF,0xF8,
  0x00,0x81,0x00,0x00,0x81,0x00,0x00,0x81,
  0x00,0x00,0x81,0x00,0x00,0x81,0x04,0x00,
  0x81,0x0E,0x3F,0xFF,0xF0,0x00,0x81,0x00,
  0x00,0x81,0x00,0x01,0x81,0x00,0x01,0x01,
  0x00,0x03,0x01,0x00,0x06,0x01,0x00,0x08,
  0x01,0x00,0x30,0x01,0x00,0x40,0x00,0x00,
};

char zi24S[]={
/* 以下是 '字' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,
  0x00,0x00,0x08,0x00,0x08,0x08,0x18,0x0F,
  0xF7,0xF8,0x18,0x00,0x10,0x30,0x00,0x20,
  0x00,0x00,0xC0,0x07,0xFF,0xE0,0x00,0x03,
  0x00,0x00,0x04,0x00,0x00,0x18,0x00,0x00,
  0x18,0x0C,0x7F,0xFF,0xFE,0x00,0x18,0x00,
  0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,
  0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,
  0xF8,0x00,0x00,0x30,0x00,0x00,0x00,0x00,
};

char qi24S[]={
/* 以下是 '棋' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x04,0x00,0x00,0x06,0x0C,
  0x30,0x04,0x08,0x20,0x04,0x08,0x20,0x04,
  0x08,0x2C,0x04,0xFF,0xF0,0x3F,0xC8,0x20,
  0x04,0x08,0x20,0x04,0x0F,0xE0,0x0F,0x08,
  0x20,0x0D,0x88,0x20,0x0C,0x88,0x20,0x14,
  0x8F,0xE0,0x14,0x08,0x20,0x24,0x08,0x24,
  0x24,0xF7,0xD8,0x44,0x00,0x00,0x04,0x0C,
  0x60,0x04,0x18,0x30,0x04,0x30,0x1C,0x04,
  0x60,0x0C,0x04,0x80,0x04,0x00,0x00,0x00,
};
char jin24S[]={
/* 以下是 '进' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
  0x40,0x08,0x08,0x40,0x0C,0x08,0x40,0x06,
  0x08,0x40,0x04,0x08,0x48,0x00,0xFF,0xF0,
  0x00,0x08,0x40,0x04,0x08,0x40,0x7E,0x08,
  0x40,0x04,0x08,0x40,0x04,0x08,0x4C,0x04,
  0xFF,0xF0,0x04,0x08,0x40,0x04,0x18,0x40,
  0x04,0x10,0x40,0x04,0x20,0x40,0x0C,0x40,
  0x40,0x32,0x80,0x40,0x61,0x80,0x80,0x00,
  0x7F,0xFC,0x00,0x0F,0xF8,0x00,0x00,0x00,
};
char ru24S[]={
/* 以下是 '入' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x01,0xC0,0x00,0x00,0x20,0x00,0x00,
  0x10,0x00,0x00,0x10,0x00,0x00,0x18,0x00,
  0x00,0x38,0x00,0x00,0x3C,0x00,0x00,0x24,
  0x00,0x00,0x64,0x00,0x00,0x42,0x00,0x00,
  0xC2,0x00,0x00,0x81,0x00,0x01,0x01,0x80,
  0x03,0x00,0xC0,0x06,0x00,0x60,0x0C,0x00,
  0x30,0x08,0x00,0x3C,0x10,0x00,0x0C,0x60,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
char tui24S[]={
/* 以下是 '退' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x18,0x20,0x30,0x0C,0x3F,0xF0,0x04,
  0x20,0x20,0x00,0x20,0x20,0x00,0x3F,0xE0,
  0x00,0x20,0x20,0x04,0x20,0x20,0x3E,0x20,
  0x20,0x04,0x3F,0xE0,0x04,0x20,0x18,0x04,
  0x20,0x30,0x04,0x27,0x40,0x04,0x20,0xC0,
  0x04,0x21,0x70,0x04,0x26,0x18,0x1A,0x38,
  0x18,0x31,0x20,0x00,0x60,0xC0,0x00,0x00,
  0x3F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,
};
char chu24S[]={
/* 以下是 '出' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,
  0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x0C,
  0x18,0x30,0x0C,0x18,0x20,0x0C,0x18,0x20,
  0x0C,0x18,0x20,0x0C,0x18,0x20,0x0C,0x18,
  0x20,0x0F,0xFF,0xE0,0x00,0x18,0x30,0x00,
  0x18,0x00,0x08,0x18,0x10,0x08,0x18,0x18,
  0x08,0x18,0x10,0x08,0x18,0x10,0x08,0x18,
  0x10,0x08,0x18,0x10,0x08,0x18,0x10,0x1F,
  0xE7,0xF0,0x00,0x00,0x10,0x00,0x00,0x00,
};
char ji24S[]={
/* 以下是 '计' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x03,
  0x00,0x06,0x03,0x00,0x07,0x03,0x00,0x03,
  0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,
  0x00,0x03,0x00,0x00,0x03,0x0C,0x7E,0x7F,
  0xF0,0x04,0x03,0x00,0x04,0x03,0x00,0x04,
  0x03,0x00,0x04,0x03,0x00,0x04,0x23,0x00,
  0x04,0x43,0x00,0x04,0x83,0x00,0x05,0x83,
  0x00,0x07,0x03,0x00,0x06,0x03,0x00,0x04,
  0x03,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
};
char suan24S[]={
/* 以下是 '算' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,
  0x00,0x06,0x12,0x04,0x07,0xF7,0xFE,0x08,
  0x8C,0x20,0x10,0xC8,0x30,0x16,0x80,0x60,
  0x27,0x7F,0xC0,0x06,0x00,0x40,0x07,0xFF,
  0xC0,0x06,0x00,0x40,0x07,0xFF,0xC0,0x06,
  0x00,0x40,0x06,0x00,0x40,0x07,0xFF,0xC0,
  0x00,0xC1,0x00,0x00,0x81,0x04,0x7F,0xFF,
  0xFE,0x00,0x81,0x00,0x01,0x01,0x00,0x02,
  0x01,0x00,0x0C,0x03,0x00,0x30,0x02,0x00,
};
char Ji24S[]={
/* 以下是 '机' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x04,0x00,0x00,0x06,0x00,
  0x00,0x04,0x10,0x20,0x04,0x1F,0xE0,0x04,
  0x18,0x40,0x04,0x18,0x40,0x7F,0xD8,0x40,
  0x04,0x18,0x40,0x04,0x18,0x40,0x04,0x18,
  0x40,0x0F,0x98,0x40,0x0C,0xD8,0x40,0x0C,
  0x58,0x40,0x14,0x18,0x40,0x14,0x18,0x40,
  0x24,0x10,0x40,0x44,0x10,0x44,0x44,0x30,
  0x44,0x04,0x20,0x44,0x06,0x40,0x66,0x06,
  0x40,0x7E,0x07,0x80,0x00,0x00,0x00,0x00,
};
char ren24S[]={
/* 以下是 '人' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,
  0x00,0x00,0x38,0x00,0x00,0x30,0x00,0x00,
  0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,
  0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x24,
  0x00,0x00,0x24,0x00,0x00,0x64,0x00,0x00,
  0x62,0x00,0x00,0x42,0x00,0x00,0xC3,0x00,
  0x00,0x81,0x00,0x01,0x81,0x80,0x03,0x00,
  0xC0,0x02,0x00,0x60,0x0C,0x00,0x38,0x10,
  0x00,0x1C,0x20,0x00,0x00,0x00,0x00,0x00,
};
char shu24S[]={
/* 以下是 '输' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x03,
  0x00,0x0C,0x03,0x00,0x08,0x06,0x80,0x08,
  0x84,0x40,0x3F,0x08,0x60,0x10,0x10,0x30,
  0x16,0x2F,0xFE,0x32,0x40,0x04,0x22,0x42,
  0x00,0x63,0xBE,0x0C,0x3E,0x22,0x48,0x02,
  0x22,0x48,0x02,0x3E,0x48,0x02,0x22,0x48,
  0x07,0xA2,0x48,0x7A,0x3E,0x48,0x22,0x22,
  0x48,0x02,0x22,0x08,0x02,0x22,0x08,0x06,
  0x22,0x78,0x06,0x26,0x18,0x04,0x00,0x00,
};
char ying24S[]={
/* 以下是 '赢' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x10,
  0x00,0x00,0x10,0x0C,0x3F,0xEF,0xF0,0x04,
  0x00,0x60,0x07,0xFF,0x80,0x04,0x00,0x40,
  0x07,0xFF,0xC0,0x07,0xFF,0xC0,0x04,0x00,
  0x40,0x00,0x05,0x10,0x1F,0x7E,0xF8,0x11,
  0x54,0x90,0x11,0x5C,0x90,0x1F,0x54,0xD0,
  0x11,0x54,0xB0,0x1F,0x54,0xB0,0x11,0x51,
  0x90,0x11,0x1D,0x14,0x11,0x25,0x14,0x2F,
  0x42,0x1E,0x42,0x84,0x00,0x00,0x00,0x00,
};
char he24S[]={
/* 以下是 '和' 的 24点阵宋体 字模,72 byte */
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,
  0x00,0x00,0xF0,0x00,0x1F,0x00,0x08,0x01,
  0x03,0xFC,0x01,0x02,0x08,0x01,0x02,0x08,
  0x01,0x1A,0x08,0x1F,0xE2,0x08,0x01,0x02,
  0x08,0x03,0x82,0x08,0x03,0x62,0x08,0x07,
  0x32,0x08,0x05,0x1A,0x08,0x09,0x02,0x08,
  0x11,0x02,0x08,0x21,0x03,0xF8,0x41,0x02,
  0x08,0x01,0x02,0x08,0x01,0x00,0x00,0x01,
  0x80,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
};

void initgr(void) /* BGI初始化 */
{
  int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
  registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
  initgraph(&gd, &gm, "");
}

void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{int i,j,k,n;
 n=(matsize-1)/8+1;
 for(j=0;j<matsize;j++)
  for(i=0;i<n;i++)
   for(k=0;k<8;k++)
    if(mat[j*n+i]&(0x80>>k))  /*测试为1的位则显示*/
     putpixel(x+i*8+k,y+j,color);
};
/*画开始画面,并根据用户输入的命令返回不同的值,以便主调函数进入或退出*/
int pictureone(void)
{
  int command;
  cleardevice();
  drawmat(jing24S,24,270,150,RED);
  drawmat(zi24S,24,310,150,RED);
  drawmat(qi24S,24,350,150,RED);
  while(1)
  {drawmat(jin24S,24,300,350,WHITE);
   drawmat(ru24S,24,320,350,WHITE);
   drawmat(tui24S,24,300,380,RED);
   drawmat(chu24S,24,320,380,RED);
   while(1)   /*当“进入”突出显示时,用户按“Enter"和向下方向键有效*/

⌨️ 快捷键说明

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