📄 printpk.c
字号:
/* * 将随机生成的4张牌克输出到屏幕 */#include "../inc/screen.h"#include "./../inc/DefineConst.h"extern int MarkNum; /**获得的分数**/static char NumberChar[ 10 ][ 2 ] = { "0" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" } ;char * PrintBKToScr( int a1, int a2, int a3, int a4 ){ static char CalStr[ 81 ] ; memset( CalStr, 0x00, sizeof( CalStr )) ; rubber( 20, 79, 6, 20 ); /*设置背景和文本的颜色*/ /**扑克牌a1**/ window( 25, 29, 7, 9 ); PrtSet( 31 ); plot( 26, 6, "牌1" ); PrtSet( 37 ); plot( 27, 8, NumberChar[ a1 ] ); /**扑克牌a1**/ window( 35, 39, 7, 9 ); PrtSet( 34 ); plot( 36, 6, "牌2" ); PrtSet( 37 ); plot( 37, 8, NumberChar[ a2 ] ); /**扑克牌a1**/ window( 45, 49, 7, 9 ); PrtSet( 35 ); plot( 46, 6, "牌3" ); PrtSet( 37 ); plot( 47, 8, NumberChar[ a3 ] ); /**扑克牌a1**/ window( 55, 59, 7, 9 ); PrtSet( 36 ); plot( 56, 6, "牌4" ); PrtSet( 37 ); plot( 57, 8, NumberChar[ a4 ] ); /**游戏规则显示**/ window( 2, 22, 5, 20 ); PrtSet( 33 ); plot( 4, 6, "游戏规则: " ); plot( 4, 7, "1.运算符仅为+-*/" ); plot( 4, 8, "2.括号最多两对且括" ); plot( 4, 9, " 号中不能套括号" ); plot( 4, 10, "3.每个数字仅用一次" ); plot( 4, 11, "4.括号尽可能往前放" ); plot( 4, 12, "5.尽可能不用括号" ); plot( 4, 14,"实例: √正解 Χ错" ); plot( 4, 15,"√ a+b*c/d" ); plot( 4, 16,"√ (a+b-c)*d" ); plot( 4, 17,"√ (a+b)*(c-d)" ); plot( 4, 18,"Χ ((a+b)-c))*d" ); plot( 4, 19,"Χ (a+a)*(c-d)" ); PrtSet( 37 ); /**显示时间**/ plot( 51, 2, getsystime()); /**显示滚动条**/ /**显示分数**/ { char TmpStr[10]; InitStr( TmpStr ); sprintf( TmpStr, "%05d", MarkNum ); plot( 69, 2, TmpStr ); } PrtSet( 1 ); PrtSet( 36 ); plot( 25, 14, "请输入计算公式: " ); PrtSet( 2 ); PrtSet( 37 ); wrdstr_cff( 40, 14, CalStr ); return( CalStr );}void StartGame(){ int a1, a2, a3, a4; char *CalStr; int Result ; char ErrMsg[ 100 ] ; struct timeb time1, time2 ; int IntvalTime ; /**时间间隔**/ a1=a2=a3=a4=0 ; Result=0 ; IntvalTime=0; InitStr( ErrMsg ) ; a1 = randnum(); a2 = randnum(); a3 = randnum(); a4 = randnum(); /**获得当前时间**/ GetCuryTime( &time1 ); /*获得计算公式**/ CalStr = PrintBKToScr( a1, a2, a3, a4 ); /**分析输入字符串是否符合规则**/ while( ( strlen( CalStr ) > 0 ) && ( AnalyCalStr( CalStr, a1, a2, a3, a4, ErrMsg ) == 0 ) ) { Prompt( ErrMsg ) ; getchar(); CalStr = PrintBKToScr( a1, a2, a3, a4 ); } /**计算输入的公式**/ while( ( Result != 24 ) && ( strlen( CalStr ) > 0 ) ) { /**计算出结果**/ Result=AnaStrAndCal( CalStr, a1, a2, a3, a4 ); if( Result == 24) { GetCuryTime( &time2 ); IntvalTime=IntervalTime( time1, time2 ); if( IntvalTime <= 30 ) MarkNum += 300; if( (IntvalTime > 30) && (IntvalTime <=60) ) MarkNum += 200; if( IntvalTime > 60 ) MarkNum += 100; Prompt( "祝贺你过关!按回车键进入下一关..." ); getchar(); } else { Prompt( "计算结果错误!按回车键重新输入计算..." ); getchar(); CalStr = PrintBKToScr( a1, a2, a3, a4 ); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -