📄 guessnum.h
字号:
#ifndef __LLF_GUESS_CLASS_H_FILE__
#define __LLF_GUESS_CLASS_H_FILE__
#include <time.h>
#include <stdlib.h>
#define random(num) (rand() % (num))
#define randomize() (srand((unsigned)time(NULL)))
///////////////////////////////////////////////
class GuessNum
{
////////////////////内部数据//////////////
private:
char o[5];
char r[5];
int gt;
bool iw;
////////////////////成员函数//////////////
public:
////////////////////构造函数//////////////
GuessNum()
{
strcpy(o, "0123");
strcpy(r, "0A0B");
gt = 0;
iw = false;
GetRndNum();
}
////////////////////成员函数//////////////
bool isWin() { return iw; }
////////////////////成员函数//////////////
int GetGuessTimes() { return gt; }
private:
void GetRndNum()
{
int i, rdata;
char temp;
char qq[] = {'0','1','2','3','4','5','6','7','8','9'};
// 以下为初始化数字序列和产生随机的四个数字的部分,
// 用这种方法在于可以确保数字无重复。
randomize();
for(i=9;i>0;i--)
{
rdata = random(i+1);
temp = qq[rdata];
qq[rdata] = qq[i];
qq[i] = temp;
}
for(i=0;i<4;i++)
{
o[i] = qq[i];
}
}
////////////////////成员函数//////////////
public:
bool InputOK(char *s)
{
if(strlen(s) == 4)
for(int i=0; i<4; i++)
if(s[i] >= '0' && s[i] <= '9')
return true;
return false;
}
////////////////////成员函数//////////////
const char *GetHideNum() { return o; }
////////////////////成员函数//////////////
char *GuessIt(char *s)
{
int x = 0, y = 0, i = 0, j = 0;
for(i=0;i<4;i++)
if(s[i] == o[i])
++x;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(s[i] == o[j])
++y;
y = y - x;
r[0] = x + '0';
r[2] = y + '0';
if(x >= 4) iw=true;
++gt;
return r;
}
};
///////////////////////////////////////////////
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -