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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© marsfan 中级黑马   /  2016-9-30 00:16  /  1162 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.Scanner;
import java.util.Random;
class  贪吃蛇{
        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 [1000];
                int arr2[]=new int [1000];
                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;
                        }
                }
        }
}

7 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
8888888888888
回复 使用道具 举报
厉害厉害见识了
回复 使用道具 举报
厉害   map还没学
回复 使用道具 举报

好像是二维数组吧
回复 使用道具 举报
这个有意思,可以研究一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马