代碼的出現 - 自2015年12月的年度活動。從那以後每年,隨著12月的第一天,每天都會在二十五天發表節目拼圖比賽。一系列以聖誕節為導向的挑戰為您提供了使用您選擇的語言來回答的任何輸入。我們為您提供一個準備在此存儲庫中與Kotlin語言一起使用的模板。
Code Kotlin模板的出現是GitHub存儲庫的一種特定類型,可讓您加快設置階段並立即開始編寫AOC解決方案。
總體想法很簡單 - 要基於此模板創建一個新項目,您需要登錄到GitHub帳戶並使用此模板綠色按鈕。請記住 -不要分叉!
根據您的帳戶中的此模板創建一個新項目後,專用的GitHub操作工作流將啟動並清除冗余文件中的代碼。它還將個性化代碼,以在名稱空間和Gradle屬性中使用您的用戶名和項目名稱。那有多酷?
每當 @Action-user Actor將第二個提交推向您的存儲庫時,您都可以將其克隆到Intellij Idea中。
重要的
在Intellij Idea打開項目後,請驗證您是否至少將Java 11用作項目SDK。為此,請訪問項目結構設置( ⌘CMD ;在Windows/Linux上的MacOS或Ctrl Alt Shift s上)。
從現在開始,一切都掌握在您手中!加入代碼競賽的出現,在發布後立即解決第01天。
在接下來的幾天復制Day01.kt
解決方案文件,並增加一天的數字。
筆記
記住參加Kotlin比賽!
為此,請使用圖標編輯您的項目關於部分,然後將AOC aoc-2024-in-kotlin
主題添加到您的項目中。
我們會找到您的存儲庫,並在我們的贈品中算上您。
使用此模板按鈕基於當前模板存儲庫創建一個新項目後,裸露的最小腳手架將出現在您的github帳戶中,並帶有以下結構:
.
├── README.md README file
├── build.gradle.kts Gradle configuration created with Kotlin DSL
├── settings.gradle.kts Gradle project settings
├── gradle* Gradle wrapper files
└── src
├── Day01.kt An empty implementation for the first AoC day
├── Utils.kt A set of utility methods shared across your days
│
│ (create those files manually)
├── Day01.txt An empty file for the Day 01 input data
└── Day01_test.txt An optional Day 01 test input data used for checks
筆記
所有任務輸入文件( src/*.txt
)都使用.gitignore
排除在存儲庫中 - 我們不應按照Eric Wastl的要求公開發布它們。
出現第一個難題時,請轉到Day01.kt
,對於每個part1
和part2
函數,使用從src/Day01.txt
文件加載的input
數據提供算法實現。此輸入數據對於這兩個部分都是常見的,您可以在代碼頁的出現在每天的底部找到它。
要讀取輸入數據,您可以使用readInput(name: String)
實用Utils.kt
方法,例如:
fun main () {
fun part1 ( input : List < String >): Int {
return input.size
}
val input = readInput( " Day01 " )
println (part1(input))
}
要調用您正在實現的算法,請單擊fun main()
定義旁邊的綠色播放按鈕。
重要的
在運行任務或測試之前創建相關文件,例如: src/Day01.txt
或src/Day01_test.txt
。
Utils.kt
文件還包含用於從給定的字符串中生成MD5哈希String.md5()
方法,並期望為了親吻原理而有更多的輔助功能。
每個難題都描述了一些測試條件,一小部分信息有助於檢查給定測試輸入的產生值是否有效。為了處理這種情況,您可以將這樣的輸入放入單獨的文件中,並對輸出執行檢查,例如:
fun main () {
// ...
val testInput = readInput( " Day01_test " )
check(part1(testInput) == 13 )
}
當前在單天提供part1
和part2
解決方案的方法Day##.kt
文件有時可能會帶來劣勢。對於簡單的案例,您的時間和資源幾乎不會引起人們的注意,但是當解決方案需要幾秒鐘時,值得考慮將每日解決方案分為兩個分開的部分,例如Day07_part1.kt
和Day07_part2.kt
。
算法的最終結果將在屏幕上打印,以便您可以將其傳遞到代碼網站的出現。
要使用第二天,請使用相關輸入數據將Day02.txt
文件放入src
,並創建具有類似代碼支架的Day02.kt
文件:
fun main () {
fun part1 ( input : List < String >): Int {
return 0
}
fun part2 ( input : List < String >): Int {
return 0
}
val input = readInput( " Day02 " )
println (part1(input))
println (part2(input))
}
筆記
該存儲庫有一個叉子,它利用Amper工具進行項目配置,該工具最近由JetBrains引入。
有關更多信息,請參見Code Kotlin模板的出現 - Amper Project。
如果您遇到了特定於Kotlin的問題或與此模板相關的任何內容,請查看以下資源: