博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codewars047: 街头霸王2
阅读量:6404 次
发布时间:2019-06-23

本文共 2583 字,大约阅读时间需要 8 分钟。

hot3.png

Instructions

Solution:

package codewars.jan;//--https://www.codewars.com/kata/5853213063adbd1b9b0000be/train/java//--https://www.codewars.com/kata/street-fighter-2-character-selection-part-2/train/javaimport java.util.*;public class StreetFighter2 {	private static String left(int i, int j, String[] arr) {		int to = j;		while (true) {			to--;			if (to == -1) {				to = arr.length - 1;			}			if (!"".equals(arr[to])) {				break;			}		}		return String.format("%d%d%s", i, to, arr[to]);	}	private static String right(int i, int j, String[] arr) {		int to = j;		while (true) {			to++;			if (to == arr.length) {				to = 0;			}			if (!"".equals(arr[to])) {				break;			}		}		return String.format("%d%d%s", i, to, arr[to]);	}	public static String[] superStreetFighterize(String[][] fighters,			int[] position, String[] moves) {		Map
map = new HashMap
(); final int rows = fighters.length; final int cols = fighters[0].length; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { String fighter = fighters[i][j]; if ("".equals(fighter)) { continue; } if (i == 0) { map.put(String.format("%d,%d-up", i, j), String.format("%d%d%s", i, j, fighters[i][j])); } else if ("".equals(fighters[i - 1][j])) { map.put(String.format("%d,%d-up", i, j), String.format("%d%d%s", i, j, fighters[i][j])); } else { map.put(String.format("%d,%d-up", i, j), String.format( "%d%d%s", i - 1, j, fighters[i - 1][j])); } if (i == rows - 1) { map.put(String.format("%d,%d-down", i, j), String.format("%d%d%s", i, j, fighters[i][j])); } else if ("".equals(fighters[i + 1][j])) { map.put(String.format("%d,%d-down", i, j), String.format("%d%d%s", i, j, fighters[i][j])); } else { map.put(String.format("%d,%d-down", i, j), String.format( "%d%d%s", i + 1, j, fighters[i + 1][j])); } map.put(String.format("%d,%d-left", i, j), left(i, j, fighters[i])); map.put(String.format("%d,%d-right", i, j), right(i, j, fighters[i])); } } List
list = new ArrayList
(); String[] current = new String[] { String.valueOf(position[0]), String.valueOf(position[1]) }; for (int i = 0; i < moves.length; i++) { String value = map.get(String.format("%s,%s-%s", current[0], current[1], moves[i])); list.add(value.substring(2)); current[0] = String.valueOf(value.charAt(0)); current[1] = String.valueOf(value.charAt(1)); } return list.toArray(new String[0]); }}

转载于:https://my.oschina.net/u/553266/blog/818381

你可能感兴趣的文章
Spring-MVC 访问静态资源
查看>>
利用PRTG实现对cisco路由器的cpu负载、端口流量等的监控
查看>>
OpenStack身世揭秘
查看>>
安装Centos7及注意事项
查看>>
flex中多个属性绑定一个目标属性的例子代码
查看>>
ubuntu修改用户名
查看>>
mysql主从不一致解决方法
查看>>
PAIP.pdf使用
查看>>
09.19 第二天
查看>>
USB端口管控应用解决方案
查看>>
使用网络发传真对现×××公的帮助
查看>>
1025 PAT Ranking
查看>>
搜索引擎优化SEO一般有哪些步骤或环节?
查看>>
指针,数组总结
查看>>
python学习笔记(四)
查看>>
我的友情链接
查看>>
zabbix监控环境的搭建(server端)
查看>>
计算机基础-计算机硬件
查看>>
实战:Windows 2008 WDS使用参考计算机创建安装映像
查看>>
删除组织单元
查看>>