?? game.c
字號:
/* 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 + -