A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yu244934256 中级黑马   /  2016-9-21 01:39  /  664 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class GluttonousSnake {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                int map[][] = {
                                { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
                                { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
                                { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
                                { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
                                { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
                                { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
                                { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
                                { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
                                { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0 },
                                { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
                                { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } };
                int arr1[] = new int[100];
                int arr2[] = new int[100];
                int l = 3;
                int x = 4, y = 2;
                for (int i = 0; i < l; i++) {
                        arr1[i] = i + x;
                        arr2[i] = y;
                        map[arr1[i]][arr2[i]] = 100;
                }
                map[arr1[0]][arr2[0]] = 3;
                showMap(map);
                while (true) {
                        System.out.println("w,a,s,d,f");
                        String a = sc.next();
                        if (a.equals("w")) {
                                if (map[arr1[0] - 1][arr2[0]] == 1) {
                                        map[arr1[l - 1]][arr2[l - 1]] = 1;
                                        for (int i = l - 1; i > 0; i--) {
                                                arr1[i] = arr1[i - 1];
                                                arr2[i] = arr2[i - 1];
                                        }
                                        arr1[0] -= 1;
                                } else if (map[arr1[0] - 1][arr2[0]] == 2) {
                                        l++;
                                        for (int i = l - 1; i > 0; i--) {
                                                arr1[i] = arr1[i - 1];
                                                arr2[i] = arr2[i - 1];
                                        }
                                        arr1[0] -= 1;
                                        point(map);
                                } else {
                                        break;
                                }
                        } else if (a.equals("s")) {
                                if (map[arr1[0] + 1][arr2[0]] == 1) {
                                        map[arr1[l - 1]][arr2[l - 1]] = 1;
                                        for (int i = l - 1; i > 0; i--) {
                                                arr1[i] = arr1[i - 1];
                                                arr2[i] = arr2[i - 1];
                                        }
                                        arr1[0] += 1;
                                } else if (map[arr1[0] + 1][arr2[0]] == 2) {
                                        l++;
                                        for (int i = l - 1; i > 0; i--) {
                                                arr1[i] = arr1[i - 1];
                                                arr2[i] = arr2[i - 1];
                                        }
                                        arr1[0] += 1;
                                        point(map);
                                } else {
                                        break;
                                }
                        } else if (a.equals("a")) {
                                if (map[arr1[0]][arr2[0] - 1] == 1) {
                                        map[arr1[l - 1]][arr2[l - 1]] = 1;
                                        for (int i = l - 1; i > 0; i--) {
                                                arr1[i] = arr1[i - 1];
                                                arr2[i] = arr2[i - 1];
                                        }
                                        arr2[0] -= 1;
                                } else if (map[arr1[0]][arr2[0] - 1] == 2) {
                                        l++;
                                        for (int i = l - 1; i > 0; i--) {
                                                arr1[i] = arr1[i - 1];
                                                arr2[i] = arr2[i - 1];
                                        }
                                        arr2[0] -= 1;
                                        point(map);
                                } else {
                                        break;
                                }

                        } else if (a.equals("d")) {
                                if (map[arr1[0]][arr2[0] + 1] == 1) {
                                        map[arr1[l - 1]][arr2[l - 1]] = 1;
                                        for (int i = l - 1; i > 0; i--) {
                                                arr1[i] = arr1[i - 1];
                                                arr2[i] = arr2[i - 1];
                                        }
                                        arr2[0] += 1;
                                } else if (map[arr1[0]][arr2[0] + 1] == 2) {
                                        l++;
                                        for (int i = l - 1; i > 0; i--) {
                                                arr1[i] = arr1[i - 1];
                                                arr2[i] = arr2[i - 1];
                                        }
                                        arr2[0] += 1;
                                        point(map);
                                } else {
                                        break;
                                }
                        }
                        for (int i = 1; i < l - 1; i++) {
                                map[arr1[i]][arr2[i]] = 100;
                        }
                        map[arr1[0]][arr2[0]] = 3;
                        showMap(map);

                }
        }

        public static void showMap(int[][] map) {
                for (int i = 0; i < map.length; i++) {
                        for (int j = 0; j < map[i].length; j++) {
                                if (map[i][j] == 0) {
                                        System.out.print("■");
                                } else if (map[i][j] == 1) {
                                        System.out.print("  ");
                                } else if (map[i][j] == 100) {
                                        System.out.print("○");
                                } else if (map[i][j] == 2) {
                                        System.out.print("☆");
                                } else if (map[i][j] == 3) {
                                        System.out.print("●");
                                }

                        }
                        System.out.println("");
                }
        }

        public static void point(int map[][]) {
                Random sj = new Random();
                while (true) {
                        int a = sj.nextInt(10) + 1;
                        int b = sj.nextInt(20) + 1;
                        if (map[a][b] == 1) {
                                map[a][b] = 2;
                                break;
                        }
                }
        }
}

8 个回复

倒序浏览
可以没毛病、、。。。。。
回复 使用道具 举报
佩服的五体投地
回复 使用道具 举报
玩玩看。
回复 使用道具 举报
松松2016 来自手机 中级黑马 2016-9-21 12:20:53
报纸
棒棒哒我也要学会
回复 使用道具 举报
6666666666
回复 使用道具 举报
学来学期待学完基础班的我是个啥样子了
回复 使用道具 举报
听不错的!!!!!!
回复 使用道具 举报
灵动 中级黑马 2016-9-21 21:56:40
9#
666666;樓主+1
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马