i=(MouseY-90)20;y坐标 MouseOff(); if(Mine[i][j].flag==0&&Mine[i][j].num!=0)本来没红旗现在显示红旗 { DrawRedflag(i,j); Mine[i][j].flag=1; } else if(Mine[i][j].flag==1)有红旗标志再按右键就红旗消失 { DrawEmpty(i,j,0,8); Mine[i][j].flag=0; } }
MouseOn(); sleep(1); } } }
案例六 速算24 6.3.4 源程序 #define N 20 #define COL 100 #define ROW 40
#include \
#include \系统时间函数 #include \图形函数 #include \动态地址分配函数 #include \库函数 #include \字符串函数 #include \字符操作函数 char p[4][13]={
{'A','2','3','4','5','6','7','8','9','0','J','Q','K'},扑克牌,10用0来表示
{'A','2','3','4','5','6','7','8','9','0','J','Q','K'}, {'A','2','3','4','5','6','7','8','9','0','J','Q','K'}, {'A','2','3','4','5','6','7','8','9','0','J','Q','K'}}; typedef struct node {
int data;
struct node link; }STACK1; 栈1
typedef struct node2
{
char data;
struct node2 link; }STACK2; 栈2
void init(void);图形驱动 void close(void);图形关闭
void play(void);发牌的具体过程 void rand1(int j);随机发牌函数
void change(char e,char a); 中缀变后缀函数 int computer(char s); 后缀表达式计算函数 STACK1 initstack1(STACK1 top); 栈1初始化 STACK1 push(STACK1 top,int x); 栈1入栈运算 STACK1 pop(STACK1 top); 栈1删除栈顶元素 int topx(STACK1 top); 栈1读栈顶元素
STACK1 ptop(STACK1 top,int x); 栈1读出栈顶元素值并删除栈顶元素 int empty(STACK1 top); 判栈1是否为空函数 STACK2 initstack2(STACK2 top); 栈2初始化 STACK2 push2(STACK2 top,char x); 栈2入栈运算 STACK2 pop2(STACK2 top); 栈2删除栈顶元素 char topx2(STACK2 top); 栈2读栈顶元素
STACK2 ptop2(STACK2 top,char x); 栈2读出栈顶元素值并删除栈顶元素 int empty2(STACK2 top); 判栈2是否为空函数 int text1(char s) ; 显示文本 main() {
char s[N],s1[N],ch; int i,result;
int gdriver, gmode; clrscr(); 清屏 init(); 初始化函数 while(1) {
setbkco