文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用java实现马踏棋盘游戏

2023-06-29 04:35

关注

小编给大家分享一下如何使用java实现马踏棋盘游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

具体内容如下

在4399小游戏中有这样一个游戏

如何使用java实现马踏棋盘游戏

这是代码实现

package com.HorseChess;import java.awt.*;import java.util.ArrayList;import java.util.Comparator;import java.util.Scanner;public class HorseChess {    private static int X;    private static int Y;    private static boolean visited[];    private static boolean finished;    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        System.out.println("请输入行:");        X = sc.nextInt();        System.out.println("请输入列:");        Y = sc.nextInt();        System.out.println("请输入棋子所在行:");        int row = sc.nextInt();        System.out.println("请输入棋子所在列:");        int column = sc.nextInt();        int [][] chessboard = new int[X][Y];        visited = new boolean[X*Y];        traverchess(chessboard,row-1,column-1,1);        for(int[] rows : chessboard){            for (int step : rows){                System.out.print(step + "\t");            }            System.out.println();        }    }    public static void traverchess(int[][] chessboard,int row,int column,int step){        chessboard[row][column] = step;        visited[row * X+column] = true;        ArrayList<Point> ps = next(new Point(column,row));        sort(ps);        while (!ps.isEmpty()){            Point p = ps.remove(0);            if(!visited[p.y*X+p.x]){                traverchess(chessboard,p.y,p.x,step+1);            }        }        if(step<X*Y&&!finished){            chessboard[row][column] = 0;            visited[row * X + column] = false;        }        else {            finished = true;        }    }    //判断当前棋子下一个可以走的所有位置数组    public static ArrayList<Point> next(Point curpoint){        ArrayList<Point> ps = new ArrayList<Point>();        Point p1 = new Point();        if((p1.x = curpoint.x - 2)>=0&&(p1.y = curpoint.y - 1)>=0){            ps.add(new Point(p1));        }        if((p1.x = curpoint.x - 1)>=0&&(p1.y = curpoint.y - 2)>=0){            ps.add(new Point(p1));        }        if((p1.x = curpoint.x + 1)< X && (p1.y = curpoint.y - 2)>=0){            ps.add(new Point(p1));        }        if((p1.x = curpoint.x + 2)< X && (p1.y = curpoint.y - 1)>=0){            ps.add(new Point(p1));        }        if((p1.x = curpoint.x + 2)<X&&(p1.y = curpoint.y + 1)<Y){            ps.add(new Point(p1));        }        if((p1.x = curpoint.x + 1)<X&&(p1.y = curpoint.y + 2)<Y){            ps.add(new Point(p1));        }        if((p1.x = curpoint.x - 1)>=0&&(p1.y = curpoint.y + 2)<Y){            ps.add(new Point(p1));        }        if((p1.x = curpoint.x - 2)>=0&&(p1.y = curpoint.y + 1)<Y){            ps.add(new Point(p1));        }        return ps;    }    //使用贪心算法提高算法运行速度    public static void sort(ArrayList<Point> ps){        ps.sort(new Comparator<Point>() {            @Override            public int compare(Point o1, Point o2) {                int count1 = next(o1).size();                int count2 = next(o2).size();                if(count1<count2){                    return  -1;                }else if (count1 == count2){                    return 0;                }                else {                    return  1;                }            }        });    }}

然后照着步骤一步一步下就可以了

如何使用java实现马踏棋盘游戏

以上是“如何使用java实现马踏棋盘游戏”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯