
先进入控制面板,就是开始那里,有一个设置,把鼠标放上去就看到控制面板了,进入后,选择“添加或删除程序”,进去后,选择左边第三个“选择添加/删除windows组件”,等一小会儿,d出一个windows组件向导,往下拉,看见一个,附件和工具,前边的小框里打了一个勾的,鼠标选择他,然后点详细信息,就会看到游戏这些了,把游戏前边的勾去掉,点确定,就ok了,注意前边那个步骤,“附件和工具”前边的小勾不要去掉了,不然里边的工具都用不了
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;
int map[12][12]; // 为避免边界的特殊处理,故将二维数组四周边界扩展1
int derection[3] = { 0, 1, -1 }; //方向数组
int calculate ( int x, int y )
{
int counter = 0;
for ( int i = 0; i < 3; i++ )
for ( int j = 0; j < 3; j++ )
if ( map[ x+derection[i]][ y+derection[j] ] == 9 )
counter++; // 统计以(x,y)为中心的四周的雷数目
return counter;
}
void game ( int x, int y )
{
if ( calculate ( x, y ) == 0 )
{
map[x][y] = 0;
for ( int i = 0; i < 3; i++ )
{ // 模拟游戏过程,若点到一个空白,则系统自动向外扩展
for ( int j = 0; j < 3; j++ )
if ( x+derection[i] <= 9 && y+derection[j] <= 9 && x+derection[i] >= 1 && y+derection[j] >= 1
&& !( derection[i] == 0 && derection[j] == 0 ) && map[x+derection[i]][y+derection[j]] == -1 )
game( x+derection[i], y+derection[j] ); // 条件比较多,一是不可以让两个方向坐标同时为0,否则
递归调用本身!
} //二是递归不能出界三是要保证不返回调用。
}
else
map[x][y] = calculate(x,y);
}
void print ()
{
for ( int i = 1; i < 10; i++ )
{
for ( int j = 1; j < 10; j++ )
{
if ( map[i][j] == -1 || map[i][j] == 9 )
cout << "#";
else
cout << map[i][j];
}
cout << endl;
}
}
bool check ()
{
int counter = 0;
for ( int i = 1; i < 10; i++ )
for ( int j = 1; j < 10; j++ )
if ( map[i][j] != -1 )
counter++;
if ( counter == 10 )
return true;
else
return false;
}
int main ()
{
int i, j, x, y;
char ch;
srand ( time ( 0 ) );
do
{
memset ( map, -1, sizeof(map) ); // 将map全部初始化为-1,以后用-1表示未涉及的区域
for ( i = 0; i < 10; )
{
x = rand()%9 + 1;
y = rand()%9 + 1;
if ( map[x][y] != 9 )
{
map[x][y] = 9;
i++;
}
}
for ( i = 1; i < 10; i++ )
{
for ( j = 1; j < 10; j++ )
cout << "#";
cout << "\n";
}
cout << "\n";
cout << "Please enter a coordinate: ";
while ( cin >> x >> y )
{
if ( map[x][y] == 9 )
{
cout << "GAME OVER" << endl; //点中雷之后游戏结束,并且输出雷的位置
for ( i = 1; i < 10; i++ )
{
for ( j = 1; j < 10; j++ )
{
if ( map[i][j] == 9 )
cout << "@";
else
cout << "#";
}
cout << endl;
}
break;
}
game(x,y);
print();
if ( check () )
{
cout << "YOU WIN" << endl;
break;
}
cout << "\n\n";
}
cout << "Do you want to play again, if true enter Y, or enter N" << endl;
cin >> ch;
cout << "\n\n";
} while ( ch == 'Y' );
return 0;
}
/534 源程序/
#include <graphicsh>
#include <stdlibh>
#include <dosh>
#define LEFTPRESS 0xff01
#define LEFTCLICK 0xff10
#define LEFTDRAG 0xff19
#define MOUSEMOVE 0xff08
struct
{
int num;/格子当前处于什么状态,1有雷,0已经显示过数字或者空白格子/
int roundnum;/统计格子周围有多少雷/
int flag;/右键按下显示红旗的标志,0没有红旗标志,1有红旗标志/
}Mine[10][10];
int gameAGAIN=0;/是否重来的变量/
int gamePLAY=0;/是否是第一次玩游戏的标志/
int mineNUM;/统计处理过的格子数/
char randmineNUM[3];/显示数字的字符串/
int Keystate;
int MouseExist;
int MouseButton;
int MouseX;
int MouseY;
void Init(void);/图形驱动/
void MouseOn(void);/鼠标光标显示/
void MouseOff(void);/鼠标光标隐藏/
void MouseSetXY(int,int);/设置当前位置/
int LeftPress(void);/左键按下/
int RightPress(void);/鼠标右键按下/
void MouseGetXY(void);/得到当前位置/
void Control(void);/游戏开始,重新,关闭/
void GameBegain(void);/游戏开始画面/
void DrawSmile(void);/画笑脸/
void DrawRedflag(int,int);/显示红旗/
void DrawEmpty(int,int,int,int);/两种空格子的显示/
void GameOver(void);/游戏结束/
void GameWin(void);/显示胜利/
int MineStatistics(int,int);/统计每个格子周围的雷数/
int ShowWhite(int,int);/显示无雷区的空白部分/
void GamePlay(void);/游戏过程/
void Close(void);/图形关闭/
void main(void)
{
Init();
Control();
Close();
}
void Init(void)/图形开始/
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\tc");
}
void Close(void)/图形关闭/
{
closegraph();
}
void MouseOn(void)/鼠标光标显示/
{
_AX=0x01;
geninterrupt(0x33);
}
void MouseOff(void)/鼠标光标隐藏/
{
_AX=0x02;
geninterrupt(0x33);
}
void MouseSetXY(int x,int y)/设置当前位置/
{
_CX=x;
_DX=y;
_AX=0x04;
geninterrupt(0x33);
}
int LeftPress(void)/鼠标左键按下/
{
_AX=0x03;
geninterrupt(0x33);
return(_BX&1);
}
int RightPress(void)/鼠标右键按下/
{
_AX=0x03;
geninterrupt(0x33);
return(_BX&2);
}
void MouseGetXY(void)/得到当前位置/
{
_AX=0x03;
geninterrupt(0x33);
MouseX=_CX;
MouseY=_DX;
}
void Control(void)/游戏开始,重新,关闭/
{
int gameFLAG=1;/游戏失败后判断是否重新开始的标志/
while(1)
{
if(gameFLAG)/游戏失败后没判断出重新开始或者退出游戏的话就继续判断/
{
GameBegain(); /游戏初始画面/
GamePlay();/具体游戏/
if(gameAGAIN==1)/游戏中重新开始/
{
gameAGAIN=0;
continue;
}
}
MouseOn();
gameFLAG=0;
if(LeftPress())/判断是否重新开始/
{
MouseGetXY();
if(MouseX>280&&MouseX<300&&MouseY>65&&MouseY<85)
{
gameFLAG=1;
continue;
}
}
if(kbhit())/判断是否按键退出/
break;
}
MouseOff();
}
void DrawSmile(void)/画笑脸/
{
setfillstyle(SOLID_FILL,YELLOW);
fillellipse(290,75,10,10);
setcolor(YELLOW);
setfillstyle(SOLID_FILL,BLACK);/眼睛/
fillellipse(285,75,2,2);
fillellipse(295,75,2,2);
setcolor(BLACK);/嘴巴/
bar(287,80,293,81);
}
void DrawRedflag(int i,int j)/显示红旗/
{
setcolor(7);
setfillstyle(SOLID_FILL,RED);
bar(198+j20,95+i20,198+j20+5,95+i20+5);
setcolor(BLACK);
line(198+j20,95+i20,198+j20,95+i20+10);
}
void DrawEmpty(int i,int j,int mode,int color)/两种空格子的显示/
{
setcolor(color);
setfillstyle(SOLID_FILL,color);
if(mode==0)/没有单击过的大格子/
bar(200+j20-8,100+i20-8,200+j20+8,100+i20+8);
else
if(mode==1)/单击过后显示空白的小格子/
bar(200+j20-7,100+i20-7,200+j20+7,100+i20+7);
}
void GameBegain(void)/游戏开始画面/
{
int i,j;
cleardevice();
if(gamePLAY!=1)
{
MouseSetXY(290,70); /鼠标一开始的位置,并作为它的初始坐标/
MouseX=290;
MouseY=70;
}
gamePLAY=1;/下次按重新开始的话鼠标不重新初始化/
mineNUM=0;
setfillstyle(SOLID_FILL,7);
bar(190,60,390,290);
for(i=0;i<10;i++)/画格子/
for(j=0;j<10;j++)
DrawEmpty(i,j,0,8);
setcolor(7);
DrawSmile();/画脸/
randomize();
for(i=0;i<10;i++)/100个格子随机赋值有没有地雷/
for(j=0;j<10;j++)
{
Mine[i][j]num=random(8);/如果随机数的结果是1表示这个格子有地雷/
if(Mine[i][j]num==1)
mineNUM++;/现有雷数加1/
else
Mine[i][j]num=2;
Mine[i][j]flag=0;/表示没红旗标志/
}
sprintf(randmineNUM,"%d",mineNUM); /显示这次总共有多少雷数/
setcolor(1);
settextstyle(0,0,2);
outtextxy(210,70,randmineNUM);
mineNUM=100-mineNUM;/变量取空白格数量/
MouseOn();
}
void GameOver(void)/游戏结束画面/
{
int i,j;
setcolor(0);
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(Mine[i][j]num==1)/显示所有的地雷/
{
DrawEmpty(i,j,0,RED);
setfillstyle(SOLID_FILL,BLACK);
fillellipse(200+j20,100+i20,7,7);
}
}
void GameWin(void)/显示胜利/
{
setcolor(11);
settextstyle(0,0,2);
outtextxy(230,30,"YOU WIN!");
}
int MineStatistics(int i,int j)/统计每个格子周围的雷数/
{
int nNUM=0;
if(i==0&&j==0)/左上角格子的统计/
{
if(Mine[0][1]num==1)
nNUM++;
if(Mine[1][0]num==1)
nNUM++;
if(Mine[1][1]num==1)
nNUM++;
}
else
if(i==0&&j==9)/右上角格子的统计/
{
if(Mine[0][8]num==1)
nNUM++;
if(Mine[1][9]num==1)
nNUM++;
if(Mine[1][8]num==1)
nNUM++;
}
else
if(i==9&&j==0)/左下角格子的统计/
{
if(Mine[8][0]num==1)
nNUM++;
if(Mine[9][1]num==1)
nNUM++;
if(Mine[8][1]num==1)
nNUM++;
}
else
if(i==9&&j==9)/右下角格子的统计/
{
if(Mine[9][8]num==1)
nNUM++;
if(Mine[8][9]num==1)
nNUM++;
if(Mine[8][8]num==1)
nNUM++;
}
else if(j==0)/左边第一列格子的统计/
{
if(Mine[i][j+1]num==1)
nNUM++;
if(Mine[i+1][j]num==1)
nNUM++;
if(Mine[i-1][j]num==1)
nNUM++;
if(Mine[i-1][j+1]num==1)
nNUM++;
if(Mine[i+1][j+1]num==1)
nNUM++;
}
else if(j==9)/右边第一列格子的统计/
{
if(Mine[i][j-1]num==1)
nNUM++;
if(Mine[i+1][j]num==1)
nNUM++;
if(Mine[i-1][j]num==1)
nNUM++;
if(Mine[i-1][j-1]num==1)
nNUM++;
if(Mine[i+1][j-1]num==1)
nNUM++;
}
else if(i==0)/第一行格子的统计/
{
if(Mine[i+1][j]num==1)
nNUM++;
if(Mine[i][j-1]num==1)
nNUM++;
if(Mine[i][j+1]num==1)
nNUM++;
if(Mine[i+1][j-1]num==1)
nNUM++;
if(Mine[i+1][j+1]num==1)
nNUM++;
}
else if(i==9)/最后一行格子的统计/
{
if(Mine[i-1][j]num==1)
nNUM++;
if(Mine[i][j-1]num==1)
nNUM++;
if(Mine[i][j+1]num==1)
nNUM++;
if(Mine[i-1][j-1]num==1)
nNUM++;
if(Mine[i-1][j+1]num==1)
nNUM++;
}
else/普通格子的统计/
{
if(Mine[i-1][j]num==1)
nNUM++;
if(Mine[i-1][j+1]num==1)
nNUM++;
if(Mine[i][j+1]num==1)
nNUM++;
if(Mine[i+1][j+1]num==1)
nNUM++;
if(Mine[i+1][j]num==1)
nNUM++;
if(Mine[i+1][j-1]num==1)
nNUM++;
if(Mine[i][j-1]num==1)
nNUM++;
if(Mine[i-1][j-1]num==1)
nNUM++;
}
return(nNUM);/把格子周围一共有多少雷数的统计结果返回/
}
int ShowWhite(int i,int j)/显示无雷区的空白部分/
{
if(Mine[i][j]flag==1||Mine[i][j]num==0)/如果有红旗或该格处理过就不对该格进行任何判断/
return;
mineNUM--;/显示过数字或者空格的格子就表示多处理了一个格子,当所有格子都处理过了表示胜利/
if(Mine[i][j]roundnum==0&&Mine[i][j]num!=1)/显示空格/
{
DrawEmpty(i,j,1,7);
Mine[i][j]num=0;
}
else
if(Mine[i][j]roundnum!=0)/输出雷数/
{
DrawEmpty(i,j,0,8);
sprintf(randmineNUM,"%d",Mine[i][j]roundnum);
setcolor(RED);
outtextxy(195+j20,95+i20,randmineNUM);
Mine[i][j]num=0;/已经输出雷数的格子用0表示已经用过这个格子/
return ;
}
/8个方向递归显示所有的空白格子/
if(i!=0&&Mine[i-1][j]num!=1)
ShowWhite(i-1,j);
if(i!=0&&j!=9&&Mine[i-1][j+1]num!=1)
ShowWhite(i-1,j+1);
if(j!=9&&Mine[i][j+1]num!=1)
ShowWhite(i,j+1);
if(j!=9&&i!=9&&Mine[i+1][j+1]num!=1)
ShowWhite(i+1,j+1);
if(i!=9&&Mine[i+1][j]num!=1)
ShowWhite(i+1,j);
if(i!=9&&j!=0&&Mine[i+1][j-1]num!=1)
ShowWhite(i+1,j-1);
if(j!=0&&Mine[i][j-1]num!=1)
ShowWhite(i,j-1);
if(i!=0&&j!=0&&Mine[i-1][j-1]num!=1)
ShowWhite(i-1,j-1);
}
void GamePlay(void)/游戏过程/
{
int i,j,Num;/Num用来接收统计函数返回一个格子周围有多少地雷/
for(i=0;i<10;i++)
for(j=0;j<10;j++)
Mine[i][j]roundnum=MineStatistics(i,j);/统计每个格子周围有多少地雷/
while(!kbhit())
{
if(LeftPress())/鼠标左键盘按下/
{
MouseGetXY();
if(MouseX>280&&MouseX<300&&MouseY>65&&MouseY<85)/重新来/
{
MouseOff();
gameAGAIN=1;
break;
}
if(MouseX>190&&MouseX<390&&MouseY>90&&MouseY<290)/当前鼠标位置在格子范围内/
{
j=(MouseX-190)/20;/x坐标/
i=(MouseY-90)/20;/y坐标/
if(Mine[i][j]flag==1)/如果格子有红旗则左键无效/
continue;
if(Mine[i][j]num!=0)/如果格子没有处理过/
{
if(Mine[i][j]num==1)/鼠标按下的格子是地雷/
{
MouseOff();
GameOver();/游戏失败/
break;
}
else/鼠标按下的格子不是地雷/
{
MouseOff();
Num=MineStatistics(i,j);
if(Num==0)/周围没地雷就用递归算法来显示空白格子/
ShowWhite(i,j);
else/按下格子周围有地雷/
{
sprintf(randmineNUM,"%d",Num);/输出当前格子周围的雷数/
setcolor(RED);
outtextxy(195+j20,95+i20,randmineNUM);
mineNUM--;
}
MouseOn();
Mine[i][j]num=0;/点过的格子周围雷数的数字变为0表示这个格子已经用过/
if(mineNUM<1)/胜利了/
{
GameWin();
break;
}
}
}
}
}
if(RightPress())/鼠标右键键盘按下/
{
MouseGetXY();
if(MouseX>190&&MouseX<390&&MouseY>90&&MouseY<290)/当前鼠标位置在格子范围内/
{
j=(MouseX-190)/20;/x坐标/
i=(MouseY-90)/20;/y坐标/
MouseOff();
if(Mine[i][j]flag==0&&Mine[i][j]num!=0)/本来没红旗现在显示红旗/
{
DrawRedflag(i,j);
Mine[i][j]flag=1;
}
else
if(Mine[i][j]flag==1)/有红旗标志再按右键就红旗消失/
{
DrawEmpty(i,j,0,8);
Mine[i][j]flag=0;
}
}
MouseOn();
sleep(1);
}
}
}
import javaawtBorderLayout;
import javaawtContainer;
import javaawtFont;
import javaawtGridLayout;
import javaawtInsets;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaawteventMouseAdapter;
import javaawteventMouseEvent;
import javaxswingJButton;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJMenu;
import javaxswingJMenuBar;
import javaxswingJMenuItem;
import javaxswingJPanel;
import javaxswingTimer;
public class ScanLei1 extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
private Container contentPane;
private JButton btn;
private JButton[] btns;
private JLabel b1;
private JLabel b2;
private JLabel b3;
private Timer timer;
private int row=9;
private int col=9;
private int bon=10;
private int[][] a;
private int b;
private int[] a1;
private JPanel p,p1,p2,p3;
public ScanLei1(String title){
super(title);
contentPane=getContentPane();
setSize(297,377);
thissetBounds(400, 100, 400, 500);
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
timer =new Timer(1000,(ActionListener) this);
a = new int[row+2][col+2];
initGUI();
}
public void initGUI(){
p3=new JPanel();
b=bon;
JMenuBar menuBar=new JMenuBar();
JMenu menu1=new JMenu("游戏");
JMenu menu2=new JMenu("帮助");
JMenuItem mi1=new JMenuItem("初级");
JMenuItem mi2 = new JMenuItem("中级");
JMenuItem mi3 =new JMenuItem("高级");
mi1addActionListener(this);
menu1add(mi1);
mi2addActionListener(this);
menu1add(mi2);
mi3addActionListener(this);
menu1add(mi3);
menuBaradd(menu1);
menuBaradd(menu2);
p3add(menuBar);
b1=new JLabel(bon+"");
a1=new int[bon];
btn =new JButton("开始");
btnaddActionListener(this);
b2=new JLabel("0");
b3=new JLabel("");
btns=new JButton[rowcol];
p=new JPanel();
psetLayout(new BorderLayout());
contentPaneadd(p);
padd(p3,BorderLayoutNORTH);
//combo=new JComboBox(new Object[]{"初级","中级","高级"} );
//加监听
/comboaddItemListener(new ItemListener(){
}});/
p1=new JPanel();
//在那个位置
//(( FlowLayout)p1getLayout())setAlignment( FlowLayoutRIGHT);
p1add(b1);
p1add(btn);
p1add(b2);
p1add(b3);
padd(p3,BorderLayoutNORTH);
padd(p1,BorderLayoutCENTER);
p2=new JPanel();
p2setLayout(new GridLayout(row,col,0,0));
for(int i=0;i<rowcol;i++){
btns[i]=new JButton("");
btns[i]setMargin(new Insets(0,0,0,0));
btns[i]setFont(new Font(null,FontBOLD,25));
btns[i]addActionListener(this);
btns[i]addMouseListener(new NormoreMouseEvent());
p2add(btns[i]);
}
contentPaneadd(p,BorderLayoutNORTH);
contentPaneadd(p2,BorderLayoutCENTER);
}
public void go(){
setVisible(true);
}
public static void main(String[] args){
new ScanLei1("扫雷")go();
}
public void out(int[][] a,JButton[] btns,ActionEvent e,int i,int x,int y){
int p=1;
if(a[x][y]==0){
a[x][y]=10;
btns[i]setEnabled(false); //33
for(int l=y-1;l<=y+1;l++){
int m=x-1-1;
int n=l-1;
p=1;
Systemoutprintln(a[1][2]);
if(n>-1&&n<col&&m>-1&&m<row)
{
for(int q=0;q<row&&p==1;q++){//col-->row;
if(((n+colq)>=(mcol))&&((n+colq)<(m+1)col)){
if(a[x-1][l]!=0&&a[x-1][l]!=10){
btns[n+colq]setText(a[x-1][l]+"");
a[x-1][l]=10;
btns[n+colq]setEnabled(false);
}
else if(a[x-1][l]==0){
//a[x-1][l]=10;
btns[n+colq]setEnabled(false);
out(a,btns,e,n+colq,x-1,l); ////55////
a[x-1][l]=10;
btns[n+colq]setEnabled(false);
}
p=0;
}
}
}
p=1;
m=x;
if(n>-1&&n<col&&m>-1&&m<col)
{
for(int q=0;q<row&&p==1;q++){
if(((n+colq)>=(mcol))&&((n+colq)<(m+1)col)){
if(a[x+1][l]!=0&&a[x+1][l]!=10){
btns[n+colq]setText(a[x+1][l]+"");
a[x+1][l]=10;
btns[n+colq]setEnabled(false);
}
else if(a[x+1][l]==0){
out(a,btns,e,n+colq,x+1,l);///55////
a[x+1][l]=10;
btns[n+colq]setEnabled(false);
}
p=0;
}
}
}
}
int m=x-1;
int n=y-1-1;
p=1;
if(n>-1&&n<col&&m>-1&&m<col)
{
for(int q=0;q<row&&p==1;q++){
if(((n+colq)>=(mcol))&&((n+colq)<(m+1)col)){
if(a[x][y-1]!=0&&a[x][y-1]!=10){
btns[n+colq]setText(a[x][y-1]+"");
a[x][y-1]=10;
btns[n+colq]setEnabled(false);
}
else if(a[x][y-1]==0){
out(a,btns,e,n+colq,x,y-1);
a[x][y-1]=10;
btns[n+colq]setEnabled(false);
}
p=0;
}
}
}
p=1;
m=x-1;
n=y+1-1;
if(n>-1&&n<col&&m>-1&&m<col)
{
for(int q=0;q<row&&p==1;q++){
if(((n+colq)>=(mcol))&&((n+colq)<(m+1)col)){
if(a[x][y+1]!=0&&a[x][y+1]!=10){
btns[n+colq]setText(a[x][y+1]+"");
a[x][y+1]=10;
btns[n+colq]setEnabled(false);
}
else if(a[x][y+1]==0){
out(a,btns,e,n+colq,x,y+1);
a[x][y+1]=10;
btns[n+colq]setEnabled(false);
}
p=0;
}
}
}
}
}
public void actionPerformed(ActionEvent e) {
if(egetActionCommand()=="初级"){
row=9;
col=9;
bon=10;
a1=new int[bon];
b=bon;
//setSize(297,377);
a = new int[row+2][col+2];
thisremove(p2);
timerstop();
b1setText("10");
b2setText("0");
b3setText("");
btns=new JButton[rowcol];
p2=new JPanel();
p2setLayout(new GridLayout(row,col,0,0));
for(int i=0;i<rowcol;i++){
btns[i]=new JButton(" ");
btns[i]setMargin(new Insets(0,0,0,0));
btns[i]setFont(new Font(null,FontBOLD,25));
btns[i]addActionListener(this);
btns[i]addMouseListener(new NormoreMouseEvent());
p2add(btns[i]);
}
contentPaneadd(p2,BorderLayoutCENTER);
//setSize(297,377);
thispack();
for(int i=0;i<rowcol;i++){
btns[i]setText(" ");
btns[i]setEnabled(true);
}
for(int i=0;i<row+2;i++){
for(int j=0;j<col+2;j++){
a[i][j]=0;
}
}
}else if(egetActionCommand()=="中级"){
row=16;
col=16;
bon=40;
//setSize(33col,33row+80);
a1=new int[bon];
a = new int[row+2][col+2];
b=bon;
thisremove(p2);
timerstop();
b1setText("40");
b2setText("0");
b3setText("");
btns=new JButton[rowcol];
p2=new JPanel();
p2setLayout(new GridLayout(row,col,0,0));
for(int i=0;i<rowcol;i++){
btns[i]=new JButton(" ");
btns[i]setMargin(new Insets(0,0,0,0));
btns[i]setFont(new Font(null,FontBOLD,25));
btns[i]addActionListener(this);
btns[i]addMouseListener(new NormoreMouseEvent());
p2add(btns[i]);
}
contentPaneadd(p2,BorderLayoutCENTER);
thispack();
//setSize(33col,33row+80);
for(int i=0;i<rowcol;i++){
btns[i]setText("");
btns[i]setEnabled(true);
}
for(int i=0;i<row+2;i++){
for(int j=0;j<col+2;j++){
a[i][j]=0;
}
}
}else if(egetActionCommand()=="高级"){
row=16;
col=32;
bon=99;
setSize(33col,33row+80);
a1=new int[bon];
a = new int[row+2][col+2];
b=bon;
thisremove(p2);
timerstop();
b1setText("99");
b2setText("0");
b3setText("");
btns=new JButton[rowcol];
p2=new JPanel();
p2setLayout(new GridLayout(row,col,0,0));
for(int i=0;i<rowcol;i++){
btns[i]=new JButton(" ");
btns[i]setMargin(new Insets(0,0,0,0));
btns[i]setFont(new Font(null,FontBOLD,25));
btns[i]addActionListener(this);
btns[i]addMouseListener(new NormoreMouseEvent());
p2add(btns[i]);
}
contentPaneadd(p2,BorderLayoutCENTER);
//setSize(33col,33row+80);
thispack();
for(int i=0;i<rowcol;i++){
btns[i]setText("");
btns[i]setEnabled(true);
}
for(int i=0;i<row+2;i++){
for(int j=0;j<col+2;j++){
a[i][j]=0;
}
}
}
if(egetSource()==btn){
timerstart();
b=bon;
b3setText("");
//Systemoutprintln(bon);
//清空
for(int i=0;i<rowcol;i++){
btns[i]setText("");
btns[i]setEnabled(true);
}
for(int i=0;i<row+2;i++){
for(int j=0;j<col+2;j++){
a[i][j]=0;
}
}
//产生随机数
for(int i=0;i<bon;i++)
{ int p=1;
int m=(int)(Mathrandom()rowcol);
while(p==1){
int l=1;
int j;
for( j=0;j<i&&l==1;j++){
if(a1[j]==m){
m=(int)(Mathrandom()rowcol);
l=0;
}
}
if(j==i){
a1[i]=m;
p=0;
}
}
}
b1setText(bon+"");
b2setText("0");
//布雷
for(int i=0;i<bon;i++){
int x=(a1[i]/col+1);
int y=(a1[i]%col+1);
a[x][y]=100;
}
for(int i=0;i<row+2;i++){
for(int j=0;j<col+2;j++){
if(i==0||j==0||i==row+1||j==col+1){
a[i][j]=0;
}
}
}
for(int i=1;i<=row;i++){
for(int j=1;j<=col;j++){
if(a[i][j]!=100){
for(int l=j-1;l<=j+1;l++){
if(a[i-1][l]==100){
a[i][j]++;
}
if(a[i+1][l]==100){
a[i][j]++;
}
}
if(a[i][j-1]==100){
a[i][j]++;
}
if(a[i][j+1]==100){
a[i][j]++;
}
}
}
}
}
if(egetSource()==timer)
{
String time=b2getText()trim();
int t=IntegerparseInt(time);
//Systemoutprintln(t);
if(t>=600){
timerstop();
}else{
t++;
b2setText(t+"");
}
}
for(int i=0;i<colrow;i++){
if(btns[i]getText()!="★")
{
int x=i/col+1;
int y=i%col+1;
if(egetSource()==btns[i]&&a[x][y]==100){
btns[i]setText("★");
btns[i]setEnabled(false);
a[x][y]=10;
for(int k=0;k<colrow;k++){
int m1=k/col+1;
int n1=k%col+1;
if(a[m1][n1]!=10&&btns[k]getText()=="★"){
btns[k]setText("o");
}
}
for(int j=0;j<colrow;j++){
int m=j/col+1;
int n=j%col+1;
if(a[m][n]==100){
btns[j]setText("★");
btns[j]setEnabled(false);
b3setText("你输了 !!");
}
btns[j]setEnabled(false);
a[m][n]=10;
}
timerstop();
}
else if(egetSource()==btns[i]){
if(a[x][y]==0){
out(a,btns,e,i,x,y);
a[x][y]=10;
btns[i]setEnabled(false);
}
if(a[x][y]!=0&&a[x][y]!=10){
btns[i]setText(a[x][y]+"");
btns[i]setEnabled(false);
a[x][y]=10;
}
}
}else if(btns[i]getText()=="★"){
}
}
}
class NormoreMouseEvent extends MouseAdapter{
public void mouseClicked(MouseEvent e) {
Systemoutprintln(b);
for(int i=0;i<colrow;i++){
int x1=i/col+1;
int y1=i%col+1;
if(egetSource()==btns[i]&&btns[i]getText()!="★"&&a[x1][y1]!=10)
{
if(egetButton()==MouseEventBUTTON3){
btns[i]setText("★");
b--;
if(b==0){
int flag=0;
for(int j=0;j<colrow;j++){
int x=j/col+1;
int y=j%col+1;
if(a[x][y]==100&&btns[j]getText()=="★"){
flag++;
}
}
if(flag==bon){
timerstop();
b3setText("你赢了!");
}
}
b1setText(b+"");
}
}else if(egetSource()==btns[i]&&btns[i]getText()=="★"&&a[x1][y1]!=-1){
if(egetButton()==MouseEventBUTTON3){
btns[i]setText("");
b++;
if(b>bon){
b1setText(bon+"");
}
else{
b1setText(b+"");
}
btns[i]setEnabled(true);
}
}
}
}
}
}
恢复Windows XP自带游戏 控制面板-添加删除程序-添加/删除WINDOWS组建-双击附件和工具-游戏前打上钩子就可以了。
没有光盘只能从别的机器上复制了,不过更大的可能性是你只是把快捷方式删了,文件还在,下面告诉你各个游戏对应文件名吧
扫雷 %SystemRoot%\system32\winmineexe
纸牌 %SystemRoot%\system32\solexe
蜘蛛纸牌 %SystemRoot%\system32\spiderexe
空当接龙 %SystemRoot%\system32\freecellexe
红心大战 %SystemRoot%\system32\msheartsexe
三维d球 C:\Program Files\Windows NT\Pinball\PINBALLEXE
Internet 翻转棋 C:\Program Files\MSN Gaming Zone\Windows\Rvsezmexe
Internet 黑桃王 C:\Program Files\MSN Gaming Zone\Windows\shvlzmexe
Internet 红心大战 C:\Program Files\MSN Gaming Zone\Windows\hrtzzmexe
Internet 双陆棋 C:\Program Files\MSN Gaming Zone\Windows\bckgzmexe
Internet 跳棋 C:\Program Files\MSN Gaming Zone\Windows\chkrzmexe
Windows自带小游戏作弊法分类:我的日志
1、空档接龙:游戏中按下“Ctrl+Shift+F10”,在d出的窗口中选择“终止(A)”,然后双击任意一张牌即可获胜。
2、扫雷:任意在雷区点一下鼠标,使时钟开始计时。之后依次按下“xyzzy”这几个键,之后按下“Shift”键2秒钟。将鼠标移动到任意方块上,屏幕左上角的边缘处就会出现一个点,白色说明没有雷,黑色则说明这个方块下有雷。
3、纸牌:游戏中按下“Alt+Shift+2”即可立即胜利。
4、三维d球:游戏开始后先不要发球,键入“rmax”直接进入下一关;键入“bmax”得到无限d珠;键入“hidden test”(中间有空格)可用鼠标拖拽d珠。
Windows扫雷技巧(作弊方法)
打开扫雷,输入"xyzzy",然后按"右Shift+Enter"。这时候你把鼠标停留在扫雷的任何一个方快上。仔细屏幕最左上角就会有个亮点,亮点很小,只有一个象素。黑色表示该处是地雷,白色表示该处是空数字。
另外如果你玩的时候从一开始只标记地雷而不点出数字,时间会一直停留在0,(等到地雷全部被标出——然后狂点吧——记录就在眼前呵)
*** 作系统要求
win 2k/xp (在最新vista beta2中可用)
Windows 9x/me不可
Windows纸牌技巧
1、同时按住 Ctrl+Alt+Shift,再翻牌,则每次只会翻一张牌。
2、把Windows子目录下的“SolINI”文件中的“后退=XX”这一行删去,则每次进入游戏时背面将随机变化。
Windows空当接龙技巧
1、开始游戏,同时按下Ctrl+Shift+F10,在出现的对话框中点击“终止”,然后随便移动一张牌,马上过关。
2、选局时输入“-1”或“-2”,你会有意外的发现。
Windows红心大战技巧
先在注册表中找到“HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\
CurrentVersion\Applels\Hearts”(如无此项,先到游戏中修改一下电脑的名字),新增字符串值“zb”,值为“42”。然后启动“红心大战”,开局后按Ctrl+Alt+Shift+F12,看全牌(联网时也有用)。
Windows三维d球(3D Pinball)秘笈和技巧
小技巧
赚更多分:
通过"重新上场航道"点亮顶部所有的三盏灯,攻击缓冲器会改变颜色(蓝绿黄红)从而获得更多的分。
轻轻地发射球,让它点亮右边发射轨道的三盏调度灯,你可以得到7万5千分。
让球通过超空间斜道来旋转旗帜。当它旋转的时候,开始新游戏。旗帜会继续旋转,而且你在新游戏开始时会获得一些分。
你可以启用 bmax
来获得无限球从而得到非常高的纪录。当你这样获得足够高的纪录的时候,按住"撞针"直到提示"TILT",这样你就丢了一个球。注释:在丢了一个球后你仍然可以使用
1max 来继续,如果这样当你要退出时就不需要倾斜桌子了。
移动重新上场灯:
摇动挡板可以移动顶上的重新上场灯。
高技能发射:
调度斜道有隐藏的高技能发射。把球发射到部分斜道而且让它落到斜道的第一盏**拱形灯,这样就会赚到丰厚的分数。开启高技能发射,点亮每盏灯的分值为:
第一盏:15,000
第二盏:30,000
第三盏:75,000
第四盏:30,000
第五盏:15,000
第六盏:7,500
只完成一个任务就升级:
在用科学任务完成军校生时,当任务灯闪烁的时候,尽可能快地让球漏下。如果你不想丢一个球,请确认有额外球或重玩球。当球回到撞针处时,你就会在下一等级而且所有任务灯都打开了。现在你只需要完成一个任务就升一级。确认你有一个加分球或重玩球来故计重施,否则很快就玩不走了。
作弊码
加分球
在游戏中输入 1max 注:在Windows 2000/XP上有效
无限球:
在游戏刚启动后输入 bmax 注:在Windows 2000/XP上有效
注:额外的球会在"**漩涡式星体"处出现。
启动引力井:
在游戏开始时输入 gmax 注:在Windows 2000/XP上有效
立即晋级:
游戏中输入 rmax 注:这样将得不到分
3上机 *** 作时学生玩游戏是很多信息技术课老师面临的一个难题,尤其是Windows自带的几个经典游戏经久耐玩,让学生乐此不疲。本学期我校新建了一个机房,预装了WindowsXP *** 作系统,笔者删除了其中所有自带游戏。但一些高年级学生上机后,通过“控制面板”中的“添加/删除Windows组件”把“游戏”又装了上去。那么有没有办法彻底封杀Windows XP自带游戏呢?与Windows 98不同,Windows XP在“添加/删除Windows组件”中并没有列出所有的组件,一些组件如画图、写字板等都被隐藏了起来,不能任意删除和修改。那么,我们也可以将 “附件与工具”中的“游戏”组件隐藏起来,让学生无法任意安装。
首先在学生机上通过“添加/删除Windows组件”删除Windows自带游戏。
再选择一台学生机,打开Windows\inf文件夹,找到其中的Sysocinf文件,这个文件记录的就是“添加/删除Windows组件”中各组件的属性。用任意一款文本编辑软件(如记事本)打开它,找到其中[Components]第二段的第一行:“Games=ocgendll,OcEntry,gamesinf,7”,将其更改为“Games=ocgendll,OcEntry,gamesinf,hide,7”,使“游戏”组件具有Hide(隐藏)属性,保存文件。此时再打开“添加/删除Windows组件”,你会发现“附件与工具”中已经没有了“游戏”项,也就是说,学生没有办法再安装Windows自带游戏了。如果今后需要再安装游戏,将“hide”去掉恢复原句即可。
现在的学校机房一般都安装有电子教室软件,利用电子教室常用的“文件分发”功能,将已经编辑好的Sysocinf文件发送到其他学生机的Windows\inf文件夹中替代原文件,这样就可以在整个机房全面封杀Windows自带游戏。
通过修改Sysocinf文件中的相关语句,你还可以将“附件”中“备份”、“系统还原”、“磁盘压缩”等不宜学生 *** 作的Windows组件全部卸载
兴趣是最好的老师。心血来潮了想做个什么小程序,就认真去研究。其实每一次能完整的把心里想做的东西完成对自己来讲都是一次巨大的进步。
楼主的路走的没错,死读书太无聊了,等无聊到兴趣全无的时候就惨了!每读一段书,掌握一些知识点后,做一些自己力所能及的程序,对自己来讲一是练习,二也拓展了自己的知识面!
------------------------------------
我学windows程序计设就是从写扫雷外挂开始的。嘿嘿!
以上就是关于怎么样删除windows XP自带的游戏,扫雷,翻牌等全部的内容,包括:怎么样删除windows XP自带的游戏,扫雷,翻牌等、C++好难啊,求帮忙做一个扫雷的源程序。、急求用c语言编写扫雷详细代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)