亚洲国产爱久久全部精品_日韩有码在线播放_国产欧美在线观看_中文字幕不卡在线观看

戰蛇挑戰#Java

在本系列中,我將分享我在自我施加的編程挑戰方面的進展:用盡可能多的不同編程語言構建 battlesnake。

查看第一篇文章,了解本系列的簡短介紹。

您也可以在 github 上關注我的進度。

爪哇

java是企業的語言,很多大型后臺系統的業務邏輯都是用它編寫的。
我過去編寫過很多 java 代碼,但 python 和 javascript 已經在我當代的編程活動中占據了一席之地。
因為 java 可以用來編寫非常可讀和健壯的軟件(java ide 往往有很好的重構支持),所以我仍然覺得它是適合某些系統的語言。

與它的前輩相比,java 給開發者帶來了很多改進(當然取決于你的口味):自動內存管理、內置集合類型和豐富的標準庫。然而,該語言現在已經有 30 多年的歷史了,并且有一些明顯的時代跡象,例如標準庫中不支持 json(但它確實支持 xml ?)。

今天開箱即用的 java 是否仍可用于構建干凈簡潔的 battlesnake 實現?繼續閱讀以找出答案。

立即學習“Java免費學習筆記(深入)”;

你好世界設置

這就是 snake.java 的樣子:

public class snake {

    public static void main(string args[]) {
        system.out.println("hello world!");
    }

}
關注:愛掏網

這就是 dockerfile 的樣子:

from eclipse-temurin:17-jdk
run mkdir /app
workdir /app
copy snake.java .
run javac snake.java
cmd ["java", "snake"]
關注:愛掏網

這是實際的開發設置:

一個基本的網絡服務器

說實話,我不得不在 google 上搜索 java 標準庫中基本 web 服務器的可用性。事實證明,(根據包名稱)有一個 http 服務器,它可能是標準庫中最古老的部分之一:com.sun.net.httpserver.httpserver。

使用服務器實現實際上非常簡單,這是我處理 battlesnake 元數據請求的初始代碼:

import com.sun.net.httpserver.httpserver;
import com.sun.net.httpserver.httphandler;
import com.sun.net.httpserver.httpexchange;
import java.io.ioexception;
import java.io.outputstream;
import java.net.inetsocketaddress;

public class snake {

    static class battlesnakehandler implements httphandler {
        public void handle(httpexchange exchange) throws ioexception {
            string response = "{\"apiversion\": \"1\", " +
                "\"author\": \"'robvanderleek\", \"version\": \"1.0\", " +
                "\"color\": \"#b07219\", \"head\": \"safe\", " +
                "\"tail\": \"sharp\"}";
            exchange.sendresponseheaders(200, response.length());
            outputstream os = exchange.getresponsebody();
            os.write(response.getbytes());
            os.close();
        }
    }

    public static void main(string args[]) throws ioexception {
        int port = integer.parseint(
            system.getenv().getordefault("port", "3000"));
        httpserver server = httpserver.create(new inetsocketaddress(port), 0);
        server.createcontext("/", new battlesnakehandler());
        server.setexecutor(null);
        server.start();
        system.out.println(
            string.format("starting battlesnake server on port: %d", port));
    }

}
關注:愛掏網

游戲邏輯

游戲邏輯代碼的一個重要部分是解析傳入的 json 數據。標準java庫不包含json解析器,典型的解析器庫包含數千行代碼。
經過大量的修改,我能夠解析 battlesnake json,并且只有那個 json

下面是代碼中與 json 解析相關的四個函數(這些函數解析字段、對象和數組):

    private string getfield(string json, string name) {
        string needle = '"' + name + '"';
        return json.substring(json.indexof(needle) + needle.length() + 1);
    }

    private string getbalanced(string json, string name, char open,
            char close) {
        string start = getfield(json, name);
        int idx = 0, indent = 0;
        do {
            if (start.charat(idx) == open) {
                indent++;
            } else if (start.charat(idx) == close) {
                indent--;
            }
            idx++;
        } while (indent > 0);
        return start.substring(0, idx);
    }

    private string getobject(string json, string name) {
        return getbalanced(json, name, '{', '}');
    }

    private string getarray(string json, string name) {
        return getbalanced(json, name, '[', ']');
    }
關注:愛掏網

游戲邏輯的其余部分非常簡單,我使用了一個基本的坐標類以獲得更好的可讀性和簡潔性:

private Coordinate nearestFood(String board, Coordinate head) {
        String foodJson = getArray(board, "food");
        Set<coordinate> food = getCoordinates(foodJson);
        double distance = Double.MAX_VALUE;
        int x = 255, y = 255;
        for (Coordinate f: food) {
            double d = Math.sqrt(Math.pow(head.x - f.x, 2) +
                    Math.pow(head.y - f.y, 2));
            if (d 



<p>我確信游戲邏輯可以改進,為什么不嘗試一下呢? ?</p>

<p>這是完整的實際代碼:</p>

<p><img src="https://img.php.cn/upload/article/000/465/014/172299026158258.gif" alt="戰蛇挑戰#Java"></p>

<p>c battlesnake 的完整代碼可以在 github 上找到。</p>

<h2>
  
  
  感謝反饋!
</h2>

<p>我希望你喜歡閱讀我的編碼冒險。</p>

<p>請在下面的評論中告訴我您對上面的代碼的看法,或者您期待本系列中的哪些編程語言。</p>

<p>直到下一種語言!</p>


          

            
  

            
        </coordinate>
關注:愛掏網

以上就是戰蛇挑戰#Java的詳細內容,更多請關注愛掏網 - it200.com其它相關文章!

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

亚洲国产爱久久全部精品_日韩有码在线播放_国产欧美在线观看_中文字幕不卡在线观看

    
    

    久久香蕉国产线看观看av| 国产精品综合网站| 亚洲欧美日韩国产成人精品影院 | 欧美日韩免费观看一区三区 | 国产一区再线| 欧美日韩国语| 欧美jizzhd精品欧美喷水| 亚洲欧美综合精品久久成人| 亚洲精品欧美极品| 影音先锋在线一区| 国产亚洲精品久| 国产精品日韩专区| 欧美日韩国产在线播放网站| 老司机免费视频久久| 欧美一区二区三区在线观看| 亚洲一区二区三区免费观看| a4yy欧美一区二区三区| 亚洲国产va精品久久久不卡综合| 好吊日精品视频| 国产亚洲一区在线| 国产视频不卡| 国产无一区二区| 国产午夜精品全部视频在线播放 | 国产精品美女主播在线观看纯欲| 欧美人成网站| 欧美区高清在线| 欧美日韩精品不卡| 欧美日韩视频在线观看一区二区三区 | 欧美在线关看| 午夜亚洲性色视频| 欧美伊人影院| 久久久久天天天天| 久久香蕉国产线看观看av| 久久婷婷色综合| 久久尤物视频| 欧美精品尤物在线| 国产精品高清一区二区三区| 国产精品久久久久av| 国产伦精品一区二区三区在线观看| 国产精品视频精品视频| 国产精品久久网| 国产婷婷97碰碰久久人人蜜臀| 国产伦精品一区二区三区四区免费| 国产欧美日韩免费| 亚洲大片免费看| 亚洲乱码国产乱码精品精98午夜| 国产精品99久久久久久久久 | 亚洲一区二区三区四区五区黄| 亚洲图片在线观看| 久久精品国产v日韩v亚洲 | 亚洲激情av| 亚洲无亚洲人成网站77777| 性做久久久久久| 你懂的视频欧美| 国产精品美女久久| 在线播放中文一区| 亚洲性视频h| 久久亚洲电影| 国产精品xxx在线观看www| 国产日韩一区二区| 亚洲免费观看高清完整版在线观看熊 | 日韩视频一区二区| 久久国产视频网站| 欧美日韩国产大片| 国产在线精品自拍| 中文精品在线| 免播放器亚洲一区| 国产欧美日韩一区二区三区在线观看 | 欧美在线视频日韩| 欧美色图五月天| 国际精品欧美精品| 亚洲尤物精选| 欧美日韩国内| 亚洲国产精品99久久久久久久久| 亚洲综合视频1区| 欧美日韩国产页| 亚洲国产高清一区二区三区| 久久激情综合网| 国产精品亚洲视频| 亚洲午夜黄色| 欧美手机在线视频| 亚洲精品网址在线观看| 另类专区欧美制服同性| 国内精品免费午夜毛片| 亚洲欧美三级在线| 国产精品国产三级国产专区53| 91久久精品美女| 欧美激情一二三区| 亚洲电影免费在线观看| 久久只有精品| 激情视频一区二区| 久久精品99无色码中文字幕| 国产日韩欧美在线一区| 午夜视频一区| 国产午夜精品一区二区三区欧美 | 亚洲欧美成人在线| 欧美天天影院| 亚洲一级二级| 国产精品v欧美精品∨日韩| 宅男噜噜噜66国产日韩在线观看| 欧美精品18+| 日韩视频永久免费| 欧美色图五月天| 亚洲欧美日韩在线| 国产在线日韩| 欧美成人日本| 一区二区三区高清在线| 国产精品www.| 欧美一级播放| 在线观看亚洲a| 欧美日韩国产综合在线| 香蕉乱码成人久久天堂爱免费| 国产精品视频最多的网站| 久久精品亚洲精品| 亚洲精选91| 国产精品一二三视频| 久久久久久9| 99ri日韩精品视频| 国产美女精品一区二区三区| 久久全球大尺度高清视频| 亚洲伦理在线免费看| 国产精品久久久久久久久动漫| 久久国产婷婷国产香蕉| 亚洲经典三级| 国产精品丝袜xxxxxxx| 久久久久欧美精品| 一区二区动漫| 在线高清一区| 国产精品一卡二卡| 牛牛影视久久网| 香蕉国产精品偷在线观看不卡| 在线观看免费视频综合| 国产精品久久久久久久久搜平片| 久久久久久网址| 亚洲尤物在线| 亚洲久久在线| 在线播放日韩欧美| 国产日产欧产精品推荐色 | 国产精品福利在线观看| 美女露胸一区二区三区| 亚洲欧美国内爽妇网| 亚洲精品在线看| 在线免费观看日本一区| 国产女人精品视频| 欧美午夜在线一二页| 欧美国产高清| 久久综合久色欧美综合狠狠| 午夜宅男久久久| 9色porny自拍视频一区二区| 在线观看视频欧美| 国产亚洲午夜| 国产老女人精品毛片久久| 欧美日韩一区二区在线观看视频| 蜜桃av一区二区| 久久综合五月| 久久精品99国产精品| 亚洲一区二区在线免费观看视频| 亚洲欧洲日韩在线| 亚洲国产欧美在线人成| 精品88久久久久88久久久| 国产欧美综合一区二区三区| 国产精品男女猛烈高潮激情| 欧美日韩综合视频网址| 欧美日韩国产色视频| 欧美激情精品久久久久久大尺度 | 欧美大片免费看| 久久伊人精品天天| 另类av导航| 欧美国产日韩a欧美在线观看| 狂野欧美激情性xxxx| 欧美成人一区二区三区| 欧美寡妇偷汉性猛交| 欧美激情综合色| 欧美日韩伦理在线免费| 欧美性色aⅴ视频一区日韩精品| 欧美日韩午夜在线视频| 国产精品嫩草影院一区二区| 国产精品网站在线观看| 国产日韩欧美a| 在线观看国产成人av片| 亚洲精品国产精品国自产观看浪潮| 亚洲免费播放| 亚洲一区一卡| 久久精品理论片| 欧美激情亚洲另类| 国产精品久久久久7777婷婷| 国产欧美一区二区三区视频| 曰本成人黄色| 在线亚洲一区| 久久久久久夜精品精品免费| 男人的天堂亚洲| 国产精品白丝jk黑袜喷水| 国产乱人伦精品一区二区 | 麻豆精品视频| 欧美日韩精品一区二区三区| 国产精品影片在线观看| 在线观看三级视频欧美| 一区二区三区四区国产| 久久久99精品免费观看不卡| 欧美精品日韩www.p站|