一个简单的猜数游戏

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


在做之前让大家先睹为快

游戏界面                                                            出题


猜数:



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

将程序的名字改为猜数


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


摆成如下所示的界面

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

控件名

控件的ID

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

IDC_STATIC

编辑框

IDC_EDIT1

出题

IDC_BUTTON1

确认

IDC_OK

退出

IDC_EXIT

 

函数:

函数名: rand()

函数功能:产生随机数

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

#include <stdio.h>
#include <stdlib.h>

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

	return 0;
}


执行结果:


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

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

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

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

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

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

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

	return 0;
}


执行结果:


函数名:Static_SetText

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

函数原型:

int Static_SetText(
  HWND hwndCtl,
  LPTSTR lpsz
);

参数:

第一个参数:控件的句柄

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


参考文章:Static_SetText


程序代码:

#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include <time.h>
#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);
}

猜数游戏下载

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值