24点休闲益智小游戏
1. 题目要求:
24点游戏是经典的纸牌益智游戏。
常见游戏规则: 从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。
2. 需求分析
2.1程序的功能
(1)输入输出的判定和四个数字的类型:
在输入表达式时程序会自动检测用户输入的数据是否为程序产生的那4个整数,如果不是就提醒用户输入有误,重新输入或退出程序。在输出的时候对最后结果等于24的判别。
(2)括号问题的处理:
对于括号问题,括号的几种情况
1.无括号a*b*c*d
2.(a b) c d同a b (c d)
3.(a b c) d
4.a (b c) d
5.(a b) (c d)
6.((a b) c) d
7.(a (b c)) d
2.2输入输出的要求
输入的运算符只能是+、-、*、/、(、)这六个,输入的整数必须是程序随机产生的那四个数,而且每个数只能用一次。当用户正确输入算式后,用“堆栈来求表达式的值” 的原理,求出结果并判断是否为24,得出用户是输是赢的结果。输出结果后,询问用户是否继续,是则重新启动程序,否则结束程序。
2.3功能模块图
3.流程图
4.详细设计
4.1界面要求
有合理的界面,用户进入游戏后,登录账户,一步一步执行的时候有提示,方便操作。
4.2功能逻辑设计
设计程序前将其分为多块:
1)显示登录界面
玩家输入用户名和密码,进去游戏
2)显示游戏主界面
有三个选项,分别为计算机随机给出四个数字,玩家计算;用户自己输入四个数字进行计算或让计算机给出答案;退出游戏。
4.3使用说明
除了输入表达式计算外,若玩家不会游戏时,或者认为这四个数字不能构成24点时,可以输入?,计算机会给出答案,进行下一步。
5. 代码展示
5.1源代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <windows.h>
#include <time.h>
#define N 5
typedef struct{ //定义结构int elem[50];int top;
}seqstack;
char operator_arr[8]={'+' , '-' , '*' , '/' ,'(' , ')' , '#'}; //运算符种类
unsigned char pri[7][7] = { //判断两个运算符的优先关系'>','>','<','<','<','>','>','>','>','<','<','<','>','>','>','>','>','>','<','>','>','>','>','>','>','<','>','>','<','<','<','<','<','=',' ','>','>','>','>',' ','>','>','<','<','<','<','<',' ','='
};
unsigned int operator_int[7] = {43,45,42,47,40,41,35};
char retchar;
int rad_num[4];
int *p;
int arr_len;
/*初始化(栈置空)操作,将栈设为空栈*/
void init_seqstack(seqstack *s) { //s的top指针指向-1s->top = -1;
}
/*进栈函数*/
int Push_stack(seqstack *s,int x){ //如果栈满不能入栈,返回-1if(s->top == 49){ //栈已满return -1;}s->top++;s->elem[s->top] = x;return 0;
}
/*出栈函数*/
int Pop_seqstack(seqstack *s, int *x) { //s的top指针指向-1,为空,返回-1if(s->top == -1){ //栈已空return -1;} *x = s->elem[s->top]; //栈顶元素存入*x,返回s->top--; //top指针-1return 0;
}
/*取栈顶元素*/
int get_top_stack(seqstack *s) {if(s->top == -1){ //栈已空return -1;} return s->elem[s->top];
}
int counter(int num1,int operat,int num2){if(operat == 43){return num1+num2;}else if(operat == 45){return num1-num2;}else if(operat == 42){return num1*num2;}else if(operat == 47){if(num2 == 0){return num1;}return num1/num2;}else{return 0;}
}
/*判断操作符优先级*/
char priority(char a,char b){int i,j;int pos1,pos2; for(i=0;i<7;i++){if(a == operator_arr[i]){pos1 = i;}}for(j=0;j<7;j++){if(b == operator_arr[j]){pos2 = j;}}retchar = pri[pos1][pos2];if((pos1==4&&pos2==6)||(pos1==6&&pos2==5)){printf("pos1=%d,pos2=%d\n",pos1,pos2);}return retchar;
}
/*计算表达式的值*/
int calc_expr_int(int arr[]){int i=0,ret,tmp;int opera,num1,num2;char pri;seqstack stack_char; seqstack stack_num; init_seqstack(&stack_char);Push_stack(&stack_char, 35);init_seqstack(&stack_num);tmp=arr[i];while (tmp!= 35 || get_top_stack(&stack_char)!=35){ if((arr[i]>=40&&arr[i]<=43) || arr[i]==45 ||arr[i]==47||arr[i]==35){ pri = priority(get_top_stack(&stack_char), tmp);if(pri == '='){Pop_seqstack(&stack_char, &tmp); i++;tmp=arr[i]; }else if(pri == '<'){Push_stack(&stack_char,tmp); i++;tmp=arr[i]; }else if(pri == '>'){ //不需要从表达式中取出下一个值Pop_seqstack(&stack_char, &opera);Pop_seqstack(&stack_num, &num2); Pop_seqstack(&stack_num, &num1);Push_stack(&stack_num, counter(num1, opera,num2)); }else{printf("%c\n",pri);printf("运算符有问题\n");return 0; }}else{ // 不是运算符则进栈Push_stack(&stack_num,tmp);i++;tmp=arr[i]; } }ret=get_top_stack(&stack_num);return ret;
}
/*随机产生四个数字*/
void random_num(){int tmp;int i;for(i=0;i<4;i++){tmp = rand();tmp = tmp % 13 + 1;rad_num[i] = tmp;}
}
/*将用户输入的字符型表达式转化为整形存放到数组中*/
int* str_to_int(char *str,int *ilen){int len,num1,num2,num;int j=0,flag = 0;unsigned k;int i;len = strlen(str);p = (int *)malloc(sizeof(int)*len+1);for(k=0;k<strlen(str);k++){if(str[k]>47&&str[k]<58&&flag==0){ //字符0-9转换成整数0-9num1=(int)str[k]-48;flag++;}else if(str[k]>47&&str[k]<58&&flag==1){ //输入的字符可能是10-13所以用t=1表示这是在处理个位数num2=(int)str[k]-48;num=num1*10+num2;flag++;}else if((str[k]>=40&&str[k]<=43) || str[k]==35 || str[k]==45 ||str[k]==47){if(flag==1){ //将0-9插入数组p[j] = num1;j++;}else if(flag==2){ //将10-13插入数组 p[j] = num;j++;}p[j] = str[k]; //将字符插入数组j++;flag=0;}else{printf("%c是错误的字符!\n",str[k]);}} i=strlen(str)-1; //因为前面是遇到运算符才将数字插入数组,所以还剩最后一个整数没插入if(str[i]>47&&str[i]<58){if(str[i-1]>47&&str[i-1]<58){p[j] = num;j++;}else{p[j] = num1;j++;}}p[j]=35;*ilen = j;return p;}
/*括号的几种情况*/
//第一种情况,无括号a*b*c*d
int express_1(int *exp){int expr[10];int p,q,m,n;int i,j,k;int a;for(m=0;m<4;m++){for(n=0;n<4;n++){ if(n==m){continue;}for(p=0;p<4;p++){ if(p==n||p==m){continue;}for(q=0;q<4;q++){if(q==p||q==m||q==n){continue;} expr[0] = exp[q];expr[2] = exp[p];expr[4] = exp[n];expr[6] = exp[m]; for(i=0;i<4;i++){for(j=0;j<4;j++){for(k=0;k<4;k++){expr[1] = operator_int[k];expr[3] = operator_int[j];expr[5] = operator_int[i];expr[7] = operator_int[6];if(calc_expr_int(expr) == 24){printf("\n可以计算出结果为24的表达式为:\n");for(a=0;a<7;a++){ if(expr[a]<=39||expr[a]>57||expr[a]==44||expr[a]==46){printf("%d",expr[a]);}else{printf("%c",expr[a]);}}printf("\n");return 1;}}}} }}}}return 0;
}
//第二种情况 (a b) c d,同a b (c d), 下省略
int express_2(int *exp){int expr[10];int p,q,m,n;int i,j,k;int a;for(m=0;m<4;m++){for(n=0;n<4;n++){ if(n==m){continue;}for(p=0;p<4;p++){ if(p==n||p==m){continue;}for(q=0;q<4;q++){if(q==p||q==m||q==n){continue;} expr[1] = exp[q];expr[3] = exp[p];expr[6] = exp[n];expr[8] = exp[m]; for(i=0;i<4;i++){for(j=0;j<4;j++){for(k=0;k<4;k++){expr[2] = operator_int[k];expr[5] = operator_int[j];expr[7] = operator_int[i]; expr[0] = operator_int[4];expr[4] = operator_int[5];expr[9] = operator_int[6];if(calc_expr_int(expr) == 24){printf("\n可以计算出结果为24的表达式为:\n");for(a=0;a<9;a++){ if(expr[a]<=39||expr[a]>57||expr[a]==44||expr[a]==46){printf("%d",expr[a]);}else{printf("%c",expr[a]);}}printf("\n\n");return 1;}}}} }}}}return 0;
}
//第三种情况(a b c) d
int express_3(int *exp){int expr[10];int p,q,m,n;int i,j,k;int a;for(m=0;m<4;m++){for(n=0;n<4;n++){ if(n==m){continue;}for(p=0;p<4;p++){ if(p==n||p==m){continue;}for(q=0;q<4;q++){if(q==p||q==m||q==n){continue;} expr[1] = exp[q];expr[3] = exp[p];expr[5] = exp[n];expr[8] = exp[m]; for(i=0;i<4;i++){for(j=0;j<4;j++){for(k=0;k<4;k++){expr[2] = operator_int[k];expr[4] = operator_int[j];expr[7] = operator_int[i]; expr[0] = operator_int[4];expr[6] = operator_int[5];expr[9] = operator_int[6];if(calc_expr_int(expr) == 24){printf("\n可以计算出结果为24的表达式为:\n");for(a=0;a<9;a++){ if(expr[a]<=39||expr[a]>57||expr[a]==44||expr[a]==46){printf("%d",expr[a]);}else{printf("%c",expr[a]);}}printf("\n");return 1;}}}} }}}}return 0;
}
//第四种情况a (b c) d
int express_4(int *exp){int expr[10];int p,q,m,n;int i,j,k;int a;for(m=0;m<4;m++){for(n=0;n<4;n++){ if(n==m){continue;}for(p=0;p<4;p++){ if(p==n||p==m){continue;}for(q=0;q<4;q++){if(q==p||q==m||q==n){continue;} expr[0] = exp[q]; expr[3] = exp[p];expr[5] = exp[n]; expr[8] = exp[m]; for(i=0;i<4;i++){for(j=0;j<4;j++){for(k=0;k<4;k++){expr[1] = operator_int[k];expr[4] = operator_int[j];expr[7] = operator_int[i];expr[2] = operator_int[4];expr[6] = operator_int[5];expr[9] = operator_int[6];if(calc_expr_int(expr) == 24){printf("\n可以计算出结果为24的表达式为:\n");for(a=0;a<9;a++){ if(expr[a]<=39||expr[a]>57||expr[a]==44||expr[a]==46){printf("%d",expr[a]);}else{printf("%c",expr[a]);}}printf("\n");return 1;}}}} }}}}return 0;
}
//第五种情况(a b) (c d)
int express_5(int *exp){int expr[12];int p,q,m,n;int i,j,k;int a;for(m=0;m<4;m++){for(n=0;n<4;n++){ if(n==m){continue;}for(p=0;p<4;p++){ if(p==n||p==m){continue;}for(q=0;q<4;q++){if(q==p||q==m||q==n){continue;} expr[1] = exp[q];expr[3] = exp[p];expr[7] = exp[n];expr[9] = exp[m]; for(i=0;i<4;i++){for(j=0;j<4;j++){for(k=0;k<4;k++){expr[2] = operator_int[k];expr[5] = operator_int[j];expr[8] = operator_int[i];expr[0] = operator_int[4];expr[4] = operator_int[5];expr[6] = operator_int[4];expr[10] = operator_int[5];expr[11] = operator_int[6]; if(calc_expr_int(expr) == 24){printf("\n可以计算出结果为24的表达式为:\n");for(a=0;a<11;a++){ if(expr[a]<=39||expr[a]>57||expr[a]==44||expr[a]==46){printf("%d",expr[a]);}else{printf("%c",expr[a]);}}printf("\n");return 1;}}}} }}}}return 0;
}
//第六种情况((a b) c) d
int express_6(int *exp){int expr[12];int p,q,m,n;int i,j,k;int a;for(m=0;m<4;m++){for(n=0;n<4;n++){ if(n==m){continue;}for(p=0;p<4;p++){ if(p==n||p==m){continue;}for(q=0;q<4;q++){if(q==p||q==m||q==n){continue;} expr[2] = exp[q];expr[4] = exp[p];expr[7] = exp[n];expr[10] = exp[m]; for(i=0;i<4;i++){for(j=0;j<4;j++){for(k=0;k<4;k++){expr[3] = operator_int[k];expr[6] = operator_int[j];expr[9] = operator_int[i];expr[0] = operator_int[4];expr[8] = operator_int[5];expr[1] = operator_int[4];expr[5] = operator_int[5];expr[11] = operator_int[6];if(calc_expr_int(expr) == 24){printf("\n可以计算出结果为24的表达式为:\n");for(a=0;a<11;a++){ if(expr[a]<=39||expr[a]>57||expr[a]==44||expr[a]==46){printf("%d",expr[a]);}else{printf("%c",expr[a]);}}printf("\n");return 1;}}}} }}}}return 0;
}
//第七种情况(a (b c)) d
int express_7(int *exp){int expr[12];int p,q,m,n;int i,j,k;int a,ret; for(m=0;m<4;m++){for(n=0;n<4;n++){ if(n==m){continue;}for(p=0;p<4;p++){ if(p==n||p==m){continue;}for(q=0;q<4;q++){if(q==p||q==m||q==n){continue;}expr[1] = exp[m];expr[4] = exp[n];expr[6] = exp[p];expr[10] = exp[q];for(i=0;i<4;i++){for(j=0;j<4;j++){for(k=0;k<4;k++){expr[2] = operator_int[i];expr[5] = operator_int[j];expr[9] = operator_int[k];expr[0] = operator_int[4];expr[8] = operator_int[5];expr[3] = operator_int[4];expr[7] = operator_int[5];expr[11] = operator_int[6];ret = calc_expr_int(expr);if( ret == 24){ printf("\n可以计算出结果为24的表达式为:\n");for(a=0;a<11;a++){ if(expr[a]<=39||expr[a]>57||expr[a]==44||expr[a]==46){printf("%d",expr[a]);}else{printf("%c",expr[a]);}}printf("\n");return 1;}}}} }}}} return 0;
}
int calculation24(int *arr){if(express_1(arr)){return 1;}else if(express_2(arr)){return 1;}else if(express_3(arr)){return 1;}else if(express_4(arr)){return 1;}else if(express_5(arr)){return 1;}else if(express_6(arr)){return 1;}else if(express_7(arr)){return 1;}else{return 0;}
}
int check_num(char *arr){ int i,j,k;int *iarr;int tmp[4];for(k=0;k<4;k++){tmp[k] = rad_num[k];}iarr = str_to_int(arr,&arr_len);for(i=0;i<arr_len;i++){ if((iarr[i]>=0&&iarr[i]<=13)||(iarr[i]>=40&&iarr[i]<=43) || iarr[i]==35 || iarr[i]==45 ||iarr[i]==47){ if(iarr[i]>=0&&iarr[i]<=13){for(j=0;j<4;j++){if(iarr[i] == tmp[j]){ tmp[j] = -1; //使用tmp数组作为标记,如果不能全部清零证明重复使用给出的某个数字break;}}if(j>=4){return 0;}}else{for(j=0;j<7;j++){if(iarr[i] = operator_int[j]){break;} }if(j>=7){return 0;}}}else{ return 0;}}for(k=0;k<4;k++){if(tmp[k] > 0){return 0;}}return 1;
}
//enter函数
void enter(int x){for(int i=0;i<x;i++)printf("\n");
}
//tab函数
void tab(int x){for(int i=0;i<x;i++)printf("\t");
}
//启动
void start(){system("cls");int m,i;for(m=0;m<1;m++){system("color B"); //设置默认的控制台前景和背景颜色enter(7);tab(3);printf(" 欢迎来到24点休闲小游戏 ");enter(2);tab(2);printf(" 正在加载中 ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 1 endenter(7);tab(3);printf(" 欢迎来到24点休闲小游戏 ");enter(2);tab(2);printf(" 正在加载中 ■■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 2 end enter(7);tab(3);printf(" 欢迎来到24点休闲小游戏 ");enter(2);tab(2);printf(" 正在加载中 ■■■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 3 end enter(7);tab(3);printf(" 欢迎来到24点休闲小游戏 ");enter(2);tab(2);printf(" 正在加载中 ■■■■");enter(1);tab(4); for(i=0;i<100000000;i++) {}system("cls"); //circle 4 endenter(7);tab(3);printf(" 欢迎来到24点休闲小游戏 ");enter(2);tab(2);printf(" 正在加载中 ■■■■■");enter(1);tab(4);for(i=0;i<100000000;i++) {}system("cls"); //circle 5 end enter(7);tab(3);printf(" 欢迎来到24点休闲小游戏 ");enter(2);tab(2);printf(" 正在加载中 ■■■■■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 6 endenter(7);tab(3);printf(" 欢迎来到24点休闲小游戏 ");enter(2);tab(2);printf(" 正在加载中 ■■■■■■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 7 end enter(7);tab(3);printf(" 欢迎来到24点休闲小游戏 ");enter(2);tab(2);printf(" 正在加载中 ■■■■■■■");enter(1);tab(4);for(i=0;i<100000000;i++) {}system("cls"); //circle 8 end enter(7);tab(3);printf(" 欢迎来到24点休闲小游戏 ");enter(2);tab(2);printf(" 正在加载中 ■■■■■■■■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 9 end}
}
char name[20] = "hening"; //游戏账号登陆用户姓名
char password[20] = "123456"; //登录密码
//登陆函数
void login(){ system("color E"); char count[20];char pass[20];int i;while(1){ system("cls");enter(7);tab(3);printf(" 游戏账号登录 ");enter(2);tab(3);printf("用户名称:");scanf("%s",count);if(strcmp(count,name)==0){leap:system("cls");enter(7);tab(3);printf(" 游戏账号登录 "); enter(2);tab(3);printf("登录密码:");scanf("%s",pass);getchar();if(strcmp(pass,password) == 0){ break;}else{ tab(4);printf("输入密码有误,请重新输入:\n");for(i=0;i<500000000;i++);goto leap;}}else{tab(4);printf("输入密码有误,请重新输入:\n");for(i=0;i<500000000;i++);}}
}
//主函数
int main(){ char c,q;int y_n = 1;int curr_mode = 1;int mode = 1;int right_count = 0;int all_count = 0;char express[50];int quit = 0; start(); login();while(!quit){ system("cls");system("color 7"); printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n");printf(" * 欢迎来到24点休闲小游戏 *\n\n");printf(" * [0]:计算机随机给出四个数字,用户输入正确表达式! *\n\n");printf(" * [1]:用户输入四个数字,计算机给出符合条件的表达式! *\n\n");printf(" * [2]:游戏退出! *\n\n");printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n");printf("\n\n请选择编号:");c = getchar();getchar();printf("\n");system("cls");if(c == '0'){ curr_mode = 1;while(curr_mode){ random_num();printf("计算机给出的四个数字是:\n");printf("\t\t\t%d %d %d %d\n",rad_num[0],rad_num[1],rad_num[2],rad_num[3]);printf("\n请你输入正确的表达式,如果你认为这四个数算不出24点,请输入'?'\n");printf("\n你的答案是:");scanf("%s",express);getchar();if(strcmp("?",express) == 0){ system("cls");if(calculation24(rad_num)){ all_count++;printf("给出的数字是能计算出24的,所以你回答错误!\n\n");}else{ printf("恭喜你,算对了!\n\n");all_count++;right_count++;}}else{ while(!check_num(express)){printf("你的表达式格式不正确,请重新输入:");scanf("%s",express);getchar();}printf("\n");system("cls");if(calc_expr_int(str_to_int(express,&arr_len)) != 24){all_count++;printf("对不起,你算错了!\n\n");}else{ printf("恭喜你,算对了!\n\n");all_count++;right_count++;}} printf("是否继续这个模式?请选择: 'y':继续 'n':退出?\n\n");y_n = 1;while(y_n){ q = getchar();getchar();if(q == 'y'|| q == 'Y') {curr_mode = 1;y_n = 0;printf("\n");}else if(q == 'N' || q == 'n'){curr_mode = 0;y_n = 0;printf("\n");}else{ printf("\n");printf("输入错误,请重新输入[Y|N]:");y_n = 1;}}}printf("是否继续这个模式?请选择: 'y':继续 'n':退出?\n\n");y_n = 1;while(y_n){ scanf("%c",&c);getchar();if(c == 'Y'||c == 'y'){quit = 0;y_n = 0;printf("\n");}else if(c == 'N' || c == 'n'){ quit = 1;y_n = 0;printf("\n");printf("\t\t********************\n");printf("\t\t* 用户总答题:%d *\n",all_count);printf("\t\t* 用户共答对:%d *\n",right_count);printf("\t\t********************\n");printf("\t\t\t\t游戏退出成功!!!\n\n\n\n\n");}else{ printf("\n");printf("输入错误,请选择:");y_n = 1;}}} else if(c == '1'){ int ret;mode = 1;while(mode == 1){printf("请输入0-13之间的4个数字:");scanf("%d%d%d%d",&rad_num[0],&rad_num[1],&rad_num[2],&rad_num[3]);getchar();while(rad_num[0] > 13 || rad_num[0] < 0 || rad_num[1] > 13 || rad_num[1] < 0 ||rad_num[2] > 13 || rad_num[2] < 0 || rad_num[3] > 13 || rad_num[3] < 0){printf("不好意思,你输入的数字必须在0-13之间,请重新输入:");scanf("%d%d%d%d",&rad_num[0],&rad_num[1],&rad_num[2],&rad_num[3]);getchar();} system("cls");ret = calculation24(rad_num);if(ret == 0){ all_count++;printf("\n输入有误,你输入的数字不能构造一个值为24的表达式!\n\n");printf("\n");}else{ all_count++;right_count++;}printf("是否继续这个模式?请选择: 'y':继续 'n':退出?\n\n");y_n = 1;while(y_n){ scanf("%c",&q);getchar();if(q == 'y'|| q == 'Y'){mode = 1;y_n = 0;printf("\n");}else if(q == 'N' || q == 'n'){mode = 0;y_n = 0;printf("\n");}else{ printf("\n");printf("输入错误,请重新输入[Y|N]:");y_n = 1;}}}printf("是否继续这个模式?请选择: 'y':继续 'n':退出?\n\n");y_n = 1;while(y_n){ scanf("%c",&c);getchar();if(c == 'Y'||c == 'y'){quit = 0;y_n = 0;printf("\n");}else if(c == 'N' || c == 'n'){ quit = 1;y_n = 0;printf("\n");printf("\t\t********************\n");printf("\t\t* 用户总答题:%d *\n",all_count);printf("\t\t* 用户共答对:%d *\n",right_count);printf("\t\t********************\n");printf("\t\t\t\t游戏退出成功!!!\n\n\n\n\n");}else{ printf("\n");printf("输入错误,请选择:");y_n = 1;}}}else{ quit = 1;printf("\t\t********************\n");printf("\t\t* 用户总答题:%d *\n",all_count);printf("\t\t* 用户共答对:%d *\n",right_count);printf("\t\t********************\n");printf("\t\t\t\t游戏退出成功!!!\n\n\n\n\n");printf("\t\t\t\t游戏退出成功!!!\n\n\n\n\n");return 0;}}return 0;}
5.2时间倒计时
char count(UCHAR m, UCHAR s){if( m > 59 || s > 59)return -1;while(m || s){do{system("cls"); printf("%d分%d秒",m,s);Sleep(1000);}while(s--);s = 0;if(m > 0){s = 59;m--;}}return 0;
}
int main(int argc, char **argv) {if(count(1,3) == 0)printf("时间到,游戏结束!\n");elseprintf("错误!\n");Sleep(2000);system("pause");return 0;
}
5.3登录
char name[20] = "hening"; //游戏账号登陆用户姓名
char password[20] = "123456"; //登录密码
6. 运行结果
24点休闲益智小游戏相关推荐
- 《彩色方块对对碰 Android 版》(TetraVex) 经典休闲益智类游戏免费发布!
前几天写的一个休闲益智类游戏 <彩色方块对对碰 Android 版>(TetraVex) 终于免费发布了!庆祝一下,欢迎大家下载! 免费下载: 1. http://echozhy.goog ...
- c语言设置一个选择数字的程序,C语言编一个数字益智小游戏
程序功能及运行情况 设计的程序是一个数字益智游戏,旨在培养小朋友玩家的数学思维,提高玩家的数学能力.游戏共设有四个不同的小游戏,分别是一位数四则运算.两位数四则运算.找最值游戏.排序游戏.程序能实现产 ...
- 益智小游戏《测试脑力》源码H5+安卓+IOS三端源码
cocos creator2.4.2 益智小游戏<测试脑力>源码H5+安卓+IOS三端源码,开发脚本为typeScript方便扩展和阅读,支持cocos creator2.X版本,完整的源 ...
- C语言:数字益智小游戏
程序功能及运行情况 设计的程序是一个数字益智游戏,旨在培养小朋友玩家的数学思维,提高玩家的数学能力.游戏共设有四个不同的小游戏,分别是一位数四则运算.两位数四则运算.找最值游戏.排序游戏.程序能实现产 ...
- 《游戏开发》html5 益智小游戏-小熊吃星星
游戏截图 项目结构 一共3个文件 分别为 index.html script.js style.css index.html文件源码展示 <!DOCTYPE html> <htm ...
- 【lvgl游戏开发】用lvgl写了一个数字对拼图益智小游戏
文章目录 游戏说明 实现原理 演示效果 实现代码 游戏说明 单击方格用于显示数字.匹配两个数字,方格将显示从而显示图像. 实现原理 // TODO 演示效果 [lvgl游戏开发]用lvgl写了一个数字 ...
- 趣味益智小游戏 三子棋+五子棋 优化版(可任意选择棋盘大小)
前言 今天牛牛给大家分享的是c语言实现三子棋和五子棋游戏,初学者可能有些不理解的地方,记得私信提问哦,牛牛会一 一回答的. 目录 前言 一.游戏介绍 二.游戏设计思路 2.1 主函数测试区(test. ...
- cocos creator2.2.1益智小游戏源码《环与环》源码H5+安卓+IOS三端源码
cocos creator2.2.1益智小游戏源码<环与环>源码H5+安卓+IOS三端源码,开发脚本为typeScript方便扩展和阅读,支持cocos creator2.X版本,完整的源 ...
- 基于 python 的德云消消乐益智小游戏设计论文+源码
计科在读分享自己做过的课题设计作业 有意可私信了解 目录 第一章 引言 II 1.1 课题背景 1 1.2 目的和意义 1 1.3 国内外的发展现状 1 1.4 开发环境 1 第二章系统开发平台的阐述 ...
最新文章
- Java语法基础-序列化
- php商城的购物车功能,PHP实现添加购物车功能
- 音视频技术在云会议场景的拓展和未来
- java 两个窗口 贴_粘贴子窗体中的多个记录时的子窗体校准错误
- ws配置 zuul_微服务网关 Spring Cloud Gateway
- 一分钟带你全面了解计算机考研常识,让你对考研不再陌生!
- 遥感技术在水利行业中的应用
- 设置Excel单元格下拉列表的方法
- 关于 Android 8.0 gts 的 widevine 类问题 GtsMediaTestCases / GtsExoPlayerTestCases
- Spring的AOP中的责任链模式
- 如何同步企业微信的标签?
- 使用svg实现的曲线时间线 2022-01-09
- python_误差分析
- tmux简洁教程及config关键配置
- 支付宝支付API之签名与验签
- 什么是好的数据分析?化繁为简的力量
- ncm 网络_HS-NCM超高速网卡
- 【神器出炉】微信/QQ/TIM,如何查看对方撤回的消息?
- loachost 1.php,云豹短视频系统搭建部署文档
- 计算机默认网关不可用如何解决问题,Win10网络诊断后提示“默认网关不可用”的问题怎么解决?...