⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guessnum.h

📁 该源代码是在liunx下使用QT语言开发的一个猜数字练习程序
💻 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 + -