Cmin里怎么写扫雷( 四 )


4.如何用C语言编程 扫雷C语言模拟扫雷的代码如下:#include#include#include int map[9][9] = {0}; int result[9][9] = {0}; int mine[10][2]; bool Check(int i) { int j; for(j=0;j=0 && x+1<=8 && y-1>=0 && y+1<=8) {//中间位置 for(i=x-1;i<=x+1;i++) for(j=y-1;j<=y+1;j++) sum += map[i][j]; return (sum-map[x][y])/9; } if(x==0 && y==0) return (map[0][1]+map[1][0]+map[1][1])/9; //左上角 if(x==0 && y==8) return (map[0][7]+map[1][7]+map[1][8])/9; //右上角 if(x==8 && y==0) return (map[7][0]+map[7][1]+map[8][1])/9; //左下角 if(x==8 && y==8) return (map[7][7]+map[7][8]+map[8][7])/9; //右上角 if(x==0) {//上边界 for(i=x;i<=x+1;i++) for(j=y-1;j<=y+1;j++) sum += map[i][j]; return (sum-map[x][y])/9; } if(x==8) {//下边界 for(i=x-1;i<=x;i++) for(j=y-1;j<=y+1;j++) sum += map[i][j]; return (sum-map[x][y])/9; } if(y==0) {//左边界 for(i=x-1;i<=x+1;i++) for(j=y;j<=y+1;j++) sum += map[i][j]; return (sum-map[x][y])/9; } if(y==8) {//右边界 for(i=x-1;i<=x+1;i++) for(j=y-1;j<=y;j++) sum += map[i][j]; return (sum-map[x][y])/9; } } void main() { int i,j,x,y; srand((int)time(0)); for(i=0;i<10;i++) { do{ mine[i][0] = rand()%9; mine[i][1] = rand()%9; }while(Check(i)); printf("%d\t%d\n",mine[i][0],mine[i][1]); } //标识地雷 for(i=0;i<10;i++) map[mine[i][0]][mine[i][1]] = 9; //计算地雷的数目 for(i=0;i<9;i++) { for(j=0;j<9;j++) { if(map[i][j] == 9) result[i][j] = 9; else result[i][j] = MineNum(i,j); printf("%d ",result[i][j]); } printf("\n"); } } 。
5.用C编写一个扫雷程序需要的基础知识有哪些这个算法太繁杂,我有VB.NET的关键代码:
Public Class Form
【Cmin里怎么写扫雷】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 。