思路:
首先要确定蚂蚁的“坐标”,“头所在方位”,和所在格子的"颜色",然后根据其移动规则进行移动,根据所要移动的步数确定循环的次数哦b( ̄▽ ̄)d
import java.util.*; public class Main { static int[][] num; static String direction; public static void main(String[] args) { Scanner reader = new Scanner(System.in); int m = reader.nextInt();// 行数 int n = reader.nextInt();// 列数 num = new int[m][n]; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { num[i][j] = reader.nextInt();// 给矩阵赋值 } } int x = reader.nextInt(); //横坐标 int y = reader.nextInt(); //纵坐标 direction = reader.next(); //初始方向 int step = reader.nextInt();//需要走的步骤 remove(x, y, step); //进行移动 } private static void remove(int x, int y, int step) { // TODO Auto-generated method stub for (int i = 0; i < step; i++) { if (num[x][y] == 1) {// 黑格 switch (direction) { case "U": direction = "R";//重设方向 num[x][y] = 0; //变为白格 y += 1; //位置移动 break; case "D": direction = "L"; num[x][y] = 0; y -= 1; break; case "L": direction = "U"; num[x][y] = 0; x -= 1; break; case "R": direction = "D"; num[x][y] = 0; x += 1; break; } } else {// 白格 switch (direction) { case "U": direction = "L";//重设方向 num[x][y] = 1; //变为黑格 y -= 1; //移动位置 break; case "D": direction = "R"; num[x][y] = 1; y += 1; break; case "L": direction = "D"; num[x][y] = 1; x += 1; break; case "R": direction = "U"; num[x][y] = 1; x -= 1; break; } } } System.out.println(x + " " + y); //所在位置输出 } }