aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Kronqvist <joel.kronqvist@iki.fi>2024-11-17 13:45:44 +0200
committerJoel Kronqvist <joel.kronqvist@iki.fi>2024-11-17 13:45:44 +0200
commit4de67b497e0e229fe4a42f66f833640b6e50fd5a (patch)
tree34fb5b0e776f7cd3adcb4556f4d6a7c8ad66de39
parent8595e892abc0e0554f589ed2eb88c351a347fbd4 (diff)
downloadscalevalapokalypsi-4de67b497e0e229fe4a42f66f833640b6e50fd5a.tar.gz
scalevalapokalypsi-4de67b497e0e229fe4a42f66f833640b6e50fd5a.zip
Moved the project to an IDEA project & wrote part of README.txt
-rw-r--r--.gitignore8
-rw-r--r--.idea/.gitignore3
-rw-r--r--.idea/codeStyles/Project.xml7
-rw-r--r--.idea/codeStyles/codeStyleConfig.xml5
-rw-r--r--.idea/inspectionProfiles/Project_Default.xml93
-rw-r--r--.idea/misc.xml6
-rw-r--r--.idea/modules.xml8
-rw-r--r--.idea/scala_settings.xml6
-rw-r--r--.idea/vcs.xml6
-rw-r--r--README.txt83
-rw-r--r--protocol.txt16
-rw-r--r--scalevalapokalypsi.iml12
-rw-r--r--src/scalevalapokalypsi/Client/Client.scala (renamed from src/main/scala/Client/Client.scala)8
-rw-r--r--src/scalevalapokalypsi/Client/ReceivedLineParser.scala (renamed from src/main/scala/Client/ReceivedLineParser.scala)4
-rw-r--r--src/scalevalapokalypsi/Client/StdinLineReader.scala (renamed from src/main/scala/Client/StdinLineReader.scala)2
-rw-r--r--src/scalevalapokalypsi/Client/Turn.scala (renamed from src/main/scala/Client/Turn.scala)2
-rw-r--r--src/scalevalapokalypsi/Model/Action.scala (renamed from src/main/scala/Model/Action.scala)2
-rw-r--r--src/scalevalapokalypsi/Model/Adventure.scala (renamed from src/main/scala/Model/Adventure.scala)2
-rw-r--r--src/scalevalapokalypsi/Model/Area.scala (renamed from src/main/scala/Model/Area.scala)2
-rw-r--r--src/scalevalapokalypsi/Model/Entity.scala (renamed from src/main/scala/Model/Entity.scala)2
-rw-r--r--src/scalevalapokalypsi/Model/Item.scala (renamed from src/main/scala/Model/Item.scala)2
-rw-r--r--src/scalevalapokalypsi/Server/Client.scala (renamed from src/main/scala/Server/Client.scala)6
-rw-r--r--src/scalevalapokalypsi/Server/Clients.scala (renamed from src/main/scala/Server/Clients.scala)2
-rw-r--r--src/scalevalapokalypsi/Server/ConnectionGetter.scala (renamed from src/main/scala/Server/ConnectionGetter.scala)2
-rw-r--r--src/scalevalapokalypsi/Server/Server.scala (renamed from src/main/scala/Server/Server.scala)8
-rw-r--r--src/scalevalapokalypsi/constants/constants.scala (renamed from src/main/scala/Server/constants.scala)2
-rw-r--r--src/scalevalapokalypsi/main.scala (renamed from src/main/scala/main.scala)7
-rw-r--r--src/scalevalapokalypsi/utils/utils.scala (renamed from src/main/scala/utils.scala)2
-rw-r--r--tyylimaare.txt157
29 files changed, 258 insertions, 207 deletions
diff --git a/.gitignore b/.gitignore
index a114ced..1fcb152 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1 @@
-.bsp
-.idea
-build.sbt
-project
-target
-src/main/scala/.bsp
-src/main/scala/.scala-build
+out
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..919ce1f
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,7 @@
+<component name="ProjectCodeStyleConfiguration">
+ <code_scheme name="Project" version="173">
+ <ScalaCodeStyleSettings>
+ <option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
+ </ScalaCodeStyleSettings>
+ </code_scheme>
+</component> \ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..a55e7a1
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+<component name="ProjectCodeStyleConfiguration">
+ <state>
+ <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
+ </state>
+</component> \ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..0f76f37
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,93 @@
+<component name="InspectionProjectProfileManager">
+ <profile version="1.0">
+ <option name="myName" value="Project Default" />
+ <inspection_tool class="Annotator" enabled="false" level="ERROR" enabled_by_default="false" />
+ <inspection_tool class="CaseClassParam" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="CheckDtdRefs" enabled="false" level="ERROR" enabled_by_default="false" />
+ <inspection_tool class="CheckEmptyScriptTag" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="CheckTagEmptyBody" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="CheckValidXmlInScriptTagBody" enabled="false" level="ERROR" enabled_by_default="false" />
+ <inspection_tool class="CheckXmlFileWithXercesValidator" enabled="false" level="ERROR" enabled_by_default="false" />
+ <inspection_tool class="ConvertibleToMethodValue" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="DeprecatedClassUsageInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="FunctionTupleSyntacticSugar" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="HtmlExtraClosingTag" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="HtmlMissingClosingTag" enabled="false" level="INFORMATION" enabled_by_default="false" />
+ <inspection_tool class="HtmlUnknownAnchorTarget" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="HtmlUnknownAttribute" enabled="false" level="WARNING" enabled_by_default="false">
+ <option name="myValues">
+ <value>
+ <list size="0" />
+ </value>
+ </option>
+ <option name="myCustomValuesEnabled" value="true" />
+ </inspection_tool>
+ <inspection_tool class="HtmlUnknownBooleanAttribute" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="HtmlUnknownTag" enabled="false" level="WARNING" enabled_by_default="false">
+ <option name="myValues">
+ <value>
+ <list size="6">
+ <item index="0" class="java.lang.String" itemvalue="nobr" />
+ <item index="1" class="java.lang.String" itemvalue="noembed" />
+ <item index="2" class="java.lang.String" itemvalue="comment" />
+ <item index="3" class="java.lang.String" itemvalue="noscript" />
+ <item index="4" class="java.lang.String" itemvalue="embed" />
+ <item index="5" class="java.lang.String" itemvalue="script" />
+ </list>
+ </value>
+ </option>
+ <option name="myCustomValuesEnabled" value="true" />
+ </inspection_tool>
+ <inspection_tool class="HtmlUnknownTarget" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="IfElseToFilterdOption" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="Json5StandardCompliance" enabled="false" level="ERROR" enabled_by_default="false" />
+ <inspection_tool class="JsonDuplicatePropertyKeys" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="JsonSchemaCompliance" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="JsonSchemaDeprecation" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
+ <inspection_tool class="JsonSchemaRefReference" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="JsonStandardCompliance" enabled="false" level="ERROR" enabled_by_default="false" />
+ <inspection_tool class="LossyEncoding" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="MutatorLikeMethodIsParameterless" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="NameBooleanParameters" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="NoTailRecursionAnnotation" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="NonAsciiCharacters" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="NotImplementedCode" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
+ <inspection_tool class="OptionEqualsSome" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="RedundantBlock" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="RedundantCollectionConversion" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="RedundantDefaultArgument" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
+ <inspection_tool class="RedundantNewCaseClass" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
+ <inspection_tool class="ReferenceMustBePrefixed" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="RegExpRedundantEscape" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="RegExpRepeatedSpace" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="RegExpSingleCharAlternation" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="ReplaceToWithUntil" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
+ <inspection_tool class="RequiredAttributes" enabled="false" level="WARNING" enabled_by_default="false">
+ <option name="myAdditionalRequiredHtmlAttributes" value="" />
+ </inspection_tool>
+ <inspection_tool class="ScalaDocParserErrorInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="ScalaDocUnclosedTagWithoutParser" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="ScalaFileName" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="ScalaUnnecessaryParentheses" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="ScalaUnusedExpression" enabled="true" level="WARNING" enabled_by_default="true" />
+ <inspection_tool class="ScalaUnusedSymbol" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
+ <inspection_tool class="ScalaWeakerAccess" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
+ <option name="processCode" value="true" />
+ <option name="processLiterals" value="true" />
+ <option name="processComments" value="true" />
+ </inspection_tool>
+ <inspection_tool class="SyntaxError" enabled="false" level="ERROR" enabled_by_default="false" />
+ <inspection_tool class="TypeAnnotation" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="TypeParameterShadow" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="XmlDefaultAttributeValue" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="XmlDeprecatedElement" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="XmlDuplicatedId" enabled="false" level="ERROR" enabled_by_default="false" />
+ <inspection_tool class="XmlHighlighting" enabled="false" level="ERROR" enabled_by_default="false" />
+ <inspection_tool class="XmlInvalidId" enabled="false" level="ERROR" enabled_by_default="false" />
+ <inspection_tool class="XmlPathReference" enabled="false" level="ERROR" enabled_by_default="false" />
+ <inspection_tool class="XmlUnboundNsPrefix" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="XmlUnusedNamespaceDeclaration" enabled="false" level="WARNING" enabled_by_default="false" />
+ <inspection_tool class="XmlWrongRootElement" enabled="false" level="ERROR" enabled_by_default="false" />
+ </profile>
+</component> \ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..e6be3f1
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="corretto-17" project-jdk-type="JavaSDK">
+ <output url="file://$PROJECT_DIR$/out" />
+ </component>
+</project> \ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..8a7c304
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/scalevalapokalypsi.iml" filepath="$PROJECT_DIR$/scalevalapokalypsi.iml" />
+ </modules>
+ </component>
+</project> \ No newline at end of file
diff --git a/.idea/scala_settings.xml b/.idea/scala_settings.xml
new file mode 100644
index 0000000..4608fe0
--- /dev/null
+++ b/.idea/scala_settings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ScalaProjectSettings">
+ <option name="scala3DisclaimerShown" value="true" />
+ </component>
+</project> \ 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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
+ </component>
+</project> \ No newline at end of file
diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000..5f4f277
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,83 @@
+
+[PELIN NIMI TÄHÄN]
+==================
+
+[pelin nimi] on tekstipeli, joka jäljittelee hieman Infocomin tekstipelejä ja
+Z-koneen tuntumaa. Koska Z-koneen uudelleen keksiminen olisi tylsää, toteuttaa
+[pelin nimi] ominaisuuksia, joita Z-koneeseen olisi ollut hankala toteuttaa.
+Tällä on toki hintansa — seikkailujen lukeminen tekstitiedostoista olisi
+tämän pelin Z-koneen ylittävien ominaisuuksien vuoksi hankalaa.
+
+Ensimmäinen olennainen lisäys on moninpelipainotteisuus. Tämä olisi todennnä-
+köisesti ollut toteutettavissa Z-koneeseenkin, esim:
+=> https://github.com/icculus/mojozork
+
+Toinen olennainen lisäys on suomalainen kulttuuriperintö, aikapaineella höys-
+tettynä: pelissä lauletaan vihamiehiä suohon, ja se tapahtuu kirjoitusnopeus-
+testien merkeissä!
+
+Z-koneen kannalta haastavin lisäys (joskaan ei muutoin tämän pelin teknisesti
+haastavin osuus) lienee monimutkaisempi ei-pelattavien henkilöhahmojen
+tekoäly. Kun tekoälyt kirjoitetaan suoraan scala-ohjelmaan funktioina, voivat
+ne olennaisesti tehdä mitä tahansa, sen sijaan että Z-kone millään lailla
+rajoittaisi niitä.
+
+
+Pelin käynnistäminen
+--------------------
+
+[yksittäisen käyttäjän käynnistäminen]
+
+Moninpeliominaisuudesta saat eniten iloa irti, joten jaa [pelin nimi]
+ystävillesi ja ala pelaamaan! Jos sinulla ei ole ystäviä, voit myös kokea
+moninpeliominaisuuden mahtavuuden hieman vaisumpana käynnistämällä toisen
+käyttäjän ylläolevien ohjeiden mukaisesti ja liittymällä samaan peliin
+(eli samalle serverille), johon edellisellä käyttäjällä liityit. Toista
+tämä niin monta kertaa kuin tahdot, kunnes serveri valittaa liian suuresta
+pelaajamäärästä.
+
+
+Pelin tavoite
+-------------
+
+[lisää pelille tavoite]
+
+
+Pelin pelaaminen
+----------------
+
+[pelin nimeä] ohjataan kutakuinkin samalla lailla, kuin Z-koneen pelejä.
+On kuitenkin hyvä huomata, että peliä ohjaava serveri usein pakottaa vuorot
+tiettyyn aikaraamiin muiden pelaajien odottelun vähentämiseksi. Tämä aikaraja
+näkyy aina syötteen (merkitään '>'-merkillä) edessä:
+```
+Istut metsässä ja pohdit maailman menoa. Polkuja johtaa kaikkiin ilmansuuntiin.
+[30]>
+```
+Yllä aikaraja olisi 30 sekuntia.
+
+Myöskään kaikki komennot eivät ole samoja kuin Z-koneessa, eikä se ollut
+tavoitekaan. Alla on lista komennoista:
+
+`mene [suunta]`
+ Käskee pelaajan liikkua annettuun suuntaan.
+
+`lepää`
+ Käskee pelaajan levätä, eli odottaa vuoron päättymistä.
+
+`sano [viisaus]`
+ Sanoo annetun enemmän tai vähemmän viisaan lausahduksen ääneen.
+
+`sano [terveiset] henkilölle [äiti]`
+ Sanoo annetut terveiset annetulle pelin sisäiselle henkilölle.
+ Pelin tekijöitä ei kuulu pitää vastuussa, jos tätä kautta yritetään
+ välittää terveisiä pelin ulkopuolisille henkilöille.
+
+`laula [olento] suohon`
+ Aloittaa annetun olennon suohonlaulannan. Peli tulee seuraavaksi pyytämään
+ sinua kirjoittamaan jonkin säkeen, todennäköisesti kalevanlamitassa.
+ Kirjoita tämä säe niin nopeasti kuin pystyt, koska
+ laulun vaikutus määräytyy kirjoitusnopeuden
+ perusteella!
+
+[lisää loput käskyt]
diff --git a/protocol.txt b/protocol.txt
deleted file mode 100644
index bbeae64..0000000
--- a/protocol.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Client: [version number]CRLF[client name|]
-Server: [good/version old]
-...
-Server: [time limit in int/secs]CRLF # signifies game start
- [instantly gives turn info]
-
-Before turn:
-N x [Action blocker indicator][Description of action during previous turn]CRLF
-At start of turn:
-Server: [turn indicator]CRLF
- [Description of area]CRLF
- [Directions separated with semicolon]CRLF
- [Visible items separated with semicolon]CRLF
- [Entities separated with semicolon]CRLF
-
-When running turn: [CRLF-separated list of things happening in the players room]
diff --git a/scalevalapokalypsi.iml b/scalevalapokalypsi.iml
new file mode 100644
index 0000000..a76f8e7
--- /dev/null
+++ b/scalevalapokalypsi.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="scala-sdk-3.3.0" level="application" />
+ </component>
+</module> \ No newline at end of file
diff --git a/src/main/scala/Client/Client.scala b/src/scalevalapokalypsi/Client/Client.scala
index fc3e6b8..41b1003 100644
--- a/src/main/scala/Client/Client.scala
+++ b/src/scalevalapokalypsi/Client/Client.scala
@@ -1,12 +1,12 @@
-package o1game.Client
+package scalevalapokalypsi.Client
import java.lang.Thread.sleep
import java.net.Socket
import scala.io.Source
import scala.sys.process.stdout
-import o1game.constants.*
-import o1game.utils.{stringToByteArray,getNCharsFromSocket}
-import o1game.Client.{ReceivedLineParser,StdinLineReader,Turn}
+import scalevalapokalypsi.constants.*
+import scalevalapokalypsi.utils.{stringToByteArray,getNCharsFromSocket}
+import scalevalapokalypsi.Client.{ReceivedLineParser,StdinLineReader,Turn}
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
import scala.util.{Try, Success, Failure}
diff --git a/src/main/scala/Client/ReceivedLineParser.scala b/src/scalevalapokalypsi/Client/ReceivedLineParser.scala
index 7cbf935..dfcc2d2 100644
--- a/src/main/scala/Client/ReceivedLineParser.scala
+++ b/src/scalevalapokalypsi/Client/ReceivedLineParser.scala
@@ -1,7 +1,7 @@
-package o1game.Client
+package scalevalapokalypsi.Client
import scala.collection.mutable.Buffer
-import o1game.constants.*
+import scalevalapokalypsi.constants.*
/** A class for checking asynchronously for received lines */
class ReceivedLineParser:
diff --git a/src/main/scala/Client/StdinLineReader.scala b/src/scalevalapokalypsi/Client/StdinLineReader.scala
index 42a1f40..6ba8761 100644
--- a/src/main/scala/Client/StdinLineReader.scala
+++ b/src/scalevalapokalypsi/Client/StdinLineReader.scala
@@ -1,4 +1,4 @@
-package o1game.Client
+package scalevalapokalypsi.Client
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
diff --git a/src/main/scala/Client/Turn.scala b/src/scalevalapokalypsi/Client/Turn.scala
index 6b78811..30101c5 100644
--- a/src/main/scala/Client/Turn.scala
+++ b/src/scalevalapokalypsi/Client/Turn.scala
@@ -1,4 +1,4 @@
-package o1game.Client
+package scalevalapokalypsi.Client
/** `Turn`s represent information the client has got about a turn.
* This class exists essentially so that the client has somewhere
diff --git a/src/main/scala/Model/Action.scala b/src/scalevalapokalypsi/Model/Action.scala
index 55f7f27..32f513d 100644
--- a/src/main/scala/Model/Action.scala
+++ b/src/scalevalapokalypsi/Model/Action.scala
@@ -1,4 +1,4 @@
-package o1game.Model
+package scalevalapokalypsi.Model
/** The class `Action` represents actions that a player may take in a text adventure game.
* `Action` objects are constructed on the basis of textual commands and are, in effect,
diff --git a/src/main/scala/Model/Adventure.scala b/src/scalevalapokalypsi/Model/Adventure.scala
index dfcb100..2bf6cfe 100644
--- a/src/main/scala/Model/Adventure.scala
+++ b/src/scalevalapokalypsi/Model/Adventure.scala
@@ -1,4 +1,4 @@
-package o1game.Model
+package scalevalapokalypsi.Model
import scala.collection.mutable.Map
diff --git a/src/main/scala/Model/Area.scala b/src/scalevalapokalypsi/Model/Area.scala
index 6721957..c891af8 100644
--- a/src/main/scala/Model/Area.scala
+++ b/src/scalevalapokalypsi/Model/Area.scala
@@ -1,4 +1,4 @@
-package o1game.Model
+package scalevalapokalypsi.Model
import scala.collection.mutable.Map
diff --git a/src/main/scala/Model/Entity.scala b/src/scalevalapokalypsi/Model/Entity.scala
index d8e8559..083c37f 100644
--- a/src/main/scala/Model/Entity.scala
+++ b/src/scalevalapokalypsi/Model/Entity.scala
@@ -1,4 +1,4 @@
-package o1game.Model
+package scalevalapokalypsi.Model
import scala.collection.mutable.{Buffer,Map}
diff --git a/src/main/scala/Model/Item.scala b/src/scalevalapokalypsi/Model/Item.scala
index 229828d..7979480 100644
--- a/src/main/scala/Model/Item.scala
+++ b/src/scalevalapokalypsi/Model/Item.scala
@@ -1,4 +1,4 @@
-package o1game.Model
+package scalevalapokalypsi.Model
import scala.annotation.targetName
diff --git a/src/main/scala/Server/Client.scala b/src/scalevalapokalypsi/Server/Client.scala
index 3cd2b36..6ce2522 100644
--- a/src/main/scala/Server/Client.scala
+++ b/src/scalevalapokalypsi/Server/Client.scala
@@ -1,10 +1,10 @@
-package o1game.Server
+package scalevalapokalypsi.Server
import java.net.Socket
import scala.math.min
-import o1game.constants.*
+import scalevalapokalypsi.constants.*
import ServerProtocolState.*
-import o1game.Model.{Action,Player,Entity}
+import scalevalapokalypsi.Model.{Action,Player,Entity}
class Client(val socket: Socket):
private var incompleteMessage: Array[Byte] =
diff --git a/src/main/scala/Server/Clients.scala b/src/scalevalapokalypsi/Server/Clients.scala
index 6487446..377050d 100644
--- a/src/main/scala/Server/Clients.scala
+++ b/src/scalevalapokalypsi/Server/Clients.scala
@@ -1,4 +1,4 @@
-package o1game.Server
+package scalevalapokalypsi.Server
import scala.util.Try
import scala.util.Random
diff --git a/src/main/scala/Server/ConnectionGetter.scala b/src/scalevalapokalypsi/Server/ConnectionGetter.scala
index b3246a7..40830c7 100644
--- a/src/main/scala/Server/ConnectionGetter.scala
+++ b/src/scalevalapokalypsi/Server/ConnectionGetter.scala
@@ -1,4 +1,4 @@
-package o1game.Server
+package scalevalapokalypsi.Server
import java.io.IOException
import java.net.{ServerSocket, Socket}
diff --git a/src/main/scala/Server/Server.scala b/src/scalevalapokalypsi/Server/Server.scala
index 7864c49..13ca2f5 100644
--- a/src/main/scala/Server/Server.scala
+++ b/src/scalevalapokalypsi/Server/Server.scala
@@ -1,4 +1,4 @@
-package o1game.Server
+package scalevalapokalypsi.Server
// TODO: TLS/SSL / import javax.net.ssl.SSLServerSocketFactory
@@ -6,9 +6,9 @@ package o1game.Server
import java.lang.Thread.{currentThread, sleep}
import java.io.IOException
import java.net.{ServerSocket, Socket}
-import o1game.constants.*
-import o1game.Model.{Adventure,Entity,Player}
-import o1game.utils.stringToByteArray
+import scalevalapokalypsi.constants.*
+import scalevalapokalypsi.Model.{Adventure,Entity,Player}
+import scalevalapokalypsi.utils.stringToByteArray
import java.lang.System.currentTimeMillis
import scala.util.Try
diff --git a/src/main/scala/Server/constants.scala b/src/scalevalapokalypsi/constants/constants.scala
index 083db4e..d5abb43 100644
--- a/src/main/scala/Server/constants.scala
+++ b/src/scalevalapokalypsi/constants/constants.scala
@@ -1,5 +1,5 @@
-package o1game.constants
+package scalevalapokalypsi.constants
val MAX_MSG_SIZE = 1024 // bytes
val CRLF: Vector[Byte] = Vector(13.toByte, 10.toByte)
diff --git a/src/main/scala/main.scala b/src/scalevalapokalypsi/main.scala
index d68664a..9633f73 100644
--- a/src/main/scala/main.scala
+++ b/src/scalevalapokalypsi/main.scala
@@ -1,6 +1,7 @@
+package scalevalapokalypsi
-import o1game.Client.newClient
-import o1game.Server.Server
+import scalevalapokalypsi.Client.newClient
+import scalevalapokalypsi.Server.Server
import java.lang.Thread
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
@@ -12,7 +13,7 @@ import scala.io.StdIn.readLine
print("How do you want to play?\n1) Host and join local game\n2) Join local game\n> ")
readLine().toIntOption match
case Some(1) =>
- Thread(() => Server(2267, 5, 30, true).startServer()).start()
+ Thread(() => new Server(2267, 5, 30, true).startServer()).start()
println("Server started in background.")
print("Choose a name:\n> ")
val name = readLine()
diff --git a/src/main/scala/utils.scala b/src/scalevalapokalypsi/utils/utils.scala
index cfca568..b1bac4d 100644
--- a/src/main/scala/utils.scala
+++ b/src/scalevalapokalypsi/utils/utils.scala
@@ -1,4 +1,4 @@
-package o1game.utils
+package scalevalapokalypsi.utils
import java.io.InputStream
diff --git a/tyylimaare.txt b/tyylimaare.txt
deleted file mode 100644
index 2de2c18..0000000
--- a/tyylimaare.txt
+++ /dev/null
@@ -1,157 +0,0 @@
-
-Scala-tyylimääre tekstipeliin
-=============================
-
-
-Seuraa kurssin tyyliopasta ja tätä ohjetta. Noudata tätä ohjetta, jos ohjeiden
-välillä on ristiriita. Kirjoita mieluummin vähemmän koodia paremmin kuin
-enemmän koodia laiskasti. Näin vähennetään tulevaisuuden työtä, joka syntyy
-kun koodi on lähtenyt lapasesta eikä kenelläkään ole enää mitään käsitystä
-ohjelman struktuurista. Tee näin etenkin, kun kirjoittamamme koodin laatua ja
-yhtenäisyyttä arvioidaan palautuksessa.
-
-=> https://docs.scala-lang.org/scala3/book/ca-multiversal-equality.html
-Kannattaiskohan käyttää? ^^
-
-
-This-sanan käyttö
------------------
-
-This-sanaa tulee käyttää aina, kun se on mahdollista. Se selventää sitä, kenen
-muuttuja on kyseessä ja missä se on määritelty.
-
-
-Merkkijonojen muodostaminen
----------------------------
-
-Käytä s"Arvo: $a, toinen arvo: ${this.b}" jos se ei ole aivan tajuttoman
-kömpelö ratkaisu tilanteeseen. Se on lähes aina parempi ilmaisu kuin merkki-
-jonojen summaaminen.
-
-
-Tyyppien kirjaaminen
---------------------
-
-Nimellisiin funktioihin kirjoitetaan aina paluutyyppi, vaikka se olisi Unit tai
-funktio ei olisi julkinen. Paluutyypin kirjoittaminen pakottaa miettimään vielä
-kerran funktion todellista tarkoitusta. Kun sen on kirjoittanut, Scalan tyyppi-
-järjestelmä huomaa virheet aikaisemmin ja ne saadaan korjattua. Julkisilla
-funktioilla tyyppimääre toimii hieman kuin dokumentaatio.
-
-Julkisille muuttujille (etenkin ohjelman laajuisille vakioille) tulee kirjata
-tyypit.
-
-
-Rivien pituudet
----------------
-
-Rivin maksimipituus on 80 merkkiä. Tässä sisennykset lasketaan kahdeksaksi
-merkiksi. Tämä rajoitus on ikiaikaista perua siitä, kun terminaalien standardi-
-koko leveyssuunnassa oli 80 merkkiä. Tämä rajoitus on kuitenkin nykyäänkin
-kätevä, koska kahta 80-merkkistä riviä on helppo pitää vierekkäin melkein näy-
-töllä kuin näytöllä. Lisäksi ylipitkä rivi voi olla oire epäselkeästä koodista,
-joka muutenkin kuuluisi jakaa osiin.
-
-Alla on esimerkkejä, miten ylipitkiä rivejä saa (ja kuuluu) jakaa.
-
-Esim 1
-```
-def jokuNimi(parametri1: tyyppi1, parametri2: tyyppi2, parametri3: tyyppi3): paluutyyppi =
- ???
-
-def jokuNimi(
- parametri1: tyyppi1,
- parametri2: tyyppi2,
- parametri3: tyyppi3
-): paluutyyppi =
- ???
-```
-
-Esim 2
-```
-kokoelma.filter(_ % 2 ==0).flatten.map(_.muutaHauskallaTavalla).contains(condition)
-
-kokoelma
- .filter(_ % 2 ==0)
- .flatten
- .map(_.muutaHauskallaTavalla)
- .contains(condition)
-```
-
-Esim 3
-```
-val pitkäMuttaHyväMuuttujanNimi = PitkäOlionNimiJotaEiTahdotaMuuttaa(jokuParametri)
-
-val pitkäMuttaHyväMuuttujanNimi =
- PitkäOlionNimiJotaEiTahdotaMuuttaa(jokuParametri)
-```
-
-Esim 4
-```
-val olio = MoniparametrisenOlionLuoja(parametri1, parametri2, parametri3, parametri4, parametri5)
-
-val olio = MoniparametrisenOlionLuoja(
- parametri1,
- parametri2,
- parametri3,
- parametri4,
- parametri5
-)
-```
-
-Esim 5: Huomaa myös tyhjän tilan käyttö ja kommentin alku- ja loppumerkkien
- paikat. Tuollainen muotoilu on nättiä ja suotavaa.
-```
-/* Pitkä dokumentaatiokommentti funktiolle, jonka kuuluu olla useammalla rivillä, koska muuten koodin dokumentaatiosta ei saa selvää ja on näin ollen turhaa*/
-
-/* Pitkä dokumentaatiokommentti funktiolle, jonka kuuluu olla useammalla
- rivillä, koska muuten koodin dokumentaatiosta ei saa selvää ja on näin ollen
- turhaa. */
-```
-
-
-Sisennykset
------------
-
-Sisentämiseen käytetään sisennyksiä eikä välilyöntejä. Näin jokainen ohjelmoija
-saa katsoa koodiansa sillä sisennyspituudella josta pitää ja säästetään muisti-
-tilaa.
-
-IntelliJ IDEAn tapauksessa tulee siis muuttaa asetus
-File
- > Settings
- > Editor
- > Code Style
- > Java
- > Tabs and Indents
- > Use tab character
-
-Kuten Linus Torvalds on sanonut, jos tiedostossa on enemmän kuin kolme
-sisennettyä tasoa ([tab][tab][tab]), olet todennäköisesti eksyksissä koodissasi
-ja ohjelmasi sisäinen logiikka ja rakenne kaipaa parantamista.
-
-Kolmen sisennyksen sääntö ei ole kiveen hakattu, koska me ei olla yhtä hyviä
-ohjelmoijia kuin Torvalds. Jos kuitenkin huomaat olevasi sisennysten
-viidakossa, josta ei saa selvää, niin voi olla hyvä miettiä, voisiko ohjelman
-rakennetta muokata vaikkapa lisäämällä apufunktioita yms.
-
-
-If, match, for, while jne...
-----------------------------
-
-Jos saatavilla on ohjelman toimintaa ja datan virtausta kuvaavia korkeamman
-asteen funktioita, ja et tiedä niiden suorituskyvyn olevan heikkoa verrattnua
-itse tekemääsi toteutukseen, käytä korkeamman asteen funktioita. Jos et heti
-keksi sopivaa korkeamman asteen funktiota, ei se tarkoita ettei sellaista ole.
-Lue läpi korkeamman asteen funktiot Scalan dokumentaatiosta, esim.
-
-Vector-luokan dokumentaatio:
-=> https://scala-lang.org/api/3.x/scala/collection/immutable/Vector.html#
-
-Buffer-luokan dokumentaatio:
-=> https://scala-lang.org/api/3.x/scala/collection/mutable/Buffer$.html#
-
-Option-luokan dokumentaatio:
-=> https://scala-lang.org/api/3.x/scala/Option.html#
-
-