美文网首页
Mine-clearance's FIle

Mine-clearance's FIle

作者: DybbukCity | 来源:发表于2014-11-06 16:59 被阅读0次

    Mineclearance

    目的(Purpose)


    With Java generic under Windows 7 bring minesweeping game
    用Java仿制win7下自带游戏扫雷

    打开游戏(OpentheGame)


    首先会看到如下界面:
    Mineclearance.png

    游戏规则(The rules of the game)


    (本游戏没有原版的选择游戏难度功能。)扫雷就是要把所有非地雷的格子揭开从而获得胜利,踩到地雷则游戏失败。

    游戏区域由81个方格组成,鼠标左键随机单击一个方格,方格即被打开并显示出方格中的数字;方格中数字则表示其周围的8个方格隐藏了几颗雷;如果点开的格子显示数字0,即其周围有0颗雷,则其周围格子自动打开;如果其周围还有0,则会引发连锁反应;在你认为有雷的格子上,点击右键即可标记雷字,再点击一次右键可把雷字变成问号;如果一个已打开格子周围所有的雷已经正确标出,则可以在此格上点击鼠标左键两次以打开其周围剩余的无雷格。这里需要注意,如果有不是雷的方格被标记了雷 ……当自动排雷过后,标记被取消,依然显示出周围雷数的数字,不会出任何问题(好吧,我承认这是个BUG),1代表1的上下左右及斜角合计有一颗雷,依次轮推,2则有2颗,3则有3颗...最后,游戏胜利和失败分别会有如下提示:

    游戏胜利:
    WintheMineclearance.png

    点击确定会重新开始游戏,点击取消则退出程序。

    游戏失败:
    FailMineclearance.png

    点击确定重新开始游戏,退出请在重新开始后单击红叉。

    界面设置


    private Need[] needs = new Need[82]; public static int INIT_GAME_WIDTH = 333; public static int INIT_GAME_HEIGHT = 333;
    直接设定81个小方格,设定宽高都为333.

    方法摘要


    Random r = new Random(); Set<Integer> bigbingnumber = new HashSet<Integer>(); for(int i=0; i<10; i++) { int temp = r.nextInt(81); while(temp == 0 || bigbingnumber .contains(temp)) {// 不能为0并且不重复 temp = r.nextInt(81); } bigbingnumber.add(temp); }
    随机产生十个1-81范围内不重复的数字。

    if(e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2)
    设定鼠标左键双击排雷的方法,在里面进行方法的判断。

    public Need(Need[] needs) { this.needs = needs; }
    持所有小方块的引用,方便进行操作。

    public void moved(Set<Need> set)
    递归,set是用来装已经翻过的小方块的,不然会死循环,为什么用set,因为set是不重复的

    相关文章

      网友评论

          本文标题:Mine-clearance's FIle

          本文链接:https://www.haomeiwen.com/subject/ywdbtttx.html