一个简单的猜数游戏

来源:互联网 发布:大通医药软件 编辑:程序博客网 时间:2024/05/22 04:29

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


在做之前让大家先睹为快

游戏界面                                                            出题


猜数:



首先是老规矩,打开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);}

猜数游戏下载

0 0