java怎么获取游戏npc坐标,找到最近的NPC

/*

思路:循环遍历的方式,建立一个二维数组,存NPC坐标,给出一个下标标记实时更新最短距离的下标

或者不用数组存储,直接用两个变量短暂存储

*/

/*

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class Main{

public static void main(String[] args) throws IOException{

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String[] str = br.readLine().split(",");

int x = Integer.parseInt(str[0].trim());

int y = Integer.parseInt(str[1].trim());

int n = Integer.parseInt(str[2].trim());

int min = Integer.MAX_VALUE;

int index = 0;

int[][] arr = new int[n][2];

for(int i = 0,j=i+3;i

arr[i][0] = Integer.parseInt(str[j].trim());

arr[i][1] = Integer.parseInt(str[j+1].trim());

j = j+2;

int temp = Math.abs(arr[i][0] - x) + Math.abs(arr[i][1] - y);

if(min > temp){

index = i;

min = temp;

}

}

System.out.println("(" + arr[index][0] + "," + arr[index][1] + ")");

}

}*/

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class Main{

public static void main(String[] args) throws IOException{

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String[] str = br.readLine().split(",");

if (str.length 

return;

}

int x = Integer.parseInt(str[0].trim());

int y = Integer.parseInt(str[1].trim());

int n = Integer.parseInt(str[2].trim());

int min = Integer.MAX_VALUE;

int a = 0, b = 0;

for(int i = 3;i

int na = Integer.parseInt(str[i].trim());

int nb = Integer.parseInt(str[i+1].trim());

int temp = Math.abs(na - x) + Math.abs(nb - y);

if(min > temp){

a = na;

b = nb;

min = temp;

}

}

System.out.println("(" + a + "," + b + ")");

}

}

/*

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.*;

public class Main {

public static void main(String[] args) throws IOException {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String[] s = br.readLine().split(",");

if (s.length 

return;

}

int x = Integer.parseInt(s[0].trim());

int y = Integer.parseInt(s[1].trim());

int n = Integer.parseInt(s[2].trim());

double min = Integer.MAX_VALUE;

int nx = 0, ny = 0;

for (int i = 3; i 

int a = Integer.parseInt(s[i].trim());

int b = Integer.parseInt(s[i + 1].trim());

double c = Math.abs(x - a) + Math.abs(y - b);

if (min > c) {

nx = a;

ny = b;

min = c;

}

}

System.out.println("(" + nx + "," + ny + ")");

}

}*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值