首页 > 其他分享 >欢迎体验BotBattle

欢迎体验BotBattle

时间:2024-03-30 13:33:23浏览次数:36  
标签:util java int Bot 欢迎 BotBattle Cell 体验 import

目录

1.游戏网址

点击进入:app6735.acapp.acwing.com.cn

2.玩法介绍


  • 首先,注册并登录账号
  • 我的Bots 页面查看并管理自己的 Bot
  • 匹配开始前,亲自出马(玩家键入 W/S/A/D 控制你的蛇)或者由喜欢的 Bot 出战(如果创建过Bot)
  • 匹配成功后,两条蛇初始位于地图对角
  • 键盘输入,或者代码执行蛇的移动。每回合超过 5 秒不输入判定为出局
  • 玩家若撞向障碍物或任意蛇身则死亡,比赛结束
  • 赢得比赛获得天梯分
  • “对局列表”显示全服比赛回放

3.推荐的示例代码

以下是最简单的寻路算法示例,强烈推荐把它创建为您的第一个 Bot!

如果用更强的算法,I/O请参考该Bot
目前只支持.java代码

package com.kob.botrunningsystem.utils;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Bot implements java.util.function.Supplier<Integer>{
    static class Cell{
        public int x,y;
        public Cell (int x, int y){
            this.x = x;
            this.y = y;

        }
    }
    private boolean check_tail_increasing(int step){
        if(step<=10) return true;
        return step % 3 == 1;
    }

    public List<Cell> getCells(int sx, int sy, String steps){
        steps = steps.substring(1, steps.length()-1);
        List<Cell> res=new ArrayList<>();
        int[] dx={-1,0,1,0}, dy={0,1,0,-1};

        int x =sx, y=sy;
        int step=0;
        res.add(new Cell(x, y));
        for(int i=0; i<steps.length();i++) {
            int d = steps.charAt(i) - '0';
            x+=dx[d];
            y+=dy[d];
            res.add(new Cell(x,y));
            if(!check_tail_increasing(++step)){
                res.remove(0);
            }
        }
        return res;
    }

    public Integer nextMove(String input) {
        String[] strs = input.split("#");
        int[][] g = new int[13][14];
        for (int i = 0,k=0; i <13 ; i++) {
            for (int j=0; j< 14;j++,k++){
                if (strs[0].charAt(k)=='1'){
                    g[i][j]=1;
                }
            }
        }
        int aSx = Integer.parseInt(strs[1]), aSy = Integer.parseInt(strs[2]);
        int bSx = Integer.parseInt(strs[4]), bSy = Integer.parseInt(strs[5]);

        List<Cell> aCells = getCells(aSx, aSy, strs[3]);
        List<Cell> bCells = getCells(bSx, bSy, strs[6]);

        for (Cell c:aCells) g[c.x][c.y]=1;
        for (Cell c:bCells) g[c.x][c.y]=1;
        int[] dx={-1,0,1,0}, dy={0,1,0,-1};
        for(int i=0;i<4;i++){
            int x=aCells.get(aCells.size()-1).x +dx[i];
            int y=aCells.get(aCells.size()-1).y +dy[i];
            if(x>=0 && x<13 && y>=0 && y<14 && g[x][y]==0){
                return i;
            }
        }
        return 0;
    }

    @Override
    public Integer get() {
        File file = new File("input.txt");
        try {
            Scanner sc = new Scanner(file);
            return nextMove(sc.next());
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        }

    }
}

标签:util,java,int,Bot,欢迎,BotBattle,Cell,体验,import
From: https://www.cnblogs.com/aijisjtu/p/18105385

相关文章

  • 第16期 Double Commander 开源免费的Total Commander替代型【体验100款文件管理工具】
     体验背景:我们正在做一款文件版本管理软件,追光几何(追光几何),期待以最无感的方式,解决新一代工程师文件管理的问题,让大家有更多时间去做快乐和有成就感的事情。所以打算体验100款文件管理软件,来取长补短。真实1h体验DoubleCommander是一款开源的跨平台文件管理软件,灵感来源......
  • V R虚拟现实元宇宙的前景|虚拟现实体验店加 盟合作|V R设备在线购买
        VR(虚拟现实)技术作为一种新兴的技术,正在逐渐改变人们的生活和工作方式。随着技术的不断进步,人们对于元宇宙的概念也越来越感兴趣。元宇宙是一个虚拟世界,通过VR技术可以实现人们在其中进行各种活动和交互。    元宇宙的前景可以说是非常广阔的。首先,元宇宙......
  • V R社交平台的用处|虚拟现实体验馆加盟|V R设备在线价格
    VR(虚拟现实)社交平台的用处可以体现在以下几个方面:    VR社交平台不仅可以丰富用户的社交体验,还可以在教育、艺术、商务等领域发挥重要作用,为用户提供更加多样化、互动性强的社交平台体验。VR游乐设备|VR娱乐设备|VR体验|VR设备加盟|VR数字乐园|VR+超感地带|西红柿......
  • 【JS球球大作战项目实战】+在线体验
    个人名片:......
  • 想体验macOS?快来获取适合VMware其他版本吧!
    前言前段时间写了用VMware虚拟机安装macOS的教程,今天给小伙伴分享的系统镜像同样适用于VMware。但是否仅适用VMware,小伙伴可以自行测试。在安装macOS12或以上版本前,建议升级你的VMware虚拟机版本。小白在VMware16.0.0版本测试安装macOS12或以上版本过几次,都会出现无法进......
  • 强力工具(欢迎fork):Java版本的Sybase ASE ISQL命令行
    \1.背景曾经,经常遇到有人问,Sybase(ASE,国内基本上把以前的SybaseASE数据库简称为Sybase数据库,现在官方已经叫做SAPASE,在我看来无所谓。只要大家知道它是哪个数据库就行了。)数据库有没有短小点的命令行工具。我说,昨个短小法?SybaseASE确实自带一个isql命令行,功能也很......
  • 免费体验翔云身份证实名认证接口!
    现如今,无论是银行开户、办理社保、购买保险、在线教育、电商购物等等的应用场景,都需要进行身份证的实名认证。随着人工智能技术的不断创新,身份证实名认证已经逐步实现了智能化、在线化。也正因如此,企业对于身份证实名认证接口的需求也在不断增多。翔云身份证识别与身份证实名认证......
  • 鸿蒙应用开发新体验——论大厂产业规划与就业趋势
    之前很多同学都能看到各种“前端已死、全是外包,程序员还有没有出路”等话题,到底是我们国内产业结构导致行业就业寒冬,还是利用求职者不明白市场的信息差来制造焦虑?结合近年来,od走入大家视角。做技术的程序员应该都不陌生od这个词,也有好多人疑惑这到底是为什么,互联网大厂频频“广进......
  • ✨一键释放手机空间,让生活更流畅——手机清理大师超实用体验分享
    ......
  • 铁威马TOS 6.0 Beta全球公测进行中,快来体验一下吧!
    铁威马TOS6.0Beta已经正式上线啦大家体验了吗?今天和大家分享TOS6.0的更新指南01TOS6Beta更新指南为了更好的体验TOS6请细阅以下指南敲重点!本次更新仅适用于TOS5.1.123或以后的版本;如您的设备不符合更新条件,请勿更新!否则,可能会出现系统崩溃。1.适用机型F2-221......