一个简单的猜数游戏

上次的计算器,使大家过了一把开发的干瘾吧,今天教大家开发一个好玩的猜数游戏


在做之前让大家先睹为快

游戏界面                                                            出题

一个简单的猜数游戏_第1张图片一个简单的猜数游戏_第2张图片


猜数:

一个简单的猜数游戏_第3张图片一个简单的猜数游戏_第4张图片


一个简单的猜数游戏_第5张图片


首先是老规矩,打开VC6.0--->创建Win32 DialogBased Application工程--->工程名为:猜数

将程序的名字改为猜数

一个简单的猜数游戏_第6张图片


在图形界面上放几个控件,摆成如下所示的界面,在使用控件时候,会用到一个新的控件“静态文本”

一个简单的猜数游戏_第7张图片


摆成如下所示的界面

一个简单的猜数游戏_第8张图片

修改控件的名字和ID;请参考上一篇《自己动手写计算器》

控件名

控件的ID

猜数(1~~100)之间的整数

IDC_STATIC

编辑框

IDC_EDIT1

出题

IDC_BUTTON1

确认

IDC_OK

退出

IDC_EXIT

 

函数:

函数名: rand()

函数功能:产生随机数

应用:产生十个100以内的随机数

#include 
#include 

int main()
{
	for(int i=0;i<10;i++)
	{
		printf("%d\n",rand()%100);
	}

	return 0;
}


执行结果:

一个简单的猜数游戏_第9张图片


函数名: srand((unsigned)time(&a));

函数功能:随机数种子(产生随时间变化的随机数)

应用:利用随机数种子产生十个100以内的随机数

#include 
#include 
#include 

int main()
{
	time_t a;//时间

	//随机数种子
	srand((unsigned)time(&a));

	for(int i=0;i<10;i++)
	{
		printf("%d\n",rand()%100);
	}

	return 0;
}


执行结果:

一个简单的猜数游戏_第10张图片


函数名:Static_SetText

函数功能:在静态文本中显示数据

函数原型:

int Static_SetText(
  HWND hwndCtl,
  LPTSTR lpsz
);

参数:

第一个参数:控件的句柄

第二个参数:在控件中显示的字符串


参考文章:Static_SetText


程序代码:

#include "stdafx.h"
#include 
#include 
#include 
#include "resource.h"
#include "MainDlg.h"

BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
        HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
        HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
		HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
    }

    return FALSE;
}

BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{	
    return TRUE;
}

int i1 = 0;
int i2 = 0;

//产生随机数
void GetRand(HWND hwnd)
{
	time_t a;//时间

	//随机种子
	srand((unsigned)time(&a));

	i1 = rand () % 100;

	MessageBox(hwnd,TEXT("游戏中已产生了一个数字,请猜"),TEXT("提示"),MB_OK);
}


void Result(HWND hwnd)
{
	TCHAR str[256];/*储存你猜的数*/

	GetDlgItemText(hwnd,IDC_EDIT1,str,sizeof(str));/*获取玩家输入的数字*/

    HWND hwndStatic = GetDlgItem(hwnd,IDC_STATIC1);/*得到静态文本框的句柄*/


	i2 = atoi(str);/*将玩家输入的数字转换为整数*/
	
	if(i2 > i1)
	{
		Static_SetText(hwndStatic,TEXT("猜大了,请再猜!"));
	}
	else if(i2 < i1)
	{
		Static_SetText(hwndStatic,TEXT("猜小了,请再猜!"));
	}
   else
   {
	   Static_SetText(hwndStatic,TEXT("猜中了,你非常幸运!"));
   }
}


void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    { 
		//出题
	    case IDC_BUTTON1:
		{
			GetRand(hwnd);
		}
		break;

		/*确定*/
	    case IDC_OK:
		{
			Result(hwnd);
		}
		break;
		
		/*退出游戏*/
		case IDC_EXIT:
		{
			int ret = MessageBox(hwnd,TEXT("游戏正在进行中,是否退出?"),"",MB_YESNO | MB_ICONQUESTION);

			if(IDYES == ret)
			{
				exit(-1);/*退出游戏*/
			}
				}
				break;
				default:
				break;
    }
}

void Main_OnClose(HWND hwnd)
{
    EndDialog(hwnd, 0);
}

猜数游戏下载

你可能感兴趣的:(Win32,API编程)