代码的出现 - 自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的问题或与此模板相关的任何内容,请查看以下资源: