显示功能

辽师张大为@https://daweizh.github.io/csp/

现在你通过命令行可以设置出题的显示方式和每局的试题数了,但一些关键的显示问题仍然没有解决,如横式或竖式的显示问题,得分的显示问题等。

display.h

鼠标右击arith项目,选择New File

输入如下程序代码

void problem(char disp,long long x,char opt,long long y){

	return ;
}


void score(double correct,double wrong,double overtime,double num){
	
	return ;
}

按Ctrl+s保存

输入文件名display.h点击保存

在main.cpp中增加语句

#include "display.h"

double correct=0;	//做对题数 
double wrong=0;		//做错题数 
double overtime=0;	//超时题数 

如下图

显示试题

在display.h中完善如下函数

void problem(char disp,long long x,char opt,long long y){
	switch(disp){
		case 'h':
			printf("%lld%c%lld=",x,opt,y);
			break;
		case 'v':
			printf("%25lld\n",x);
			printf("%c %23lld\n",opt,y);
			printf("-------------------------\n");
			printf("=");
			break;
	}
	return ;
}

按Ctrl+s保存display.h,回到main.cpp增加如下语句:

按Ctrl+s保存main.cpp,按F12重新构造全部。

进入命令终端,带--disp v运行游戏程序:

F:\a.steam\dreamx\wedo\game\arith>arith --disp v
Please select level([1]-18):
Please select operator([+],-):
Please select Hard([1]-60):
level=1,opt=+,hard=1,disp=v,numb=10

                    25224
+                    9978
-------------------------
=35202
Right!

显示得分及冠名

在display.h中继续完善如下函数:

void score(double correct,double wrong,double overtime,double num){
	printf("right\twrong\tovertime \n");
	printf("--------------------------------- \n");
	printf("%d\t%d\t%d \n",(int)correct,(int)wrong,(int)overtime);

	int score = (correct+overtime*.5) * 100 / num;
	
	printf("\nscore=%d\t",score);
	if(score==100)
		printf("king\n");
	else if(score>=90)
		printf("excellent\n");
	else if(score>=80)
		printf("perfect\n");
	else if(score>=70)
		printf("ok\n");
	else if(score>=60)
		printf("low\n");
	else
		printf("bad\n");
	
	return ;
}

按Ctrl+s保存display.h,回到main.cpp增加如下语句:

按Ctrl+s保存main.cpp,按F12重新构造全部。

进入命令终端,带--disp v --numb 3运行游戏程序:

F:\a.steam\dreamx\wedo\game\arith>arith --disp v --numb 3
Please select level([1]-18):
Please select operator([+],-):
Please select Hard([1]-60):
level=1,opt=+,hard=1,disp=v,numb=3

                    27879
+                   32145
-------------------------
=3
Error!
                    23619
+                   27987
-------------------------
=3
Error!
                    21793
+                    9578
-------------------------
=3
Error!


right   wrong   overtime
---------------------------------
0       0       0

score=0 bad

F:\a.steam\dreamx\wedo\game\arith>