From 3585879e64c7d1721dafd28865138238db939392 Mon Sep 17 00:00:00 2001 From: Andrew Kemp Date: Tue, 3 Mar 2020 08:18:35 -0500 Subject: [PATCH] Initial Commit --- .idea/.gitignore | 2 + .idea/codeStyles/Project.xml | 10 +++ .idea/codeStyles/codeStyleConfig.xml | 5 ++ .idea/kotlinc.xml | 10 +++ .idea/libraries/KotlinJavaRuntime.xml | 19 +++++ .idea/misc.xml | 6 ++ .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 ++ HelloKotlin.iml | 12 +++ out/production/HelloKotlin/AmsKt.class | Bin 0 -> 4743 bytes out/production/HelloKotlin/FortuneKt.class | Bin 0 -> 2591 bytes .../META-INF/HelloKotlin.kotlin_module | Bin 0 -> 55 bytes .../HelloKotlin/WhatToDoTodayKt.class | Bin 0 -> 1792 bytes src/ams.kt | 76 ++++++++++++++++++ src/dice.kt | 6 ++ src/fortune.kt | 31 +++++++ src/whatToDoToday.kt | 23 ++++++ 17 files changed, 214 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/kotlinc.xml create mode 100644 .idea/libraries/KotlinJavaRuntime.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 HelloKotlin.iml create mode 100644 out/production/HelloKotlin/AmsKt.class create mode 100644 out/production/HelloKotlin/FortuneKt.class create mode 100644 out/production/HelloKotlin/META-INF/HelloKotlin.kotlin_module create mode 100644 out/production/HelloKotlin/WhatToDoTodayKt.class create mode 100644 src/ams.kt create mode 100644 src/dice.kt create mode 100644 src/fortune.kt create mode 100644 src/whatToDoToday.kt diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..5c98b42 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,2 @@ +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..1bec35e --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..79ee123 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..16533ee --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/KotlinJavaRuntime.xml b/.idea/libraries/KotlinJavaRuntime.xml new file mode 100644 index 0000000..1a7265d --- /dev/null +++ b/.idea/libraries/KotlinJavaRuntime.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..e0844bc --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..5e2308c --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/HelloKotlin.iml b/HelloKotlin.iml new file mode 100644 index 0000000..245d342 --- /dev/null +++ b/HelloKotlin.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/out/production/HelloKotlin/AmsKt.class b/out/production/HelloKotlin/AmsKt.class new file mode 100644 index 0000000000000000000000000000000000000000..5971c78484380dc50c5559eab88a025a3503f530 GIT binary patch literal 4743 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 PZZy$qqQk^hCVur_j4Vf3 literal 0 HcmV?d00001 diff --git a/out/production/HelloKotlin/FortuneKt.class b/out/production/HelloKotlin/FortuneKt.class new file mode 100644 index 0000000000000000000000000000000000000000..c4d19871288019163d0612535d837776b5aa53d3 GIT binary patch literal 2591 zcmZuzTT>jz75;kmGQ+S!!$?R5-A0yd0}@&x+j1f##gYv1MhnPZjItq4GP~O>1G6)D zrWb*8F}dewIH^>Thdd;CAULU{RDQ@qew6KRW(Ne4s&>2kbe}%g@0_0hfAz2b0(c95 z5a^o;Bh?M$L#0CqSgY=aTlU?cU7l~O$|iSn0{M>X1p=o=m#WXsYbx@B_SD#-z@=&! zwacqgH6k*`Wj6>yx@#$FUx!buDz?5Akj^Fg@Z_57BMbi5)^yzK>^x|=Fl zEMWv^Obp|!z+gS>M$U3C+>RIDatxd&zq`IJgO-%E+&#+6);rT z;}9!x*j#oJc)C z%An(#fWDsG@ClNk!)|2R8Dk)>W70$!H^`gCK)`;%J;KCj9OOwQGT8>L$sdCkg z0*9bU<&%|7U}7PWPGBcSg<&g|muQxoGHQA;&2l0ctE5FJUirSj*#&n^I-YW*8`Bml zkf~L^w=C(-4+QQk(7m`D$zH0LBagKbI}O=%yRmfCisZfh(=-&+uwP_U@A8B&?0PX>`t31D4B_osi6SyXRjE2BKn$&|c9W3U2 z?0w2?E@QAC5^Yu(Tg(f+C6iu)ht-5{jqvrDj!i-$E0UN%cwRYiRLz{4mC9|o%4OYX zosAs3x=03#WFsY!kZj>%Em>&XZ%qn({B--g`E=XVETcCKn3|!H)OzG#LXH%zr`sdi zbultvX`FL6idH_QhphtV;*FA}j~I5|=Gk@Q%Rd!0tMALd6xqDB7V8|WnD+_4@L}5R z*=94JuB|Z?`3GT33LH=BZ;l9)(Sl2uB~2l0y8faYc?q3uUjDEfD6bfqwP0j_**T(I>JsjV|iQ8xPaC-LN7_R>l=j;o+xOA2OUA!@u zyP5w7CMI_A=HGck!!}2oQWIGwvf#HW#WsEEeoQ{Ow5{vXWObM^IM6w zTD@pLuGMwBUaK4SQmt+k?T>4FXjVt=8u@cK^F#SRLw~%3(op`7(DfahKW7y`M{x&z z=d4qoLpOHNKXT;@tO%^%xpMXk_!^#K{%MqmX0cP3*qQ zXadI=+W~$Q9A|he+C9i8+QtQ(z-9U|#`6iB;zM;BGk67cdgqdE;LJe|8ob?M zivVGogHD zotfiRbMn&U)i#`}{czabN{-OAhV)hKYhW_fOhVY1=}&ElSj zY5^&RMecci#3RQidee_KyRKU%FFa_58Z?F*Z9j4yuef*6DLP&x0*|{z+mjAMryi=% z8Lrk_qTb%(0q+RXu*1G1hMCy`6g`yX0m&(@3^EweF^mfgsTSYgKhj_@QHd$Okt}>VI(>#t}rD0E(N{Z zGj;sp7F8f3Yr#9^46Y$NgsaFgT#UgUC-X?PPERALy8XMNZz+ zJqGi9IT-E_I{WW3yeDTlEWY2+FiqeN1&>-H&@jWG@j$Hp(ByW!`4Mj>VjQEk&@;k!fUc;jLHRd&xD7*7rVHl?J?~8y( z-9Ruf`)qgOu~zYM29ubQ-TRbbtkR#@4H5AMk2sC9(m6=bE-`t~SShubg=A@ESX&Yb z$r}ViyndO}U%%89L+M>(L|)JpEk(CRqFmOXLs?*p8AHiwX3|s^k_(A9Kcy8TmAh%A z>05F!ZK(0BX=HUu4H2ck`6WFpgDozi&4F zuGtxFz3O*^x>$2$*h@WTMbx^@)gL24?|@H3o$Y(r>4hDzM~OOOI3g#@G$eUxwxcv%a1#>J&L_a(sUn}1UZ`MGd-v< zhUCjbG70t}xl7TVok+cSg|syRgr~&tl2C@Ufx@Vil}6@IVvWbx zqWk;m#`2c_?nLRmS<~}X>x5d<3s%WGr}%7e7S|&^U(rjGrQ4-@4@!D|RmV3J<6DCM zfIydbk+AVu{9D53C)`6DUtrnBmw2=b7GedfyU2v}Mqn+37N10) { + feedTheFish() +} + +fun shouldChangeWater( + day: String, + temp: Int = 22, + dirty: Int = 22 +): Boolean { + return when { + isTooHot(temp) -> true + isDirty(dirty) -> true + isSunday(day) -> true + else -> false + } +} + +fun isTooHot(temp: Int) = temp > 30 +fun isDirty(dirty: Int) = dirty > 30 +fun isSunday(day: String) = day == "Sunday" + +fun dayOfWeek() { + println("What day is it today?") + var day: String? = null + day = when(Calendar.getInstance().get(Calendar.DAY_OF_WEEK)) { + 1 -> "Sunday" + 2 -> "Monday" + 3 -> "Tuesday" + 4 -> "Wednesday" + 5 -> "Thursday" + 6 -> "Friday" + 7 -> "Saturday" + else -> "wut?" + } + println("Today is: $day") +} + +fun feedTheFish() { + val day = randomDay() + val food = fishFood(day) + print("Today is $day and the fish eat $food") + if (shouldChangeWater(day)) { + println("Change the water today") + } +} + +fun fitMoreFish( + tankSize: Double, + currentFish: List, + fishSize: Int = 2, + hasDecorations: Boolean = true +): Boolean { + val tankCap = tankSize.times(if(hasDecorations) 0.8 else 1.0) + val currentTotalSize = if(currentFish.isNotEmpty()) currentFish.sum() else 0 + return tankCap.minus(currentTotalSize) >= fishSize +} + +fun fishFood(day: String): String { + return when(day) { + "Monday" -> "flakes" + "Tuesday" -> "pellets" + "Wednesday" -> "redworms" + "Thursday" -> "granules" + "Friday" -> "mosquitoes" + "Saturday" -> "lettuce" + "Sunday" -> "plankton" + else -> "fasting" + } +} + +fun randomDay() : String { + val week = listOf("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday") + return week[Random().nextInt(week.count())] +} \ No newline at end of file diff --git a/src/dice.kt b/src/dice.kt new file mode 100644 index 0000000..0efad84 --- /dev/null +++ b/src/dice.kt @@ -0,0 +1,6 @@ +import java.util.* + +fun main(args: Array) { + val roll12 = { Random().nextInt(12) + 1 } + val rollDie: (Int) -> Int = { sides -> if (sides == 0) 0 else Random().nextInt(sides) + 1 } +} \ No newline at end of file diff --git a/src/fortune.kt b/src/fortune.kt new file mode 100644 index 0000000..707226e --- /dev/null +++ b/src/fortune.kt @@ -0,0 +1,31 @@ +fun main(args: Array) { + val birthday = getBirthday() + val fortune = getFortune(birthday) + println("Your fortune is: $fortune") +} + +fun getBirthday(): Int { + print("Enter your birthday:") + return readLine()?.toIntOrNull() ?: 1 +} + +fun getFortune(birthday: Int): String { + val fortunes = listOf( + "You will have a great day!", + "Things will go well for you today.", + "Enjoy a wonderful day of success.", + "Be humble and all will turn out well.", + "Today is a good day for exercising restraint.", + "Take it easy and enjoy life!", + "Treasure your friends because they are your greatest fortune." + ) + val index = when(birthday) { + in 1..5 -> 4 + 6, 22 -> 5 + else -> birthday.rem(fortunes.size) + } + return fortunes[index] +} + + + diff --git a/src/whatToDoToday.kt b/src/whatToDoToday.kt new file mode 100644 index 0000000..6dd0bae --- /dev/null +++ b/src/whatToDoToday.kt @@ -0,0 +1,23 @@ +fun main(args: Array) { + println(whatShouldIDoToday("happy")) +} + +fun whatShouldIDoToday( + mood: String, + weather: String = "sunny", + temp: Int = 24 +): String { + return when { + isHappyMood(mood) && isSunnyWeather(weather) -> "go for a walk" + isSadMood(mood) && isRainyWeather(weather) && isColdTemp(temp) -> "stay in bed" + isWarmTemp(temp) -> "go swimming" + else -> "stay home and read" + } +} + +fun isHappyMood(mood: String) = mood == "happy" +fun isSadMood(mood: String) = mood == "sad" +fun isSunnyWeather(weather: String) = weather == "sunny" +fun isRainyWeather(weather: String) = weather == "rainy" +fun isColdTemp(temp: Int) = temp <= 0 +fun isWarmTemp(temp: Int) = temp >= 23 \ No newline at end of file