计算机二十四点游戏,计算机二级C++辅导:24点扑克牌游戏

#include#define COL 100

#define COM 40

#define max 20

char after[max];

typedef strUCt stack /*定义栈1存放运算符*/

{

char stack[max];

int top;

}stack;

stack L;

typedef struct stack1/*定义栈2计算表达式值*/

{

int stack1[max];

int top;

}stack1;

stack1 S;

void initstack(stack M)

{

M->top=0;

}

voidinitstack1(stack1 N)

{

N->top=0;

}

char  p[4][13]={

{’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’},

{’A’,’2,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’,’J’,’Q’,’K’}

};

void play()  /*发牌函数*/

{

int j;

for(j=1;j<=4;j++)

{

bar(COL+100*j-35,COM+100-50,COL+100*j+35,COM+100+50);

setcolor(BLUE);

rectangle(COL+100*j-32,COM+100-48,COL+100*j+32,COM+100+48);

rand1(j);

delay(10000);

}

}

void rand1(int j)

{

int kind,number;

char str[3];

randomize();

while(1)

{

kind=random(4);

num=random(13);

if(p[kind][num]!=-1)

{

n=p[kind][num];

p[kind][num]=-1;

break;

}

}

switch(kind)

{

case 0:

setcolor(RED);

sprintf(str,"%c",3);

break;

case 1:

setcolor(BLACK);

sprintf(str,"%c",3);

break;

case 2:

setcolor(RED);

sprintf(str,"%c",4);

break;

case 3:

setcolor(BLACK);

sprintf(str,"%c",5);

break;

}

settextstyle(0,0,2);

outtextxy(COL+j*100-30,ROW+100-46,str);

outtextxy(COL+j*100+16,ROW+100+32,str);

if(n!=’0’)

{

settextstyle(0,0,3);

sprintf(str,"%c",n);

outtextxy(COL+j*100-5,ROW+100-5,str);

}

else

{

sprintf("str,"%d",10);

outtextxy(COL+j*100-6,ROW+100-5,str);

}

}

int text1(char *s) /*显示文本*/

{

setbkcolor(BLUE);

cleardevice();

setcolor(12);

settextstyle(1,0,8);

outtextxy(120,120,s);

setusercharsize(2,1,4,1);

setcolor(15);

settextxy(220,220,s);

getch();

return;

}

void init()

{int gdriver,gmode;

gdriver=DETECT;

initgraph(&gdriver,&gmode,"d:\turboc2");

cleardevice();

}

void close()

{

closegraph();

}

void change(char stm[])  /*将表达式的输出类型进行转换*/

{int i=0,j=0;

char ch;

initstack(L);

ch=stm[i];

while(ch!=’’)

{

while(isdigit(ch)ch=’.’)

{

after[j]=ch;

j++;

ch=stm[++i];

}

switch(ch)

{

case ’+’:

case ’-’:

while(L->top!=0&&L->stack[L->top]!=’(’)

{

after[j]=L->stack[L->top];

j++;

L->top--;

}

L->top++;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值