1.如何用C++写扫雷
用VC++编写扫雷游戏 王洪亚 本文从分析windows扫雷游戏的功能特点开始,应用面向对象的可视化编程语言visual c++给出了个功能模块的具体实现方法,并提供了编写小游戏程序的一般方法和visual c++的一些使用技巧。
首先分析扫雷的最基本功能。 点击鼠标左键于未知区域,如果未知区域有雷,游戏停止,显示所有的地雷。
如果没雷,则显示周围雷数,如果周围没雷,则再查看周围八个区域是否有雷直到有雷为止并显示,这其实是一个递归过程。 点击鼠标右键于未知区域,则将其置为有雷而不管是否真的有雷。
可选择初、中、高三级并可自定义雷数和区域大小。 雷区上部左侧显示总雷数减被标明有雷区域的数目。
雷区上部中间位置显示一按钮用于开局和显示鼠标动作的结果。 雷区上部右侧显示扫雷的时间。
将雷全部扫清后,则显示一对话框将你的姓名记入排行榜。以时间排序。
为完成上述功能,应用visual c++的具体技术细节如下: 1. 应用appwizard创建基于sdi的应用程序cbombapp,去除打印和状态条支持,在资源编辑器中修改菜单和相应的加速键,使其与windows扫雷游戏一致。具体为开局(id-game-begin)、初级(id-game-junior)、中级(id-game-middle)、高级(id-game-senior)、自定义(id-game-custom)、颜色(id-game-color)、英雄榜(id-game-sort)、退出(id-game-exit)、帮助(id-help)。
2. 在资源编辑器中对应于雷区的每个小区域的13个属性。用画笔或其他绘图工具绘制出相对应的13个10乘10的16色小位图,三个对应于小人表情的20乘20的16色小位图,供更换颜色时使用的一套与前16个对应的单色位图,显示时间和雷数的0~9十个数字位图(底色为黑色)。
定制customer对话框,内含三个静态文本控件和三个编辑控件,三个编辑控件分别对应成员m_irownum,m_icolumnnum,m_ibombnum。该对话框用于定制雷数,行列数,其相应的mfc类为ccustomer。
定制sort对话框,内含九个静态文本控件,其中六个显示排行榜的姓名和时间,其对应的mfc类为csort。定制input对话框,内含一个静态文本控件和一个编辑控件,编辑控件用于在游戏成功结束时输入姓名,其对应的mfc类为cinput。
3. 定义类bomb,封装每颗雷的相关属性。 class bomb { public: int isbomb;//决定初始时是否是雷 bool issel; //判断区域是否被处理过且周围有雷 bool isdone;//判断递归时是否被处理过 int num; //周围雷数 bool findbomb; //排雷者认为是雷时置一(但是不一定真是雷) } ; 4. 重载cmainframe中precreatewindow,并设置相应属性,使其窗体大小固定,这样就固定了显示区域的大小为初始10乘10个雷和外加雷区上部的控制区域,部分代码如下。
cs.style=ws_overlapped|ws_sysmenu| ws_border|ws_minimizebox; cs.cy = 10*15+6; cs.cx = 10*15+60; //6和60分别是横纵的附加值,用于边框、菜单、标题条、控制区域。 5. 游戏的主要工作就是呈现不断变换的图形或动画,并按用户的输入交互进行显示,而windows文档-----视窗构架中的视窗的功能正是接受用户输入并负责显示,因此由cview类来完成扫雷的大部分工作。
在cbombview中定义下列成员变量记录相关操作的结果或对象的状态。 bomb m_bomb[30][30]; //最大的地雷区域 cstring m_currenttime; //用于记录并显示扫雷时间 ctime m_begintime;//记录游戏开始时的时间 bool m_timerbegin;//定时器是否开启 int m_ibomnum;//雷的数目 int m_irow;//雷的行数 int m_icolumn;//雷的列数 int m_ibombfound;//指示被认为是雷的数目 cbitmapbutton m_bitbutton;//控制区的位图按钮 int m_currentlevel;//指示当前游戏的级别 bool m_biscolor;//指示当前是彩色还是单色 cbitmap m_bmbomb[12];//用于存放12个小位图 int m_igameover;//游戏未结束置0,已清除所有的雷置1,被炸死置2。
重载cbombview中oncreate函数创建位图按钮,该位图按钮的两幅位图对应了正常、排雷正确两种状态,当要显示被炸死的状态时应动态销毁该按钮,并重新创建一位图对应正常和被炸死两种状态,将该位图按钮的id号定为id_game_begin,这样一来当点击按钮时便可重新开始游戏,部分代码如下。 crect rcclient; getclientrect(&rcclient); crect rect(rcclient.cx/2-8,10,rcclient.cx/2+8,20); m_button.create("new",bs_defpushbutton|ws_visible| bs_ownerdraw,rect,this,id_game_begin); m_button.loadbitmaps(idb_face1, idb_face2); 显示时间的功能相对比较简单,在响应第一个wm_lbuttomdown消息时开启定时器,并记录游戏开始的时间,在wm_time消息响应函数ontimer中获得当前时间,减去游戏开始时的时间,在显示时间的客户区域显示得到的时间差(用数字位图),当游戏结束时(排完全部雷或被炸死)关闭定时器,停止显示。
wm_lbuttomdown消息响应函数onlbuttomdown是处理用户输入的主要执行者,函数首先判断点中位置是否是雷,是则关闭定时器,销毁原位图按钮,创建一对应正常和被炸死两种状态的新位图按钮,并调用setstate将其设置为pushdown(小人哭的状态),将m_bgameover,置为true标志游戏结束,否则。
2.如何用C++写扫雷
用VC++编写扫雷游戏用VC++编写扫雷游戏 王洪亚 本文从分析windows扫雷游戏的功能特点开始,应用面向对象的可视化编程语言visual c++给出了个功能模块的具体实现方法,并提供了编写小游戏程序的一般方法和visual c++的一些使用技巧。
首先分析扫雷的最基本功能。 点击鼠标左键于未知区域,如果未知区域有雷,游戏停止,显示所有的地雷。
如果没雷,则显示周围雷数,如果周围没雷,则再查看周围八个区域是否有雷直到有雷为止并显示,这其实是一个递归过程。 点击鼠标右键于未知区域,则将其置为有雷而不管是否真的有雷。
可选择初、中、高三级并可自定义雷数和区域大小。 雷区上部左侧显示总雷数减被标明有雷区域的数目。
雷区上部中间位置显示一按钮用于开局和显示鼠标动作的结果。 雷区上部右侧显示扫雷的时间。
将雷全部扫清后,则显示一对话框将你的姓名记入排行榜。以时间排序。
为完成上述功能,应用visual c++的具体技术细节如下: 1. 应用appwizard创建基于sdi的应用程序cbombapp,去除打印和状态条支持,在资源编辑器中修改菜单和相应的加速键,使其与windows扫雷游戏一致。具体为开局(id-game-begin)、初级(id-game-junior)、中级(id-game-middle)、高级(id-game-senior)、自定义(id-game-custom)、颜色(id-game-color)、英雄榜(id-game-sort)、退出(id-game-exit)、帮助(id-help)。
2. 在资源编辑器中对应于雷区的每个小区域的13个属性。用画笔或其他绘图工具绘制出相对应的13个10乘10的16色小位图,三个对应于小人表情的20乘20的16色小位图,供更换颜色时使用的一套与前16个对应的单色位图,显示时间和雷数的0~9十个数字位图(底色为黑色)。
定制customer对话框,内含三个静态文本控件和三个编辑控件,三个编辑控件分别对应成员m_irownum,m_icolumnnum,m_ibombnum。该对话框用于定制雷数,行列数,其相应的mfc类为ccustomer。
定制sort对话框,内含九个静态文本控件,其中六个显示排行榜的姓名和时间,其对应的mfc类为csort。定制input对话框,内含一个静态文本控件和一个编辑控件,编辑控件用于在游戏成功结束时输入姓名,其对应的mfc类为cinput。
3. 定义类bomb,封装每颗雷的相关属性。 class bomb { public: int isbomb;//决定初始时是否是雷 bool issel; //判断区域是否被处理过且周围有雷 bool isdone;//判断递归时是否被处理过 int num; //周围雷数 bool findbomb; //排雷者认为是雷时置一(但是不一定真是雷) } ; 4. 重载cmainframe中precreatewindow,并设置相应属性,使其窗体大小固定,这样就固定了显示区域的大小为初始10乘10个雷和外加雷区上部的控制区域,部分代码如下。
cs.style=ws_overlapped|ws_sysmenu| ws_border|ws_minimizebox; cs.cy = 10*15+6; cs.cx = 10*15+60; //6和60分别是横纵的附加值,用于边框、菜单、标题条、控制区域。 5. 游戏的主要工作就是呈现不断变换的图形或动画,并按用户的输入交互进行显示,而windows文档-----视窗构架中的视窗的功能正是接受用户输入并负责显示,因此由cview类来完成扫雷的大部分工作。
在cbombview中定义下列成员变量记录相关操作的结果或对象的状态。 bomb m_bomb[30][30]; //最大的地雷区域 cstring m_currenttime; //用于记录并显示扫雷时间 ctime m_begintime;//记录游戏开始时的时间 bool m_timerbegin;//定时器是否开启 int m_ibomnum;//雷的数目 int m_irow;//雷的行数 int m_icolumn;//雷的列数 int m_ibombfound;//指示被认为是雷的数目 cbitmapbutton m_bitbutton;//控制区的位图按钮 int m_currentlevel;//指示当前游戏的级别 bool m_biscolor;//指示当前是彩色还是单色 cbitmap m_bmbomb[12];//用于存放12个小位图 int m_igameover;//游戏未结束置0,已清除所有的雷置1,被炸死置2。
重载cbombview中oncreate函数创建位图按钮,该位图按钮的两幅位图对应了正常、排雷正确两种状态,当要显示被炸死的状态时应动态销毁该按钮,并重新创建一位图对应正常和被炸死两种状态,将该位图按钮的id号定为id_game_begin,这样一来当点击按钮时便可重新开始游戏,部分代码如下。 crect rcclient; getclientrect(&rcclient); crect rect(rcclient.cx/2-8,10,rcclient.cx/2+8,20); m_button.create("new",bs_defpushbutton|ws_visible| bs_ownerdraw,rect,this,id_game_begin); m_button.loadbitmaps(idb_face1, idb_face2); 显示时间的功能相对比较简单,在响应第一个wm_lbuttomdown消息时开启定时器,并记录游戏开始的时间,在wm_time消息响应函数ontimer中获得当前时间,减去游戏开始时的时间,在显示时间的客户区域显示得到的时间差(用数字位图),当游戏结束时(排完全部雷或被炸死)关闭定时器,停止显示。
wm_lbuttomdown消息响应函数onlbuttomdown是处理用户输入的主要执行者,函数首先判断点中位置是否是雷,是则关闭定时器,销毁原位图按钮,创建一对应正常和被炸死两种状态的新位图按钮,并调用setstate将其设置为pushdown(小人哭的状态),将m_bgameov。
3.怎样用C++ Builder编写扫雷游戏
import java.awt.*;import javax.swing.*;import java.util.Random;import java.awt.event.*;class Min extends JPanel //雷的类{ //备注:鼠标的左键 = 1;右键 = 3;中键 = 2 private int flag = 0,statu = 0; //定义雷的属性 0:没有打开 1:打开 2:标示为雷 3:不确定 //flag = 0 不是雷 ; flag = 1是雷 private int but,count = 0; //but:哪一个鼠标键被按下去了 count:这个区域周围有多少个雷 private int mx = 0,my = 0,mw = 10; //定义雷的坐标和宽度 public Min() //构造函数 { statu = 0; } public Min(int f,int x,int y,int w) //构造函数 { flag = f; mx = x; my = y; mw = w; } public int getFlag(){return flag;} public int getStatu(){return statu;} public int getMx(){return mx;} public int getMy(){return my;} public int getMw(){return mw;} public int getCount(){return count;} public void setFlag(int f){flag = f;} public void setCount(int c){count = c;} public void setData(int f,int x,int y,int w,int s) //传递值 { flag = f; mx = (x-1)*w; my = (y-1)*w; mw = w-1; statu = s; } //根据你点击鼠标的不同来改变雷的属性 public int sendKey(int key) { //返回值,如果游戏结束则返回-1 int rtn = 1; if(key == 3) { switch(statu) { case 1: break; case 2: statu = 3; break; case 3: statu = 0; break; case 0: statu = 2; break; } rtn = 1; } if(key == 1 && statu == 0) { switch(flag) { case 0: statu = 1; rtn = 2; break; case 1: statu = 1; rtn = -1; break; } } return rtn; }}class DrawPanel extends JPanel{ private int i,j; private int f = 0; //if f = 1 then game over ,if f =2 then win private int chx = 0,chy = 0; //专门记录坐标x,y的值 private int msum = 6,ksum = 0; //msum:雷的个数,ksum:标示雷的个数 private int bx = 10,by = 10,bw = 40; //bx,by:棋盘的大小,bw:棋子的大小 public Min board[][] = { {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()}, {new Min(),。
4.如何用C语言编程 扫雷
C语言模拟扫雷的代码如下:#include
5.用C编写一个扫雷程序需要的基础知识有哪些
这个算法太繁杂,我有VB.NET的关键代码:
Public Class Form
Private chks(8, 8) As CheckBox
Dim k As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i, j As Integer
Dim col, row As Integer
k = 0
For i = 0 To 8
For j = 0 To 8
If chks(i, j) Is Nothing Then
chks(i, j) = New CheckBox()
AddHandler chks(i, j).MouseUp, AddressOf ChksMouseUp
Else
chks(i, j).Enabled = True
End If
chks(i, j).Checked = False
chks(i, j).BackColor = Color.LightGray
chks(i, j).Width = 20
chks(i, j).Height = 20
chks(i, j).Top = i * 20
chks(i, j).Left = j * 20
chks(i, j).Text = ""
Dim f As New Font("黑体", 10, FontStyle.Bold)
chks(i, j).Font = f
chks(i, j).Appearance = Appearance.Button
Me.Controls.Add(chks(i, j))
chks(i, j).Show()
chks(i, j).Tag = 0
Next
Next
Randomize()
j = 0
While j 8 Or i 8 Or j 8 Or i 8 Or j
6.怎样用C++nbsp;Builder编写扫雷游戏
importnbsp;java.awt.*;importnbsp;javax.swing.*;importnbsp;java.util.Random;importnbsp;java.awt.event.*;classnbsp;Minnbsp;extendsnbsp;JPanelnbsp;nbsp;//雷的类{nbsp;//备注:鼠标的左键nbsp;=nbsp;1;右键nbsp;=nbsp;3;中键nbsp;=nbsp;2nbsp;privatenbsp;intnbsp;flagnbsp;=nbsp;0,statunbsp;=nbsp;0;nbsp;//定义雷的属性nbsp;0:没有打开nbsp;1:打开nbsp;2:标示为雷nbsp;3:不确定nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;//flagnbsp;=nbsp;0nbsp;不是雷nbsp;nbsp;;nbsp;flagnbsp;=nbsp;1是雷nbsp;privatenbsp;intnbsp;but,countnbsp;=nbsp;0;nbsp;//but:哪一个鼠标键被按下去了nbsp;nbsp;nbsp;count:这个区域周围有多少个雷nbsp;privatenbsp;intnbsp;mxnbsp;=nbsp;0,mynbsp;=nbsp;0,mwnbsp;=nbsp;10;nbsp;//定义雷的坐标和宽度nbsp;nbsp;publicnbsp;Min()nbsp;nbsp;//构造函数nbsp;{nbsp;nbsp;statunbsp;=nbsp;0;nbsp;}nbsp;publicnbsp;Min(intnbsp;f,intnbsp;x,intnbsp;y,intnbsp;w)nbsp;//构造函数nbsp;{nbsp;nbsp;flagnbsp;=nbsp;f;nbsp;nbsp;mxnbsp;nbsp;=nbsp;x;nbsp;nbsp;mynbsp;nbsp;=nbsp;y;nbsp;nbsp;mwnbsp;nbsp;=nbsp;w;nbsp;}nbsp;publicnbsp;intnbsp;getFlag(){returnnbsp;flag;}nbsp;publicnbsp;intnbsp;getStatu(){returnnbsp;statu;}nbsp;publicnbsp;intnbsp;getMx(){returnnbsp;mx;}nbsp;publicnbsp;intnbsp;getMy(){returnnbsp;my;}nbsp;publicnbsp;intnbsp;getMw(){returnnbsp;mw;}nbsp;publicnbsp;intnbsp;getCount(){returnnbsp;count;}nbsp;publicnbsp;voidnbsp;setFlag(intnbsp;f){flagnbsp;=nbsp;f;}nbsp;publicnbsp;voidnbsp;setCount(intnbsp;c){countnbsp;=nbsp;c;}nbsp;publicnbsp;voidnbsp;setData(intnbsp;f,intnbsp;x,intnbsp;y,intnbsp;w,intnbsp;s)nbsp;//传递值nbsp;{nbsp;nbsp;flagnbsp;=nbsp;f;nbsp;nbsp;mxnbsp;nbsp;=nbsp;(x-1)*w;nbsp;nbsp;mynbsp;nbsp;=nbsp;(y-1)*w;nbsp;nbsp;mwnbsp;nbsp;=nbsp;w-1;nbsp;nbsp;statunbsp;=nbsp;s;nbsp;}nbsp;//根据你点击鼠标的不同来改变雷的属性nbsp;publicnbsp;intnbsp;sendKey(intnbsp;key)nbsp;{nbsp;//返回值,如果游戏结束则返回-1nbsp;nbsp;nbsp;intnbsp;rtnnbsp;=nbsp;1;nbsp;nbsp;if(keynbsp;==nbsp;3)nbsp;nbsp;{nbsp;nbsp;nbsp;switch(statu)nbsp;nbsp;nbsp;{nbsp;nbsp;nbsp;nbsp;casenbsp;1:nbsp;nbsp;nbsp;nbsp;nbsp;break;nbsp;nbsp;nbsp;nbsp;casenbsp;2:nbsp;nbsp;nbsp;nbsp;nbsp;statunbsp;=nbsp;3;nbsp;nbsp;nbsp;nbsp;nbsp;break;nbsp;nbsp;nbsp;nbsp;casenbsp;3:nbsp;nbsp;nbsp;nbsp;nbsp;statunbsp;=nbsp;0;nbsp;nbsp;nbsp;nbsp;nbsp;break;nbsp;nbsp;nbsp;nbsp;casenbsp;0:nbsp;nbsp;nbsp;nbsp;nbsp;statunbsp;=nbsp;2;nbsp;nbsp;nbsp;nbsp;nbsp;break;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;rtnnbsp;=nbsp;1;nbsp;nbsp;}nbsp;nbsp;if(keynbsp;==nbsp;1nbsp;amp;amp;nbsp;statunbsp;==nbsp;0)nbsp;nbsp;{nbsp;nbsp;nbsp;switch(flag)nbsp;nbsp;nbsp;{nbsp;nbsp;nbsp;nbsp;casenbsp;0:nbsp;nbsp;nbsp;nbsp;nbsp;statunbsp;=nbsp;1;nbsp;nbsp;nbsp;nbsp;nbsp;rtnnbsp;=nbsp;2;nbsp;nbsp;nbsp;nbsp;nbsp;break;nbsp;nbsp;nbsp;nbsp;casenbsp;1:nbsp;nbsp;nbsp;nbsp;nbsp;statunbsp;=nbsp;1;nbsp;nbsp;nbsp;nbsp;nbsp;rtnnbsp;=nbsp;-1;nbsp;nbsp;nbsp;nbsp;nbsp;break;nbsp;nbsp;nbsp;}nbsp;nbsp;}nbsp;nbsp;returnnbsp;rtn;nbsp;}}classnbsp;DrawPanelnbsp;extendsnbsp;JPanel{nbsp;privatenbsp;intnbsp;i,j;nbsp;privatenbsp;intnbsp;fnbsp;=nbsp;0;nbsp;nbsp;nbsp;nbsp;//ifnbsp;fnbsp;=nbsp;1nbsp;thennbsp;gamenbsp;overnbsp;,ifnbsp;fnbsp;=2nbsp;thennbsp;winnbsp;privatenbsp;intnbsp;chxnbsp;=nbsp;0,chynbsp;=nbsp;0;nbsp;//专门记录坐标x,y的值nbsp;privatenbsp;intnbsp;msumnbsp;=nbsp;6,ksumnbsp;=nbsp;0;nbsp;//msum:雷的个数,ksum:标示雷的个数nbsp;privatenbsp;intnbsp;bxnbsp;=nbsp;10,bynbsp;=nbsp;10,bwnbsp;=nbsp;40;nbsp;//bx,by:棋盘的大小,bw:棋子的大小nbsp;publicnbsp;Minnbsp;board[][]nbsp;=nbsp;{nbsp;nbsp;nbsp;{newnbsp;Min(),newnbsp;Min(),newnbsp;Min(),newnbsp;Min(),newnbsp;Min(),newnbsp;Mi。
7.C语言写扫雷时间地址
在MFC程序里写:
HWND gh=::FindWindow(NULL,"游戏标题可以用SPY++取得");
DWORD id;
::(gh,&id); //取进程ID
HANDLE h=::OpenProcess(PROCESS_ALL_ACCESS,false,id); //打开指定进程
DWORD by;
LPVOID pbase = (LPVOID)0x100579c; //地址
LPVOID buffer;
WriteProcessMemory(h,pbase,buffer,写入的数值,by);
貌似是这样 很久没写过了 错了叫我
这里要改一下:::WriteProcessMemory(h,pbase,buffer,写入的数值,&by);
8.初学习vc,编写扫雷从何下手
我前几天刚做网扫雷,我学java的,刚开始也是没什么头绪,其实想想扫雷也就是分为3个部分,窗口,事件处理,还有就是工具类比如放图片的,布雷算法等,扫雷主要涉及到两个算法:一个布雷,一个扫雷,布雷很简单,就是随即产生一个二唯数组的下标,若它==9(代表雷),则布了一个雷,在用个count计算雷数,就好了,扫雷主要涉及到点空白展开问题,要用到递归,也是考虑周围的八个位置,扫雷的雷区可以看成一个2唯数组,考虑雷数什么的经常考虑到它的周围八个位置,可以用两个for来表示,x=i-1;x<数组长度,x++;y=j-1;y。
转载请注明出处育才学习网 » Cmin里怎么写扫雷