From 212119adacba88f4a1f3e9b156669021fa01783b204cb5ecb066ceccf169f8a4 Mon Sep 17 00:00:00 2001 From: snap Date: Fri, 13 Mar 2026 14:40:56 +0000 Subject: [PATCH] Commit unzipped original NetworkedTicTacToeStarter folder --- Exercises/NetworkedTicTacToe/.editorconfig | 18 ++ Exercises/NetworkedTicTacToe/.gitattributes | 2 + Exercises/NetworkedTicTacToe/.gitignore | 203 ++++++++++++++ .../GameServer/GameServer.cpp | 230 ++++++++++++++++ .../NetworkedTicTacToe/GameServer/Makefile | 16 ++ Exercises/NetworkedTicTacToe/README.md | 35 +++ .../android/AndroidManifest.xml | 29 ++ .../NetworkedTicTacToe/android/build.gradle | 136 ++++++++++ .../android/ic_launcher-web.png | Bin 0 -> 39311 bytes .../android/proguard-rules.pro | 52 ++++ .../android/project.properties | 14 + .../res/drawable-anydpi-v26/ic_launcher.xml | 6 + .../ic_launcher_foreground.xml | 28 ++ .../android/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 4774 bytes .../android/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 2874 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 6679 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 10114 bytes .../res/drawable-xxxhdpi/ic_launcher.png | Bin 0 -> 13695 bytes .../android/res/values/color.xml | 5 + .../android/res/values/strings.xml | 4 + .../android/res/values/styles.xml | 5 + .../tictactoe/android/AndroidLauncher.kt | 18 ++ Exercises/NetworkedTicTacToe/assets/logo.png | Bin 0 -> 1432 bytes Exercises/NetworkedTicTacToe/build.gradle | 74 ++++++ .../NetworkedTicTacToe/core/build.gradle | 43 +++ .../main/kotlin/u0012604/tictactoe/Board.kt | 110 ++++++++ .../u0012604/tictactoe/GameMessageType.kt | 65 +++++ .../main/kotlin/u0012604/tictactoe/Main.kt | 40 +++ .../main/kotlin/u0012604/tictactoe/Token.kt | 9 + .../tictactoe/networking/NetworkHandler.kt | 166 ++++++++++++ .../u0012604/tictactoe/screens/FirstScreen.kt | 177 ++++++++++++ .../tictactoe/screens/GameOverScreen.kt | 21 ++ .../NetworkedTicTacToe/gradle.properties | 28 ++ .../gradle/gradle-daemon-jvm.properties | 12 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43739 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + Exercises/NetworkedTicTacToe/gradlew | 251 ++++++++++++++++++ Exercises/NetworkedTicTacToe/gradlew.bat | 94 +++++++ .../NetworkedTicTacToe/lwjgl3/build.gradle | 185 +++++++++++++ .../NetworkedTicTacToe/lwjgl3/icons/logo.icns | Bin 0 -> 201876 bytes .../NetworkedTicTacToe/lwjgl3/icons/logo.ico | Bin 0 -> 4286 bytes .../NetworkedTicTacToe/lwjgl3/icons/logo.png | Bin 0 -> 9545 bytes .../lwjgl3/nativeimage.gradle | 54 ++++ .../tictactoe/lwjgl3/Lwjgl3Launcher.kt | 40 +++ .../tictactoe/lwjgl3/StartupHelper.kt | 174 ++++++++++++ .../lwjgl3/src/main/resources/libgdx128.png | Bin 0 -> 9545 bytes .../lwjgl3/src/main/resources/libgdx16.png | Bin 0 -> 806 bytes .../lwjgl3/src/main/resources/libgdx32.png | Bin 0 -> 2071 bytes .../lwjgl3/src/main/resources/libgdx64.png | Bin 0 -> 4929 bytes Exercises/NetworkedTicTacToe/settings.gradle | 8 + 50 files changed, 2359 insertions(+) create mode 100644 Exercises/NetworkedTicTacToe/.editorconfig create mode 100644 Exercises/NetworkedTicTacToe/.gitattributes create mode 100644 Exercises/NetworkedTicTacToe/.gitignore create mode 100644 Exercises/NetworkedTicTacToe/GameServer/GameServer.cpp create mode 100644 Exercises/NetworkedTicTacToe/GameServer/Makefile create mode 100644 Exercises/NetworkedTicTacToe/README.md create mode 100644 Exercises/NetworkedTicTacToe/android/AndroidManifest.xml create mode 100644 Exercises/NetworkedTicTacToe/android/build.gradle create mode 100644 Exercises/NetworkedTicTacToe/android/ic_launcher-web.png create mode 100644 Exercises/NetworkedTicTacToe/android/proguard-rules.pro create mode 100644 Exercises/NetworkedTicTacToe/android/project.properties create mode 100644 Exercises/NetworkedTicTacToe/android/res/drawable-anydpi-v26/ic_launcher.xml create mode 100644 Exercises/NetworkedTicTacToe/android/res/drawable-anydpi-v26/ic_launcher_foreground.xml create mode 100644 Exercises/NetworkedTicTacToe/android/res/drawable-hdpi/ic_launcher.png create mode 100644 Exercises/NetworkedTicTacToe/android/res/drawable-mdpi/ic_launcher.png create mode 100644 Exercises/NetworkedTicTacToe/android/res/drawable-xhdpi/ic_launcher.png create mode 100644 Exercises/NetworkedTicTacToe/android/res/drawable-xxhdpi/ic_launcher.png create mode 100644 Exercises/NetworkedTicTacToe/android/res/drawable-xxxhdpi/ic_launcher.png create mode 100644 Exercises/NetworkedTicTacToe/android/res/values/color.xml create mode 100644 Exercises/NetworkedTicTacToe/android/res/values/strings.xml create mode 100644 Exercises/NetworkedTicTacToe/android/res/values/styles.xml create mode 100644 Exercises/NetworkedTicTacToe/android/src/main/kotlin/u0012604/tictactoe/android/AndroidLauncher.kt create mode 100644 Exercises/NetworkedTicTacToe/assets/logo.png create mode 100644 Exercises/NetworkedTicTacToe/build.gradle create mode 100644 Exercises/NetworkedTicTacToe/core/build.gradle create mode 100644 Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/Board.kt create mode 100644 Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/GameMessageType.kt create mode 100644 Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/Main.kt create mode 100644 Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/Token.kt create mode 100644 Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/networking/NetworkHandler.kt create mode 100644 Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/screens/FirstScreen.kt create mode 100644 Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/screens/GameOverScreen.kt create mode 100644 Exercises/NetworkedTicTacToe/gradle.properties create mode 100644 Exercises/NetworkedTicTacToe/gradle/gradle-daemon-jvm.properties create mode 100644 Exercises/NetworkedTicTacToe/gradle/wrapper/gradle-wrapper.jar create mode 100644 Exercises/NetworkedTicTacToe/gradle/wrapper/gradle-wrapper.properties create mode 100644 Exercises/NetworkedTicTacToe/gradlew create mode 100644 Exercises/NetworkedTicTacToe/gradlew.bat create mode 100644 Exercises/NetworkedTicTacToe/lwjgl3/build.gradle create mode 100644 Exercises/NetworkedTicTacToe/lwjgl3/icons/logo.icns create mode 100644 Exercises/NetworkedTicTacToe/lwjgl3/icons/logo.ico create mode 100644 Exercises/NetworkedTicTacToe/lwjgl3/icons/logo.png create mode 100644 Exercises/NetworkedTicTacToe/lwjgl3/nativeimage.gradle create mode 100644 Exercises/NetworkedTicTacToe/lwjgl3/src/main/kotlin/u0012604/tictactoe/lwjgl3/Lwjgl3Launcher.kt create mode 100644 Exercises/NetworkedTicTacToe/lwjgl3/src/main/kotlin/u0012604/tictactoe/lwjgl3/StartupHelper.kt create mode 100644 Exercises/NetworkedTicTacToe/lwjgl3/src/main/resources/libgdx128.png create mode 100644 Exercises/NetworkedTicTacToe/lwjgl3/src/main/resources/libgdx16.png create mode 100644 Exercises/NetworkedTicTacToe/lwjgl3/src/main/resources/libgdx32.png create mode 100644 Exercises/NetworkedTicTacToe/lwjgl3/src/main/resources/libgdx64.png create mode 100644 Exercises/NetworkedTicTacToe/settings.gradle diff --git a/Exercises/NetworkedTicTacToe/.editorconfig b/Exercises/NetworkedTicTacToe/.editorconfig new file mode 100644 index 0000000..f6943b1 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/.editorconfig @@ -0,0 +1,18 @@ +# https://editorconfig.org +root = true + +[*] +indent_style = space +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.{java,scala,groovy,kt,kts}] +indent_size = 4 + +[*.gradle] +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false diff --git a/Exercises/NetworkedTicTacToe/.gitattributes b/Exercises/NetworkedTicTacToe/.gitattributes new file mode 100644 index 0000000..05c96d8 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/.gitattributes @@ -0,0 +1,2 @@ +* text=auto eol=lf +*.bat text=auto eol=crlf diff --git a/Exercises/NetworkedTicTacToe/.gitignore b/Exercises/NetworkedTicTacToe/.gitignore new file mode 100644 index 0000000..0712bfc --- /dev/null +++ b/Exercises/NetworkedTicTacToe/.gitignore @@ -0,0 +1,203 @@ +## Gradle: +.gradle/ +gradle-app.setting +/build/ +/android/build/ +/core/build/ +/lwjgl2/build/ +/lwjgl3/build/ +/html/build/ +/teavm/build/ +/ios/build/ +/ios-moe/build/ +/headless/build/ +/server/build/ +/shared/build/ + +## Java: +*.class +*.war +*.ear +hs_err_pid* +.attach_pid* + +## Android: +/android/libs/armeabi-v7a/ +/android/libs/arm64-v8a/ +/android/libs/x86/ +/android/libs/x86_64/ +/android/gen/ +/android/out/ +local.properties +com_crashlytics_export_strings.xml + +## Robovm: +/ios/robovm-build/ + +## iOS: +/ios/xcode/*.xcodeproj/* +!/ios/xcode/*.xcodeproj/xcshareddata +!/ios/xcode/*.xcodeproj/project.pbxproj +/ios/xcode/native/ +/ios/IOSLauncher.app +/ios/IOSLauncher.app.dSYM + +## GWT: +/html/war/ +/html/gwt-unitCache/ +.apt_generated/ +/html/war/WEB-INF/deploy/ +/html/war/WEB-INF/classes/ +.gwt/ +gwt-unitCache/ +www-test/ +.gwt-tmp/ + +## TeaVM: +# Not sure yet... + +## IntelliJ, Android Studio: +.idea/ +*.ipr +*.iws +*.iml + +## Eclipse: +.classpath +.project +.metadata/ +/android/bin/ +/core/bin/ +/lwjgl2/bin/ +/lwjgl3/bin/ +/html/bin/ +/teavm/bin/ +/ios/bin/ +/ios-moe/bin/ +/headless/bin/ +/server/bin/ +/shared/bin/ +*.tmp +*.bak +*.swp +*~.nib +.settings/ +.loadpath +.externalToolBuilders/ +*.launch + + +## NetBeans: + +/nbproject/private/ +/android/nbproject/private/ +/core/nbproject/private/ +/lwjgl2/nbproject/private/ +/lwjgl3/nbproject/private/ +/html/nbproject/private/ +/teavm/nbproject/private/ +/ios/nbproject/private/ +/ios-moe/nbproject/private/ +/headless/nbproject/private/ +/server/nbproject/private/ +/shared/nbproject/private/ + +/nbbuild/ +/android/nbbuild/ +/core/nbbuild/ +/lwjgl2/nbbuild/ +/lwjgl3/nbbuild/ +/html/nbbuild/ +/teavm/nbbuild/ +/ios/nbbuild/ +/ios-moe/nbbuild/ +/headless/nbbuild/ +/server/nbbuild/ +/shared/nbbuild/ + +/dist/ +/android/dist/ +/core/dist/ +/lwjgl2/dist/ +/lwjgl3/dist/ +/html/dist/ +/teavm/dist/ +/ios/dist/ +/ios-moe/dist/ +/headless/dist/ +/server/dist/ +/shared/dist/ + +/nbdist/ +/android/nbdist/ +/core/nbdist/ +/lwjgl2/nbdist/ +/lwjgl3/nbdist/ +/html/nbdist/ +/teavm/nbdist/ +/ios/nbdist/ +/ios-moe/nbdist/ +/headless/nbdist/ +/server/nbdist/ +/shared/nbdist/ + +nbactions.xml +nb-configuration.xml + +## OS-Specific: +.DS_Store +Thumbs.db + +## Miscellaneous: +*~ +*.*# +*#*# +/.kotlin/ +/assets/assets.txt + +## Special cases: + +## There is a resource-config.json file generated by nativeimage.gradle if you use Graal Native Image. +## Some usage may need extra resource configuration in a different file with the same name. +## You could also add that configuration to the text in nativeimage.gradle . +## You should delete or comment out the next line if you have configuration in a different resource-config.json . +**/resource-config.json + +# Created by https://www.toptal.com/developers/gitignore/api/c++ +# Edit at https://www.toptal.com/developers/gitignore?templates=c++ + +### C++ ### +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app +GameServer/server +# End of https://www.toptal.com/developers/gitignore/api/c++ diff --git a/Exercises/NetworkedTicTacToe/GameServer/GameServer.cpp b/Exercises/NetworkedTicTacToe/GameServer/GameServer.cpp new file mode 100644 index 0000000..6f089eb --- /dev/null +++ b/Exercises/NetworkedTicTacToe/GameServer/GameServer.cpp @@ -0,0 +1,230 @@ +#include +#include +#include +#include +#include +#include +#include + +// TODO: move `GameServer` into its own files (h/cpp). +// Note: This is compiled with SFML 2.6.2 in mind. +// It would work similarly with slightly older versions of SFML. +// A thourough rework is necessary for SFML 3.0. + +enum GameMessageType : unsigned char { + JOIN_GAME = 0x01, PLACE_TOKEN = 0x02 +}; + +enum Token : unsigned char { + NOUGHTS = 0x01, CROSSES = 0x02 +}; + +class GameServer { +public: + GameServer(unsigned short tcp_port) : + m_tcp_port(tcp_port) {} + + // Binds to a port and then loops around. For every client that connects, + // we start a new thread receiving their messages. + void tcp_start() + { + // BINDING + sf::TcpListener listener; + sf::Socket::Status status = listener.listen(m_tcp_port, sf::IpAddress("A.B.C.D")); + if (status != sf::Socket::Status::Done) + { + std::cerr << "Error binding listener to port" << std::endl; + return; + } + + std::cout << "TCP Server is listening to port " + << m_tcp_port + << ", waiting for connections..." + << std::endl; + + while (true) + { + // ACCEPTING + if(m_player_count < 2) + { + sf::TcpSocket* client = new sf::TcpSocket; + status = listener.accept(*client); + if (status != sf::Socket::Status::Done) + { + delete client; + } else { + { + std::lock_guard lock(m_clients_mutex); + m_clients.push_back(client); + } + std::cout << "New client connected: " + << client->getRemoteAddress() + << std::endl; + + m_player_count++; + + std::thread(&GameServer::handle_client, this, client, m_player_count).detach(); + + if(m_player_count == 2) + { + // -------------------------------------------------------------- + // Slight pause to ensure the all threads have started + // -------------------------------------------------------------- + std::this_thread::sleep_for(std::chrono::milliseconds(250)); + } + } + } + } + // No need to call close of the listener. + // The connection is closed automatically when the listener object is out of scope. + } + + +private: + unsigned short m_tcp_port; + unsigned short m_player_count { 0 }; + + std::vector m_clients; + std::mutex m_clients_mutex; + + // Loop around, receive messages from client and send them to all + // the other connected clients. + void handle_client(sf::TcpSocket* client, unsigned short player_num) + { + sf::Socket::Status status; + + if(player_num == 1) { + std::cout << "Player " << player_num << " is NOUGHTS" << std::endl; + char buffer[2] = { + GameMessageType::JOIN_GAME, + Token::NOUGHTS + }; + + status = client->send(buffer, message_size(GameMessageType::JOIN_GAME)); + + if (status != sf::Socket::Status::Done) + { + std::cerr << "Error sending JOIN_GAME to player 1" << std::endl; + return; + } + } + else if(player_num == 2) { + std::cout << "Player " << player_num << " is CROSSES" << std::endl; + char buffer[2] = { + GameMessageType::JOIN_GAME, + Token::CROSSES + }; + + status = client->send(buffer, message_size(GameMessageType::JOIN_GAME)); + + if (status != sf::Socket::Status::Done) + { + std::cerr << "Error sending JOIN_GAME to player 2" << std::endl; + return; + } + } + else { + return; // No more players please!!! + } + + + while (true) + { + // RECEIVING + char payload[1024]; + std::memset(payload, 0, 1024); + size_t received; + sf::Socket::Status status = client->receive(payload, 1024, received); + if (status != sf::Socket::Status::Done) + { + std::cerr << "Error receiving message from client" << std::endl; + break; + } else { + // Actually, there is no need to print the message if the message is not a string + debug_message(payload); + + broadcast_message(payload, client); + } + } + + // Everything that follows only makes sense if we have a graceful way to exiting the loop. + // Remove the client from the list when done + { + std::lock_guard lock(m_clients_mutex); + m_clients.erase(std::remove(m_clients.begin(), m_clients.end(), client), + m_clients.end()); + } + delete client; + } + + // Sends `message` from `sender` to all the other connected clients + bool broadcast_message(const char *buffer, sf::TcpSocket* sender) + { + size_t msgSize { message_size(buffer[0]) }; + + // You might want to validate the message before you send it. + // A few reasons for that: + // 1. Make sure the message makes sense in the game. + // 2. Make sure the sender is not cheating. + // 3. First need to synchronise the players inputs (usually done in Lockstep). + // 4. Compensate for latency and perform rollbacks (usually done in Ded Reckoning). + // 5. Delay the sending of messages to make the game fairer wrt high ping players. + // This is where you can write the authoritative part of the server. + std::lock_guard lock(m_clients_mutex); + for (auto& client : m_clients) + { + if (client != sender) + { + // SENDING + sf::Socket::Status status = client->send(buffer, msgSize) ; + if (status != sf::Socket::Status::Done) + { + std::cerr << "Error sending message to client" << std::endl; + + return false; + } + } + } + + return true; + } + + constexpr size_t message_size(const char messageType) + { + switch(messageType) { + case JOIN_GAME: return 2; + case PLACE_TOKEN: return sizeof(int) * 2 + 2; + default: return 0; + } + } + + void debug_message(const char *buf) + { + const unsigned char msgType = buf[0]; + + switch(msgType) { + case JOIN_GAME: { + std::cout << "Player Joined The Game" << std::endl; + break; + } + case PLACE_TOKEN: { + const unsigned char *row { (unsigned char* )buf + 1 }; + const unsigned char *col { (unsigned char* )buf + 1 + sizeof(int) }; + unsigned int rowI = be32toh(*((unsigned int *) row)); + unsigned int colI = be32toh(*((unsigned int *) col)); + std::cout << "Player Placed A Token: (" << rowI << ", " << colI << ")" << std::endl; + + break; + } + } + } +}; + +int main() +{ + GameServer server(4300); + + server.tcp_start(); + + return 0; +} diff --git a/Exercises/NetworkedTicTacToe/GameServer/Makefile b/Exercises/NetworkedTicTacToe/GameServer/Makefile new file mode 100644 index 0000000..3c99018 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/GameServer/Makefile @@ -0,0 +1,16 @@ +SFML_PATH=/usr/local/Cellar/sfml/2.6.1/ +CXXFLAGS= -std=c++14 -Wall -Wpedantic -I${SFML_PATH}include/ +LDFLAGS=-L${SFML_PATH}lib/ +CFLAGS=-g -lsfml-graphics -lsfml-window -lsfml-system -lsfml-network -pthread +CPPFLAGS= +LDLIBS= +LIBS= +CPP=g++ + +all: server + +server: GameServer.o + $(CPP) $(CXXFLAGS) $(LDFLAGS) $(LIBS) $^ -o $@ $(CFLAGS) + +clean: + \rm -f *.o server diff --git a/Exercises/NetworkedTicTacToe/README.md b/Exercises/NetworkedTicTacToe/README.md new file mode 100644 index 0000000..ff39fb3 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/README.md @@ -0,0 +1,35 @@ +# NetworkedTicTacToe + +A [libGDX](https://libgdx.com/) project generated with [gdx-liftoff](https://github.com/libgdx/gdx-liftoff). + +This project was generated with a Kotlin project template that includes Kotlin application launchers and [KTX](https://libktx.github.io/) utilities. + +## Platforms + +- `core`: Main module with the application logic shared by all platforms. +- `lwjgl3`: Primary desktop platform using LWJGL3; was called 'desktop' in older docs. +- `android`: Android mobile platform. Needs Android SDK. + +## Gradle + +This project uses [Gradle](https://gradle.org/) to manage dependencies. +The Gradle wrapper was included, so you can run Gradle tasks using `gradlew.bat` or `./gradlew` commands. +Useful Gradle tasks and flags: + +- `--continue`: when using this flag, errors will not stop the tasks from running. +- `--daemon`: thanks to this flag, Gradle daemon will be used to run chosen tasks. +- `--offline`: when using this flag, cached dependency archives will be used. +- `--refresh-dependencies`: this flag forces validation of all dependencies. Useful for snapshot versions. +- `android:lint`: performs Android project validation. +- `build`: builds sources and archives of every project. +- `cleanEclipse`: removes Eclipse project data. +- `cleanIdea`: removes IntelliJ project data. +- `clean`: removes `build` folders, which store compiled classes and built archives. +- `eclipse`: generates Eclipse project data. +- `idea`: generates IntelliJ project data. +- `lwjgl3:jar`: builds application's runnable jar, which can be found at `lwjgl3/build/libs`. +- `lwjgl3:run`: starts the application. +- `test`: runs unit tests (if any). + +Note that most tasks that are not specific to a single project can be run with `name:` prefix, where the `name` should be replaced with the ID of a specific project. +For example, `core:clean` removes `build` folder only from the `core` project. diff --git a/Exercises/NetworkedTicTacToe/android/AndroidManifest.xml b/Exercises/NetworkedTicTacToe/android/AndroidManifest.xml new file mode 100644 index 0000000..6a2f0b2 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/android/AndroidManifest.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + diff --git a/Exercises/NetworkedTicTacToe/android/build.gradle b/Exercises/NetworkedTicTacToe/android/build.gradle new file mode 100644 index 0000000..24eacca --- /dev/null +++ b/Exercises/NetworkedTicTacToe/android/build.gradle @@ -0,0 +1,136 @@ + +buildscript { + repositories { + mavenCentral() + google() + } +} +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +android { + namespace = "u0012604.tictactoe" + compileSdk = 35 + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.setSrcDirs(['src/main/java', 'src/main/kotlin']) + aidl.setSrcDirs(['src/main/java', 'src/main/kotlin']) + renderscript.setSrcDirs(['src/main/java', 'src/main/kotlin']) + res.setSrcDirs(['res']) + assets.setSrcDirs(['../assets']) + jniLibs.setSrcDirs(['libs']) + } + } + packagingOptions { + resources { + excludes += ['META-INF/robovm/ios/robovm.xml', 'META-INF/DEPENDENCIES.txt', 'META-INF/DEPENDENCIES', + 'META-INF/dependencies.txt', '**/*.gwt.xml'] + pickFirsts += ['META-INF/LICENSE.txt', 'META-INF/LICENSE', 'META-INF/license.txt', 'META-INF/LGPL2.1', + 'META-INF/NOTICE.txt', 'META-INF/NOTICE', 'META-INF/notice.txt'] + } + } + defaultConfig { + applicationId 'u0012604.tictactoe' + minSdkVersion 21 + targetSdkVersion 35 + versionCode 1 + versionName "1.0" + } + compileOptions { + sourceCompatibility "8" + targetCompatibility "8" + coreLibraryDesugaringEnabled = true + } + buildTypes { + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + kotlin.compilerOptions.jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8) + +} + +repositories { + // needed for AAPT2, may be needed for other tools + google() +} + +configurations { natives } + +dependencies { + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5' + implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" + implementation project(':core') + + natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-arm64-v8a" + natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a" + natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86" + natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86_64" + natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a" + natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a" + natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86" + natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64" + natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a" + natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a" + natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" + natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64" + +} + +// Called every time gradle gets executed, takes the native dependencies of +// the natives configuration, and extracts them to the proper libs/ folders +// so they get packed with the APK. +tasks.register('copyAndroidNatives') { + doFirst { + file("libs/armeabi-v7a/").mkdirs() + file("libs/arm64-v8a/").mkdirs() + file("libs/x86_64/").mkdirs() + file("libs/x86/").mkdirs() + + configurations.natives.copy().files.each { jar -> + def outputDir = null + if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a") + if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a") + if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64") + if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86") + if(outputDir != null) { + copy { + from zipTree(jar) + into outputDir + include "*.so" + } + } + } + } +} + +tasks.matching { it.name.contains("merge") && it.name.contains("JniLibFolders") }.configureEach { packageTask -> + packageTask.dependsOn 'copyAndroidNatives' +} + +tasks.register('run', Exec) { + def path + def localProperties = project.file("../local.properties") + if (localProperties.exists()) { + Properties properties = new Properties() + localProperties.withInputStream { instr -> + properties.load(instr) + } + def sdkDir = properties.getProperty('sdk.dir') + if (sdkDir) { + path = sdkDir + } else { + path = "$System.env.ANDROID_SDK_ROOT" + } + } else { + path = "$System.env.ANDROID_SDK_ROOT" + } + + def adb = path + "/platform-tools/adb" + commandLine "$adb", 'shell', 'am', 'start', '-n', 'u0012604.tictactoe/u0012604.tictactoe.android.AndroidLauncher' +} + +eclipse.project.name = appName + "-android" diff --git a/Exercises/NetworkedTicTacToe/android/ic_launcher-web.png b/Exercises/NetworkedTicTacToe/android/ic_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..67f210170e5f51ff7339d3112fbbfe59bc0604bc4bf1a720ec63b932a91c58be GIT binary patch literal 39311 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 + + + + diff --git a/Exercises/NetworkedTicTacToe/android/res/drawable-anydpi-v26/ic_launcher_foreground.xml b/Exercises/NetworkedTicTacToe/android/res/drawable-anydpi-v26/ic_launcher_foreground.xml new file mode 100644 index 0000000..8e1c344 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/android/res/drawable-anydpi-v26/ic_launcher_foreground.xml @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/Exercises/NetworkedTicTacToe/android/res/drawable-hdpi/ic_launcher.png b/Exercises/NetworkedTicTacToe/android/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..36210f32121d53ff6e8dab01e0c31bcd57c4a5d550d505d4c73e359dc053eadd GIT binary patch literal 4774 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 literal 0 HcmV?d00001 diff --git a/Exercises/NetworkedTicTacToe/android/res/drawable-xxhdpi/ic_launcher.png b/Exercises/NetworkedTicTacToe/android/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..60f611c134964c4ed96f612093f603dbfafebc0b020ba6a5245ad72f5d9f0752 GIT binary patch literal 10114 zcmV-|CwpsG)Y83RCwC#oe6jq)!E0Jn-xOXMV25-SOb!eM7u2fNswghFmn!ZXxGQ2^s;vuJMXUCs*1A=#YptzT&-ebGd*3)Y%$+5< ziAlIT&;Q9~=FB-W=lte9?^)-2#+dIVl~hxe%!H(p0JW6lUw4$uizGl{!HI~Lh~5?b zQ*?wVHJLX_fP%nND%v74mR=H7C-W!?P&{yQMe9W0h>V9eiiRZfED4Z;lPx+$^ly;~ zD8h10b`qc+7n~H)BGKz2(?q=`S}KYp0ot+PnJ9WpWD=yOL`6w}IzBl4L|2Qx7MTQ# zIElMo5}=L;PNwKM(WgOyNKH*OBSwrs{0;*WX^>WC5}=L&Po3y5VXR4?K7CACS(&M= ztu<)o%$a7ufB|7G(i@^BNr2ifIHN>&hbi=K-MX3GcH7O=)YQ1DsHn*F=+PrANDqm| zB>`$b;Pe!&7JU`8kTWwg&6qJ`Om%g&uK=mAu+U^>Wrg*R)`|Kg0cyM8q{W)l?*%Q` zl#~=RXwV>2Sy|Zt$gEkj463TCY9u|b;W##I*f0}`M8bgdp=gCDBMDI3f~P|Cr?7rb zNl8f~aDW1sP(?+BQ+k{*jX=Uz>fgVA*lO(+(VQee-#s|PL^p;hye?h3m`Rf+Q57|U zN1-V%FUM&{z=8DtoKu(@K}1|rrc5z8IXPiLdO(z)1n9dNemF_=pP+@6o}O;<^Yhgq zZd4U1JPJ)|X(`spDUK;j3K7>ff(R896qt;Rj4%*=8S~k?B>`%k;fE!ncf$BNyX>+H zg|5wV1xPJVgVh0&88c>>;^Ja6efo4cUWE9~G0rJST+_%B5vRt_@w~jeu>R2pI&CBg zP|LtGMf60NDxz1fUWP)SJ$tq%JOF`}0TP<(H02LoQfgj(Z~@{s$2dnA!umo)n!vWx zPCJFI)}9s3NCK2Na0Xb@EPU0ub7wPt{CEmc;jsat`q65u0iJ2orkSZzr<&srFEbxK zU2nd5Wg+4>$2dnAg-EM2;<5oknm+y!zE@a~Hi`x(0ctuponlSi&%z8p3?Dw6g4DwE zwLVx0wLAcF^s)-`*_H)>(@3BHX`xyE<0wRGiMZCw3fcF750;jeW!Vc{J`P|kT~cQL`IK6o?e(Epq8}YFldxQ)Rhe2Lg~-(k zseoHTdn<3G%X3x_Tco2HD&)7Fe4dCpvg>OxGAvXtX0=zH_io+Kzibq zIa-zBqz7@RWjEXLL5Oqtq2=bd!^%wk?8$}^`B9@rF^P=U z9D}8Z-yGu{VF=4LTuU5o4t1!i%ob2~@7_HuNSj2vc2s}>r$?+w`rm*V!jJ$>-+-C# z-{)gjU6UtIHWMaHFyqFJYXlF_P)!aUIu!AnV@`;;hHHt#s>*!(hJp$okEteMAo@zQ zR#xURwspo@Vhyh-ntQ&Gzs^!mBRrZJs!BqPgwT z8uRs^fgvFxF5)C^?WOjs%9{PGW5a>xrZ3!TImFF8F{2ZFBWUyvTi&!76y3}c| zt(;~)-J-)436sRRz|5&GAPr|#))H1oMZ8TJ7I|B=G*Qz=5&_R-(eIl$%|g{G)`x25 z!c!{}4v*@>Qz}WLrLB-Hs?4TL8+k@l{9OSAIQ?~+MFNK(R0(UgJFO3^DPF#BZi@l* z(tUNL;j}`DYu5VcE0GR-3K;P^M&)%twDev})nSZlPcH30f5vzqp+RspEh{2c!(D=s{|`Oc<09e$UeQPt7_kp^jzrZw^GJA(*OCX`K^1&FS8 z9e!wacyw8g!eb9vP^Hjsa`~C%Ee#N9kQQm$Lmb?j$J(+Mhe(G-@JZVoK-`$GDP=5) zS$On1XQrpqVxURSaWdJp`<}vZis1u%DCYkSzl@h^ZMo*!~d5o9A#LkI&k1X#?iP3?y1pg4qbo7J@xI|*N`7s zGHBW`O2t}@m$zW3{7rMjvGdM5 zI~{IXGhXJFmWJhsQsggMgP#?)?`#i96EhE^x@oKgg3aDQ9 z@V-dyS>ny4dO>0tqn7J->p8BBIi+VVAFBWXV52bOVgQ}Ba+Z1cni3OXM-Vx-MIiCZ z55f$KPUFC*ass5_d1`K2TKffvw}#^Z|7eNdC*vt#sz<6nM3;msKyOPSW=h(-74-B3C|%;(D!tS*r|x9ZQod)NwBUJ9 zv_kIdFp&+$pXL8uB#mr&o*fDxretQzgTHS*6ortYEjQ6)k}=j>$2r!sCj=n;DylD? zOLM-)<)O;7H13hY;y&m{aRms~5LTeL_~h|%0m|-_AyYsWnAAv$DU*A);{a;S$7&Y~ zxp#Ux=kO=v0`#G%Lsemz>JpdCIwqD`w37IHj#Z$ain_|Ry!Al-$|=H+{pak_RgMeLTk`)7<3w}A>Nwk(ad7NyqGiP2RW4N=Ei|0(paAXc0T3-f?oF$q z7p&@IG(L)05Wv-AXU81rTh~l8|C8~p#q;vw0`!IyT)JGJo)(D*|Kj|UJc*MZA80QK#iX>Pk{n&JF;F3+;7gyDsu zPmHSbW9$6G(P!Z~`~ae=rVMPgD}d-I)8=6F|N0HXhgW3(!o z1kii{(rV5FAWhq=3e%o$X6@My?2|E2Y~Sb;Q5HVj?|HYSWT_+ zRP<4GSb!K@1R^it10@6?n)3X%d&HM(|BFj?dsOV)ua2K$_TPPkA3)X+O=y5Phr(82 zp33UL0Qt>Qr0EGn2?0p^aUQn%fELH@1ue3ww~HiA?TF;M95bt#>(@SFA1vuC7k==BspT!2Q%wL?S+ z1Bkeq2++Iof6Wh7B|1W5pC8>kZc~ zfP?^)3MBITapDUJkUG(k=-{o2>bpZX+1C;DY4AKuYOQ6y)%>_uSpLtd__kPS# zcIp!=4hAE;W~b2#^8{!&3FimUwZEQh2)j0ZGaf*a06B*;eh>hll`a5HkHV1zDvO# z5v%8QhT!T%Oy}?z!PXU;w_1gd>gC)_i9_|4RVefuaqZ~5oVWntgmZ3p>t(Sflrfy5 z(_&pMF0DcRY}D4KJJD`pI!pTl2 ztY>)63WFu!cxFZ)y4q=@v;bA9?`9m=w=j;{qCu4dQ1G)j$c)y@dtn1CiYr zIRLoZD?n;tt|HT|g2V4&)*o}A<5(#AfD#5!MD&5nJRaS^Q=93Vf!XR?(boY2Kb1yF?0`;gd&*BS9UBcS~ID6(D+=qfTxlqHngJ7>LwK_4rYN z0P4{_+jB-D8sJiuJ|p*}9fdm7akB*o>K}>t0mM4Axcy!L)U`{7S#wIcS+-9B;kfrk zmf2pVa;)UTg*@|)43I9T z6j1M8z32k4$HL-C0pfR4#YnyGV$l=Toayxr`1wE zeVAEs@CaA!HFv1NKOtQPMXO7P7>*Z=$>skXZ&(IBb^HL%1rlNLn~0lx0rdH`1)L*| zhPXM;J)Cl6KJYZsmOCm;L4JQ)tK~H{~&;aSKV+s(3w*1f%4}fOV`f1n@ zoWgzR+Bp;&*HX}QXvP4V78oGHat+rK2XPVS=IiE=hHhX^+T26Dc(`}2g z0f6Fdn&|^jZ6km#k-}ZGs+v6vDR7SI#tUHq;u_s#oVbWnT3XelVF6U@1yHd|Iu84h{FjGX#@p`dv8gA^jcLCAji(Dy6^wn1IX^LL933b;#jjg5{cvFV`dWPcKu7Fy{UBo@&bproTB%A#{!7nS^dT- z)r7PE=HSJX*`v@^*PK&IX0cnE?&?alg5+az^Y=$;4ZjJ? z5CPW`?+xcy5U2J^^S9ytt~_&wVNUfCONN=nbpy=-yALwQA2QNhcG?8Kb@m(pHFiDG$18qyYo{dO(#H|T*Byf zGz{)?ueuhWxY?fWdWoO;N9;lLs_6Ifo9QIgY>yY6iHKDQ15n^kKIop*s>OR&nEm%G zY?A;vAH){N<3Z&I5N6)m-!QQB{_LgADyC2abxa z)~5nYq+b$Q% zue8kp#G9uN;U>-@ukSfI24-pwo_G2l_OYNypv37_rf) zJ&mS%hn$~kUXxAEfd^f`y6ssY>Tn)H-vFmLhB&V<#mgWs zfGoN0mZ38oRjmrp35Sg~{9QmiE_*SK8k%F+aC3|cU`&1G(*|w;A=~2E;HcH1s>0#` z4x{{3i|3wD2{;Y9;exhjf$;2|b*?RrD@;K@zNP??8O~XVtfcS+h;4QA2KQpuQv@Kb z0?=XmM4QJr*7hFG9Iq?yXYz-2H3MA$niySNXy=W}7aa1~21om(wryU}2%sC=AV5qx zRr)cVYCiePF-)oxB(+91M1G&Lc5e8B4;nUP=T-sepgp21OApP+aNVe( zU{p6Vc6e778Em&MKUa>ixX=Y4Uq46l+y;jh;i<=NKU?9ZHEpj7!vO>s?d;=0RQ#Xg zJfwo;0g>;wP(1-+8BV4YI-P_H(Z2P=y#QiYjD!Gm%t6s~7F!kwu}?ts`?2vq(apSQ zXBDqfaP(82PCv)CINFIx$0i+_Pu@IdJAiJ!unk%uRtxO8pxB)Gvsvca)ivgxt82}D zqV?xjOY^amhf|Pr@|52fjpNOW4g?UH2Sn$tEHf*AJldlbrUjY+C;I3y?B>DRevaE) z3O8&Xnj>K@IHAz&v-=bsr_*U63Xn?SadnUt9PRzq;S-*l7pJ~qTX4 z51_TD7O|^4H|VNA+&ah1pIgKO+YpgK7DS!^(c<$2h$@MUT=C-~`9{S;bAksze0o4T z1lcIFIRKp@87DK&J}>cwQ_nBLbDB zd1k*o3(O5`+`kcf>%}wL96*>w-$BS%?w@C>N(&XDpr6IItFb@;E!%Ip`S5ApJ`aF= z6&@hMsWtmJPMj?I8Grk=&@EyXgWUX=TkFjMi;JAA5xlGr ze?tQ_Dz7VPeP;kMa=-t=L55>2yS~o4PrDZyKMaTf#2x^3en6O)?wWIJ%zt0B^0fm1 zgjo#y0C!$Ki@IB_koo{NK&VLo4d~lNGP=s#a#4-B>xx>lWMTYP*a}BengPz{0Ce<$ z`R1A1=b6WEnr$|(pKX>eEij!k)1t#1;$yw*ZjD&yuKPIx4s!i``FSU4hhXz`$J)|1 z2++mB0s6<2^*DacMRj&HX2XLx7t{x$bwjH}msGb(D~xoU^NvUx$2L29o?T(}9$Yt> zVh|Q!oTKPe@oIgZzjI#41?cv*!2v=?9z0D~B*d%6Z0i%I6{gKv! zTI355YvNNBNOv*j<+@wiNwIXeZw1I+h5LV-5(LntZ4V%*4*7xpDy)QaHl7pe!FmEzJh4|o0OI?s#M51*+vce1=a`P$hOE^n5$#%wVygWv)7_%FHPr5+9&QVgX7| zjZhtJ7baKkYtR7M|EDH8-0`f{PsCn9)|euB;#>pAvvgd5HiWc5Tkn~NpTL`iiFRww zBfI(nGBVj~ER69cyA{@I0CmsFFoiAvF@VZID!tW&z0bNAw%5}kA>eTiRpptahJ59~cO;g`>KgB!bS=0jQ z3_|VuQGm#=O}f^;>7uOKKR};77X=8@to=d20VE2L%P2H&CzEgk*4$<^UNJ} zX6wE4%;8H$HXES30szETdBXT{C#LH|%I<0DpVFh?j$(!%FK)_^I`!3aCnSNfN7&8rWD zugd=YLcLji;&f@HrnfzSRD*N7nVT-G)RB2FiBmY<*_5|O=aF4~VcMCz<_8cRc)YPd z)T#hsDcCpw3v z_x(neG!N;a<>&-`K}9y&B#mtPTp}^0L=|Cy-_F_Q z{1Z#f8ON2Fl}E@l&xz6Syye|g(Q8?k6$MCs-GjEZ;_APW1CCDUc9 zMsCAm#gPIMAILjShD&}aKr*SGZH>8>^PR;aU{!VLwY`TU))e0e>%+V&(qY)+;#HIV zTf6txnd*|kS}tt@plu=(L}cKyy~mk%o>&ma0!2If$TR@bmYB|)Ms}|(;qU|Uhjlj- z$GB_H+T2FzTy)ZSjtt#5T(jlQYO_(A;%6RPU>?1$%r$S{|6{#bv1|e_25AM=w$=cslW2wL z(||W6nVey$d;epNB3G0|-!R9>JXQvXfCkx}YJ`(QDlvb3xZb?}a4-{&U-s9{^UO~U zDxzRiq)j0;%w9ZXzan$i&r8hJXO&Z(G!nVUU+^p08~V*h zXPYN)nrZI8s@Obxdxd%D@o2B|8;{I4ggWhr6mEfLFzABEBZR=#zhz`Mxc8;b@_DS)_5E4H&q^0m4 zx^{N(Em;not_5zt>COrG2(aCx=iMOUFaHm{Rm|q~)l|vkg^IyqnG7GimG$a_^UeHO z!@_`ro)#5rIkq-HHbg0+MWQ!?K0s<}gw_#-pT7k!`jLBtQnu(M(HB7E$f*SUO7V6I(_DMVt~^09&q&D;1$9KQTd?1PI z=u$|!Arz*c%>0`;p+DMpoLO~r<0kD}kJTCaOxBz{qoM16d2DAfbmtXnC7Q1dm(FUi zUMmibR$pJpa+=FdFEOm7ef#k!sH#;*O)v-lV5~F*qR{_teHGyv^upb9JXg0&DeM=v zy4onp)ADJ{0NEhT6g?m2VcFe+H+g=|c(b^^Kz8w(CRI%#g@dnvnHNhn*nISKy$mc? zn4*cJ$aJ};pRB@||813ZStTRegcpZ&n)&;q3k(iC5MFpnsalXkN#dNr{mB&CN@;P` zOPZ4n9e(uL+<95qw^f$hV{Y#Mw|D-bRh3~J$Njh}GqTCdUkf*)$>2KK=G|ECZo9kP z{fKRMh7+QO<{zPLjfB!`k&%B?ZjogmM2SktGPG1QuoRiO)ol3#%D|wIRvB)TsT8%I zo-g-27tR^i&T|)eH{U-Aa(Icdf~|uyoW9W|9$|3ZVV^Z76e0h9rWkY@TsPR0m65y{m}pz!oFlV zs-^YwxofMUA9@>Hm-p)zO*D9-Ar_aR#mt^_n+BXet<*}E)O+#+qz5UFbx6|`V==eB zz5i@qn9QqZ3> zs`VM+mTo9+i-gY_vCXLW0{2F*pdMdU$k}ll=t`4am^xM#$QYViU0^Mfdc9Qu5{S~R zzWNu}cT}B{&QO%nHHE1PamW5Qg0!Ng01!dk`c&D#>3gq^+E*4*p zA<1V02`w2wy_VoiQP@;pdu|C$%kXHxxoV|MCZjGV7C?HCW>`6jzuZ<}PIlBb;`VAv zKtWz+%d>t$>x0+53{KmMVst~XuISvs(HZWu2kN91gBYY@>a{?EyHY#sAaTx-UA2^# zo2eas*u|P9^*3<=(t}jU>d|y-m8IEq_K@URbUMDfhOfxH(yhhd*wF5CZp-hLA^3I% z;<&O)Xy50LG*Vq#;LLZ*30oYdk_V^2k%KYiWB|h}N|QZ0mtRuWStAb8IWJmA|7as+XVf zQ%PaA7MuZAx%_SekP9hoBdx3--N#3hWDN_n9=6s*Jje_PBvul!lgJDSnAt?OSrcM4 zar&4s2#h3VN{TAZxyLqr`0^zbkAbxM~6}kl9bo7gn&SW zvQRF@+B_alA~uWL<@XtY{y&iJX6?~*5g8d72!aI^CnRE}g=B>rr$^hlhzZI-3x}nf zwB6N5tbF-B2B4bVhgHw=Npxj;-j$!%t|an7)nn(*M54M52!v5mayasniTm<7o}Koe()Dw_}_ zWA>{CoDnM(F;kAy0F?Y7Enpp1oMbGwgkV_ij^-2sW?2tRqhqXva$E+W@g*4+`9^WV zF`XnaF7nYCUsn>IByRmR2eTm#M(>`QDG2B3)r(rnfa z#cW!QMy#@D%l-^N6Bnc+)`|ZRo_<{907*qoM6N<$g7Z9Fk^lez literal 0 HcmV?d00001 diff --git a/Exercises/NetworkedTicTacToe/android/res/drawable-xxxhdpi/ic_launcher.png b/Exercises/NetworkedTicTacToe/android/res/drawable-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..6a87b2d3bf67bac1c62a58b7576335b9688177e3790f5b5dc3b99bbac62cef90 GIT binary patch literal 13695 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

KO)MRW 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

`#4_X4po6zBr>DFqDjW2! z{_P&1LrE2Mfng-Rc+nO76%M4{>N7%t?)?3HcOO5&1?@h|V!{u-A0J5u2pxmpolbIH zWHUG@?w3e8GhcYn-jYE!V@mg*AQrQL=6}BvAbAXJ9-WbiGM2i0jYQK-zjGELd&()Za+UrC@EWFRrO z;4g)&K5*z4-Z-t-wBoKclKPV+fWq^Y03z0VwB{6!4?EFi;rLv0ewTwL0Jt- z<{kafREP&C+~p=P=SxA7!qyVSnxi|(SP{jowkoS`0n&D#KP1_JUj0PYRR9IZ5fYL1 zkIS~HHQeD9orcGmso9a|=VTtZ)OQHYEy3DOW9GseGN;KjjO}k`fVGNr$1qEiz%(i< zi1wFwn4OpHAo{KduGI8nkAGQ?d}0=EH%yapXC(Ocr}7uN<31W0%`LOj z^GYCgD^E&-ct&=Iw9XUrSyl6ByJ$Yw^np0X%8l#53uB@Qwe5>el7

Dtqwj?VR;N1AN@UI)Nj|^EmhuuUU7>BfkmTl;H z>&WnT_pGCBDD>7y}b$A7|IeU9HDh2r8FTHLrg?X@#1 zKe%lKPvf^DOd-7`RlQ6O<>8to{ijCP^VBNiez0lZ-=M^a9La>5EuvOLFSCv;PNcm| z@V&N835EToE@A`z23=jQzm|(8ty!y63IWmWI=BAHKWDagEp!Akn_rVpEID5}?1}wA zadwKDMy~iSDtWy#SH<%_*{DG2-V-Jo7?sXV0tZ@j_lV6nH-vCRx=TB?ezreAybqTVM!ED)MgJ56NGaiFKX)u?v}L8%^-smNL__dhIz&H~>dT@_F_ygg(S? z9u8+j-w1roReo?@$DkFnm6p1%|4{*7fUAua;`%G~R z82ua+6`mb6KzDXTU6LA;qrh-=l4m*^7`R52?Kb=F#uJe`_VMdZU^z+QB`396h5N6* zsHoM2dESkz*G~)7g-e*k$Wa!aZ4fK=wUV`&O8r|HNUq2kDf0O!C)UQ(W8N^@wb_hK|PMvec{blUr z{gMb3kT(~N=Wy_kxK|jiIk;{ZTYvD|s=CmKC94! z*UL8poYi?d0@N~ZwgoH;^X|Uw8jJenVbokV9>4)UNf3?K>k_=P+BdyADvk|5t(~#3 z?aM+8)a9^IuA%f$SyX7|-vu|lfR}O^yAnS!EG*G(*N!ZIo@d?#NdLo7sP>3a{l(;u zGdZ~!8w{N!=uu;M)^zj=GORAABN@jOu>lUrnI-Ejod zpB+`Vw_cNuQy4tA6eZi|a(V&yPr^TwtnY`5mF|DN3HKq*`-_Y;*(Gz+;<#|h#3sx5 zSN|8wj+*JmPmQPmVPLLwWTmg(-8f>j>NgUHW9 z6)`Kpr++t_D-Q|9_e7J(hEt2i!BA3Rx@eTvkH4yD4EAKxv;xd*um8Q>SChD%KUYRA z!*=}G&E9!;)svVg%M{8>)hQc ztM0~ra}4K5d}Sy5u5-ud8<8T?AtQ0wXPYImQm^I#Q6;YPC9humFO$W-`S0yD{hbz) z-h&pr9%deBry_G**B$Ko^gkX|Hxg%_8^)t;KXrB+8m^;=gZq$_bOlP!OQf2ZjWbg> z+BMDGlKlGDhcrv^Op@KKr6)VmNVLq)Z-z5-WOW!*{UE1i^5%oVnblkyAr9w@-5dpk zqnnZA$DP*9IW2h!=DsU2U*3=%!rJ3{fq<~a5QJK`q!j{AI&n)1Z*w`^^oFL=vg5T ztBIz)WywxQRed_#VkZnP4OCp?Ryf)iB3AX)C86FV_Uk(aKU~rWc52?Woa<)SpLC@O zS`xuvlnYg+Yk*b`lIm;Z0A3$f(>R0Fcf@4EQ$ts3iQ z`k>Jq*O_wYc=}zq;|JWW^`H$SSi1X%$ItL}d4{O^6B6ajT6DN@NDWqWph-}pva5MM zED5CrDYJE~8mJzdOF^V6>Rq?^-Z6q$#aqo?k9fCe z29!JfW;5zn`*;&5!f5*443n#0g3+ZyC((>C&?A4Z>L%!h9&x!c>hf#Xx7~W4zpOv1 zuBb>NeiWUocB_IqN5GYB+O{?4zbUWDcoM#%*^Ni;#P;;F^&}*I^js;faI1t4F@|K* zLLM!i?%^Sg?_92%Fcu|7CnS~=0&RvQLpCwW-rXXXPPM#;RA`~btVRfoVc(r=-LRfK zg{Ek1ZLQD6@6Z;yl|kc*=LfnCK4efi7|Rf~rkGm0S!F<53AHVx(N6zY0XHl~r1{`iBXcYZR&TLk zxmzJr_XS;jAX!-@Q~@IZxqdIJ6u8m_Y2cE~u`?D*Q6}vhJ~wcNu=BJ+7aOLFv%uoV z!}s8pIi$nXl_=^7Qabxh8$u|PvFr;AeM0Ydw|@`hAVu?7fz`cz@Xy_Es5FVB@)oNC ztldcKWAo5WJ5bkfy)fG`8Ko0r)6wBIaWwSfpQR6k%RuCSM~BT^(#S`9EihnR4n&CA j!E1F0Yb3gq`tP`|0w6l)$eY^)o|EEh6}c)I)1dzYCa0uh literal 0 HcmV?d00001 diff --git a/Exercises/NetworkedTicTacToe/android/res/values/color.xml b/Exercises/NetworkedTicTacToe/android/res/values/color.xml new file mode 100644 index 0000000..b3461fe --- /dev/null +++ b/Exercises/NetworkedTicTacToe/android/res/values/color.xml @@ -0,0 +1,5 @@ + + + #F5A623FF + #FFFFFFFF + diff --git a/Exercises/NetworkedTicTacToe/android/res/values/strings.xml b/Exercises/NetworkedTicTacToe/android/res/values/strings.xml new file mode 100644 index 0000000..09e7e0a --- /dev/null +++ b/Exercises/NetworkedTicTacToe/android/res/values/strings.xml @@ -0,0 +1,4 @@ + + + NetworkedTicTacToe + diff --git a/Exercises/NetworkedTicTacToe/android/res/values/styles.xml b/Exercises/NetworkedTicTacToe/android/res/values/styles.xml new file mode 100644 index 0000000..ef98b63 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/android/res/values/styles.xml @@ -0,0 +1,5 @@ + + + diff --git a/Exercises/NetworkedTicTacToe/android/src/main/kotlin/u0012604/tictactoe/android/AndroidLauncher.kt b/Exercises/NetworkedTicTacToe/android/src/main/kotlin/u0012604/tictactoe/android/AndroidLauncher.kt new file mode 100644 index 0000000..ff64350 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/android/src/main/kotlin/u0012604/tictactoe/android/AndroidLauncher.kt @@ -0,0 +1,18 @@ +package u0012604.tictactoe.android + +import android.os.Bundle + +import com.badlogic.gdx.backends.android.AndroidApplication +import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration +import u0012604.tictactoe.Main + +/** Launches the Android application. */ +class AndroidLauncher : AndroidApplication() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + initialize(Main(), AndroidApplicationConfiguration().apply { + // Configure your application here. + useImmersiveMode = true // Recommended, but not required. + }) + } +} diff --git a/Exercises/NetworkedTicTacToe/assets/logo.png b/Exercises/NetworkedTicTacToe/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..e6d211edd798615d81c097a3f770675a0c04b40529d5f95ba87a02919fc301e6 GIT binary patch literal 1432 zcmc(f{ZAWp9LKMA!T=9h%qrM+)G<3*r2eptdWn_Fx&UH7E&`n9QZx(Us(L%?(@0V zz2BeD`BV?N|v_rT|IaoV=qqm%bsQc zU$1-n)N!8UE@*k(v2}YEujltQd)BHod)>Z!#g_ZPzW4c_yEi*4LmfxvI|`@l#evSU z?yirlT{w!U}rea_&6Bp zQA_0#lWQp>n0P|s(u2}J#4$}B8c}+wZ|KV)-U+f81i6VF11l|wMw;;{!`(#4z;}B< z?$TGKv*MUCjU_?EfQ8lp?T!7Wd%(UF6dEUCY~$}^EwT#kjpWSqUxRPt>suCNZLO1N zk5?s{AVY>6<~3lsC`gK9CC&vf{b_6fY?V9ot|eYj2bMmCfH41~*h-Hb$C$I-&Ez;k(1sRut%8&*i7b&Ul^sWDH}iO9A1=I5ZL zP9udz6=t9e{#TNdXtft@L1T$lS`(Vmgj2qOsK12trHBT1+D!G1QWna9)Di$`h=%^O zZ3mr3qW_`3v~vd?MQX_%Rd4z-i}vC$5@k_?mU5ul!H%;syA+nt-&{WL`d=2hVDhF3YMkoX63uto~fuBWN@p2>y z&a(JuNOdTw#AT%K@e(hLfc>Ks7ETC=RB%c|{)$cOs+mRcpfhbziQmDCuxV{hV$oP0 z;iDt!cwhLF@sj>gl_Uw{YA^cZ02h~g(GgG-Ui1nmm0tAA0ghCjYie0LApGL+Y({Vn z?Wrv^9N~hmx-1s%~nAiDqf}^2eL!zp}LF@FL)E2vr@gQFzPW|MXvH?$Ue! literal 0 HcmV?d00001 diff --git a/Exercises/NetworkedTicTacToe/build.gradle b/Exercises/NetworkedTicTacToe/build.gradle new file mode 100644 index 0000000..c03bf56 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/build.gradle @@ -0,0 +1,74 @@ +buildscript { + repositories { + mavenCentral() + gradlePluginPortal() + mavenLocal() + google() + maven { url = 'https://central.sonatype.com/repository/maven-snapshots/' } + } + dependencies { + classpath 'com.android.tools.build:gradle:8.13.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" + + } +} + +allprojects { + apply plugin: 'eclipse' + apply plugin: 'idea' + + // This allows you to "Build and run using IntelliJ IDEA", an option in IDEA's Settings. + idea { + module { + outputDir = file('build/classes/java/main') + testOutputDir = file('build/classes/java/test') + } + } +} + +configure(subprojects - project(':android')) { + apply plugin: 'java-library' + apply plugin: 'kotlin' + java.sourceCompatibility = 8 + + // From https://lyze.dev/2021/04/29/libGDX-Internal-Assets-List/ + // The article can be helpful when using assets.txt in your project. + tasks.register('generateAssetList') { + inputs.dir("${project.rootDir}/assets/") + // projectFolder/assets + File assetsFolder = new File("${project.rootDir}/assets/") + // projectFolder/assets/assets.txt + File assetsFile = new File(assetsFolder, "assets.txt") + // delete that file in case we've already created it + assetsFile.delete() + + // iterate through all files inside that folder + // convert it to a relative path + // and append it to the file assets.txt + fileTree(assetsFolder).collect { assetsFolder.relativePath(it) }.sort().each { + assetsFile.append(it + "\n") + } + } + processResources.dependsOn 'generateAssetList' + + compileJava { + options.incremental = true + } + compileKotlin.compilerOptions.jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8) + compileTestKotlin.compilerOptions.jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8) + +} + +subprojects { + version = "$projectVersion" + ext.appName = 'NetworkedTicTacToe' + repositories { + mavenCentral() + // You may want to remove the following line if you have errors downloading dependencies. + mavenLocal() + maven { url = 'https://central.sonatype.com/repository/maven-snapshots/' } + maven { url = 'https://jitpack.io' } + } +} + +eclipse.project.name = 'NetworkedTicTacToe' + '-parent' diff --git a/Exercises/NetworkedTicTacToe/core/build.gradle b/Exercises/NetworkedTicTacToe/core/build.gradle new file mode 100644 index 0000000..e7decbf --- /dev/null +++ b/Exercises/NetworkedTicTacToe/core/build.gradle @@ -0,0 +1,43 @@ +[compileJava, compileTestJava]*.options*.encoding = 'UTF-8' +eclipse.project.name = appName + '-core' + +dependencies { + api "com.badlogicgames.ashley:ashley:$ashleyVersion" + api "com.badlogicgames.gdx:gdx-ai:$aiVersion" + api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" + api "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" + api "com.badlogicgames.gdx:gdx:$gdxVersion" + api "com.kotcrab.vis:vis-ui:$visUiVersion" + api "io.github.libktx:ktx-actors:$ktxVersion" + api "io.github.libktx:ktx-ai:$ktxVersion" + api "io.github.libktx:ktx-app:$ktxVersion" + api "io.github.libktx:ktx-artemis:$ktxVersion" + api "io.github.libktx:ktx-ashley:$ktxVersion" + api "io.github.libktx:ktx-assets-async:$ktxVersion" + api "io.github.libktx:ktx-assets:$ktxVersion" + api "io.github.libktx:ktx-async:$ktxVersion" + api "io.github.libktx:ktx-box2d:$ktxVersion" + api "io.github.libktx:ktx-collections:$ktxVersion" + api "io.github.libktx:ktx-freetype-async:$ktxVersion" + api "io.github.libktx:ktx-freetype:$ktxVersion" + api "io.github.libktx:ktx-graphics:$ktxVersion" + api "io.github.libktx:ktx-i18n:$ktxVersion" + api "io.github.libktx:ktx-inject:$ktxVersion" + api "io.github.libktx:ktx-json:$ktxVersion" + api "io.github.libktx:ktx-log:$ktxVersion" + api "io.github.libktx:ktx-math:$ktxVersion" + api "io.github.libktx:ktx-preferences:$ktxVersion" + api "io.github.libktx:ktx-reflect:$ktxVersion" + api "io.github.libktx:ktx-scene2d:$ktxVersion" + api "io.github.libktx:ktx-style:$ktxVersion" + api "io.github.libktx:ktx-tiled:$ktxVersion" + api "io.github.libktx:ktx-vis-style:$ktxVersion" + api "io.github.libktx:ktx-vis:$ktxVersion" + api "net.onedaybeard.artemis:artemis-odb:$artemisOdbVersion" + api "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" + api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion" + + if(enableGraalNative == 'true') { + implementation "io.github.berstanio:gdx-svmhelper-annotations:$graalHelperVersion" + } +} diff --git a/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/Board.kt b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/Board.kt new file mode 100644 index 0000000..cc2641a --- /dev/null +++ b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/Board.kt @@ -0,0 +1,110 @@ +package u0012604.tictactoe + +import com.badlogic.gdx.Gdx +import com.badlogic.gdx.graphics.Color +import com.badlogic.gdx.graphics.g2d.Batch +import com.badlogic.gdx.graphics.glutils.ShapeRenderer +import com.badlogic.gdx.math.Vector2 +import com.badlogic.gdx.utils.Disposable +import com.badlogic.gdx.utils.viewport.Viewport +import ktx.assets.disposeSafely +import ktx.graphics.use +import u0012604.tictactoe.screens.FirstScreen.Companion.NOUGHT_RADIUS + +class Board(val viewport: Viewport) : Disposable { + private var thirdOfWidth = 0f + private var thirdOfHeight = 0f + + private var halfCellW = 0f + private var halfCellH = 0f + + private val shapeRenderer = ShapeRenderer() + + private var boardLines = emptyArray>() + + private val board = arrayOf( + arrayOf(Token.EMPTY, Token.EMPTY, Token.EMPTY), + arrayOf(Token.EMPTY, Token.EMPTY, Token.EMPTY), + arrayOf(Token.EMPTY, Token.EMPTY, Token.EMPTY) + ) + + fun placeToken(row: Int, col: Int, token: Token) = + if(row in (0..2) && col in (0 .. 2) && board[row][col] == Token.EMPTY) { + board[row][col] = token + true + } + else { + false + } + + fun draw(batch: Batch) { + shapeRenderer.use(ShapeRenderer.ShapeType.Filled, viewport.camera.combined) { sr -> + + sr.color = Color.RED + + boardLines.forEach { line -> +// Gdx.app.log(TAG, "p0:${line.first}, ${line.second}") + + sr.rectLine(line.first, line.second, 10f) + } + + board.forEachIndexed { rowIndex, row -> + row.forEachIndexed { colIndex, col -> + when(col) { + Token.NOUGHT -> drawNought(rowIndex, colIndex, sr) + + Token.CROSS -> drawCross(rowIndex, colIndex, sr) + + else -> {} + } + } + } + } + } + + fun resize(width: Int, height: Int) { + boardLines = emptyArray() + + thirdOfWidth = width / 3f + thirdOfHeight = height / 3f + + // Vertical lines + val x1 = thirdOfWidth + val x2 = Gdx.graphics.width / 1.5f + boardLines += Pair(Vector2(x1, 0f), Vector2(x1, height.toFloat())) + boardLines += Pair(Vector2(x2, 0f), Vector2(x2, height.toFloat())) + + // Horizontal lines + val y1 = thirdOfHeight + val v2 = Gdx.graphics.height.toFloat() / 1.5f + + boardLines += Pair(Vector2(0f, y1), Vector2(width.toFloat(), y1)) + boardLines += Pair(Vector2(0f, v2), Vector2(width.toFloat(), v2)) + + halfCellW = x1 / 2f + halfCellH = y1 / 2f + } + + private fun drawNought(row: Int, col: Int, sr: ShapeRenderer) { + val x = col * thirdOfWidth + halfCellW + val y = (2 - row) * thirdOfHeight + halfCellH + + sr.circle(x, y, NOUGHT_RADIUS) + } + + private fun drawCross(row: Int, col: Int, sr: ShapeRenderer) { + val flipRow = 2 - row + + val l1x1 = col * thirdOfWidth + 50f + val l1y1 = flipRow * thirdOfHeight + 50f + val l1x2 = col * thirdOfWidth - 50f + 2 * halfCellW + val l1y2 = flipRow * thirdOfHeight - 50f + 2 * halfCellH + + sr.rectLine(l1x1, l1y1, l1x2, l1y2, 10f) + sr.rectLine(l1x1, l1y2, l1x2, l1y1, 10f) + } + + override fun dispose() { + shapeRenderer.disposeSafely() + } +} diff --git a/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/GameMessageType.kt b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/GameMessageType.kt new file mode 100644 index 0000000..472df9e --- /dev/null +++ b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/GameMessageType.kt @@ -0,0 +1,65 @@ +package u0012604.tictactoe + +import java.nio.ByteBuffer + +interface Serializable { + fun serialize() : ByteArray +} + +interface Deserializable { + fun deserialize(bb: ByteBuffer) : GameMessage +} + +enum class GameMessageType(val id: Byte) { + JOIN_GAME(1), + PLACE_TOKEN(2); + + companion object { + fun fromByte(id: Byte) = entries.first { it.id == id } + } +} + +sealed class GameMessage(val type: GameMessageType) : Serializable { + + override fun serialize() = byteArrayOf(type.id) + + // ----------------------------------------------------------------------------------------------- + data class JoinGameMessage(val token: Token) : GameMessage(GameMessageType.JOIN_GAME) { + + override fun serialize(): ByteArray = with(ByteBuffer.allocate(2)) { + put(token.type) + super.serialize() + array() + } + + companion object : Deserializable { + + override fun deserialize(bb: ByteBuffer) = with(bb) { + JoinGameMessage(Token.fromByte(get())) + } + } + } + + // ----------------------------------------------------------------------------------------------- + data class PlaceTokenMessage(val row: Int, val col: Int, val token: Token) : GameMessage(GameMessageType.PLACE_TOKEN) { + + override fun serialize(): ByteArray = with(ByteBuffer.allocate(10)) { + putInt(row) + putInt(col) + put(token.type) + super.serialize() + array() + } + + companion object : Deserializable { + override fun deserialize(bb: ByteBuffer) = with(bb) { + + val row = getInt() + val col = getInt() + val token = Token.fromByte(get()) + + PlaceTokenMessage(row, col, token) + } + + } + + } +} diff --git a/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/Main.kt b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/Main.kt new file mode 100644 index 0000000..464406a --- /dev/null +++ b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/Main.kt @@ -0,0 +1,40 @@ +package u0012604.tictactoe + + +import kotlinx.coroutines.channels.Channel +import ktx.app.KtxGame +import ktx.app.KtxScreen +import ktx.assets.disposeSafely +import ktx.async.KtxAsync +import u0012604.tictactoe.networking.NetworkHandler +import u0012604.tictactoe.screens.FirstScreen +import u0012604.tictactoe.screens.GameOverScreen + +class Main : KtxGame() { + + private val clientChannel = Channel(10) + private val serverChannel = Channel(10) + + private lateinit var networkHandler: NetworkHandler + + override fun create() { + KtxAsync.initiate() + + networkHandler = NetworkHandler("A.B.C.D", 4300, serverChannel, clientChannel) + + addScreen(FirstScreen(this, clientChannel, serverChannel)) + + addScreen(GameOverScreen()) + + setScreen() + + } + + override fun dispose() { + super.dispose() + serverChannel.close() + clientChannel.close() + networkHandler.disposeSafely() + } +} + diff --git a/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/Token.kt b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/Token.kt new file mode 100644 index 0000000..a94e1f9 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/Token.kt @@ -0,0 +1,9 @@ +package u0012604.tictactoe + +enum class Token(val type: Byte) { + EMPTY(0), NOUGHT(1), CROSS(2); + + companion object { + fun fromByte(type: Byte) = Token.entries.first { it.type == type } + } +} diff --git a/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/networking/NetworkHandler.kt b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/networking/NetworkHandler.kt new file mode 100644 index 0000000..32556b1 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/networking/NetworkHandler.kt @@ -0,0 +1,166 @@ +package u0012604.tictactoe.networking + +import com.badlogic.gdx.Gdx +import com.badlogic.gdx.utils.Disposable +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.cancel +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.channels.ReceiveChannel +import kotlinx.coroutines.channels.SendChannel +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import u0012604.tictactoe.GameMessage +import u0012604.tictactoe.GameMessageType +import java.net.ConnectException +import java.net.InetSocketAddress +import java.net.Socket +import java.net.SocketException +import java.net.SocketTimeoutException +import java.nio.ByteBuffer + +class NetworkHandler( + private val host: String, + private val port: Int, + private val toServerChannel: Channel, // Messages being received elsewhere in the client to send onwards to the client + private val fromServerChannel: SendChannel, // Messages being sent from the server to elsewhere within client + private val connectionTimeout: Int = 3000, + private val maxRetries: Int = 10 +) : Disposable +{ + fun ByteArray.processMessage() = decodeToString().trimEnd{it == Char(0)} // Removes trailing null character + + private val coroutineScope: CoroutineScope = + CoroutineScope(SupervisorJob() + Dispatchers.IO).apply { + launch { + var retries = 0 + + while(retries < maxRetries) { + if(startNetwork(host, port)) { + break; + } + delay(retries * 500L) + retries++ + } + if(retries == maxRetries) { + Gdx.app.error(TAG, "Maximum retries ($maxRetries) exceeded, giving up :(") + } + } + } + + private var socket: Socket? = null + + val isReady: Boolean + get() = socket?.isConnected ?: false + + + @OptIn(ExperimentalStdlibApi::class) + private fun startNetwork( + host: String, + port: Int + ) = try { + var assignedClientId: UShort = 0U + + // Create our socket + socket = Socket() + + // Connect with timeout set. + socket?.let { + val socketAddress = InetSocketAddress(host, port) + it.connect(socketAddress, connectionTimeout) + + // ------------------------------------------------------------- + // Coroutine to handle messages + // to be sent to the server + // ------------------------------------------------------------- + coroutineScope.launch { + try { + it.outputStream.apply { + while (true) { + // 1. Get the next message in the channel + // to send onward to the server. + val nextMessage = toServerChannel.receive() + + // 2. Write the message to the server + // via the socket's output stream + write(nextMessage.serialize()) + + flush() + + Gdx.app.log(TAG, "Sent the message $nextMessage") + + delay(10L) + } + } + } catch (ex: java.net.SocketException) { + Gdx.app.error(TAG, "[SEND] Socket Failed: ${ex.message}") + } + } + // ------------------------------------------------------------- + // Coroutine to handle messages + // being received from the server + // + // Messages received are then forwarded via the + // ------------------------------------------------------------- + coroutineScope.launch { + try { + it.inputStream.apply { + launch { + while (true) { + val byteArray = ByteArray(1024) + +// delay(250L) + + // 1. Read data from the socket's + // input stream. + val count = read(byteArray, 0, 1024) + + if (count == -1) { + Gdx.app.error(TAG, "Socket Read Error!") + break + } + + val gameMessage = buildGameMessage(byteArray) + + fromServerChannel.send(gameMessage) + } + } + } + } catch (ex: java.net.SocketException) { + Gdx.app.log(TAG, "[RECEIVE] Socket Failure::[${ex.message}") + } + } + + } + + true + } catch (ex: java.net.SocketTimeoutException) { + Gdx.app.error(TAG, "Timeout Exception: ${ex.message}") + false + } catch (ex: java.net.ConnectException) { + Gdx.app.error(TAG, "Connection Exception: ${ex.message}") + false + } catch (ex: java.net.SocketException) { + Gdx.app.error(TAG, "Exception Raised: ${ex.message}") + false + } + + fun buildGameMessage(ba: ByteArray) = with(ByteBuffer.wrap(ba)) { + val messageType = GameMessageType.fromByte(get()) + + when(messageType) { + GameMessageType.JOIN_GAME -> GameMessage.JoinGameMessage.deserialize(this) + + GameMessageType.PLACE_TOKEN -> GameMessage.PlaceTokenMessage.deserialize(this) + } + } + + override fun dispose() { + coroutineScope.cancel() + } + + companion object { + val TAG = NetworkHandler::class.simpleName!! + } +} diff --git a/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/screens/FirstScreen.kt b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/screens/FirstScreen.kt new file mode 100644 index 0000000..0e9bed3 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/screens/FirstScreen.kt @@ -0,0 +1,177 @@ +package u0012604.tictactoe.screens + +import com.badlogic.gdx.Gdx +import com.badlogic.gdx.InputProcessor +import com.badlogic.gdx.graphics.OrthographicCamera +import com.badlogic.gdx.graphics.g2d.SpriteBatch +import com.badlogic.gdx.math.Vector2 +import com.badlogic.gdx.utils.viewport.FitViewport +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.channels.ReceiveChannel +import kotlinx.coroutines.channels.SendChannel +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import ktx.app.KtxGame +import ktx.app.KtxScreen +import ktx.app.clearScreen +import ktx.assets.disposeSafely +import ktx.graphics.use +import u0012604.tictactoe.Board +import u0012604.tictactoe.GameMessage +import u0012604.tictactoe.Token + +class FirstScreen( + val game: KtxGame, + private val receiveChannel: ReceiveChannel, + private val sendChannel: SendChannel +) : KtxScreen, InputProcessor { + + private val batch = SpriteBatch() + + + private val camera = + OrthographicCamera(WIDTH, HEIGHT).apply { + position.set(Gdx.graphics.width / 2f, Gdx.graphics.height / 2f, 0f) + }; + private val viewport = FitViewport(Gdx.graphics.width.toFloat(), Gdx.graphics.height.toFloat(), camera) + + private val board = Board(viewport) + + private var touchPosition = Vector2.Zero + + private var localPlayerToken: Token? = null + + private var localPlayerTurn = false + + private val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.IO) + + init { + Gdx.input.inputProcessor = this + + initiateIncomingGameMessageHandling() + } + + override fun render(delta: Float) { + clearScreen(red = 0.7f, green = 0.7f, blue = 0.7f) + + camera.update() + + batch.use { board.draw(it) } + } + + override fun resize(width: Int, height: Int) { + viewport.update(width, height) + + board.resize(width, height) + } + + private fun initiateIncomingGameMessageHandling() { + coroutineScope.launch { + while(true) { + val gm = receiveChannel.receive() + + when(gm) { + is GameMessage.JoinGameMessage -> { + localPlayerToken = gm.token + + localPlayerTurn = localPlayerToken == Token.NOUGHT + } + + is GameMessage.PlaceTokenMessage -> { + Gdx.app.log(TAG, "The other player placed a token at: (${gm.row}, ${gm.col})") + + board.placeToken(gm.row, gm.col, gm.token) + + localPlayerTurn = true + } + + } + + Gdx.app.log(TAG, "THE MESSAGE RECEIVED IS: $gm") + + delay(10L) + } + } + } + + override fun dispose() { + batch.disposeSafely() + board.disposeSafely() + } + + override fun keyDown(keycode: Int) = true + + override fun keyUp(keycode: Int) = true + + override fun keyTyped(character: Char) = true + + override fun touchDown( + screenX: Int, + screenY: Int, + pointer: Int, + button: Int + ): Boolean { + + if(!localPlayerTurn) + return true; + + val col = ((screenX.toFloat() / Gdx.graphics.width) * 3).toInt() + val row = ((screenY.toFloat() / Gdx.graphics.height) * 3).toInt() + + localPlayerToken?.let { + if (board.placeToken(row, col, it)) { + + localPlayerTurn = false + + val gameMessage = GameMessage.PlaceTokenMessage(row, col, it) + + coroutineScope.launch { + sendChannel.send(gameMessage) + } + } + } + + Gdx.app.log(TAG, "THE ROW IS: ($row, $col)") + + touchPosition.set(screenX.toFloat(), screenY.toFloat()) + + viewport.unproject(touchPosition) + + return true + } + + override fun touchUp( + screenX: Int, + screenY: Int, + pointer: Int, + button: Int + ) = true + + override fun touchCancelled( + screenX: Int, + screenY: Int, + pointer: Int, + button: Int + ) = true + + override fun touchDragged( + screenX: Int, + screenY: Int, + pointer: Int + ) = true + + override fun mouseMoved(screenX: Int, screenY: Int) = true + + override fun scrolled(amountX: Float, amountY: Float) = true + + companion object { + val TAG = FirstScreen::class.simpleName!! + + const val WIDTH = 100f + const val HEIGHT = 16f * WIDTH / 9f + + const val NOUGHT_RADIUS = 100f + } +} diff --git a/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/screens/GameOverScreen.kt b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/screens/GameOverScreen.kt new file mode 100644 index 0000000..d9af4b4 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/core/src/main/kotlin/u0012604/tictactoe/screens/GameOverScreen.kt @@ -0,0 +1,21 @@ +package u0012604.tictactoe.screens + +import com.badlogic.gdx.graphics.g2d.BitmapFont +import com.badlogic.gdx.graphics.g2d.SpriteBatch +import ktx.app.KtxScreen +import ktx.app.clearScreen +import ktx.graphics.use + +class GameOverScreen : KtxScreen { + + private val font = BitmapFont() + private val batch = SpriteBatch() + + override fun render(delta: Float) { + clearScreen(red = 0.7f, green = 0.7f, blue = 0.7f) + + batch.use { + font.draw(it, "Game Over!", 10f, 10f) + } + } +} diff --git a/Exercises/NetworkedTicTacToe/gradle.properties b/Exercises/NetworkedTicTacToe/gradle.properties new file mode 100644 index 0000000..b6affa9 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/gradle.properties @@ -0,0 +1,28 @@ +# This doesn't need to be false, and some projects may be able to take advantage of setting daemon to true. +# We set it to false by default in order to avoid too many daemons from being created and persisting; each needs RAM. +org.gradle.daemon=false +# Sets starting memory usage to 512MB, maximum memory usage to 1GB, and tries to set as much to use Unicode as we can. +org.gradle.jvmargs=-Xms512M -Xmx1G -Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8 +# "Configure on-demand" must be false because it breaks projects that have Android modules. The default is also false. +org.gradle.configureondemand=false +# The logging level determines which messages get shown about how Gradle itself is working, such as if build.gradle +# files are fully future-proof (which they never are, because Gradle constantly deprecates working APIs). +# You can change 'quiet' below to 'lifecycle' to use Gradle's default behavior, which shows some confusing messages. +# You could instead change 'quiet' below to 'info' to see info that's important mainly while debugging build files. +# Note that if you want to use Gradle Build Scans, you should set the below logging level to 'lifecycle', otherwise +# the link to the scan won't get shown at all. +# Documented at: https://docs.gradle.org/current/userguide/command_line_interface.html#sec:command_line_logging +org.gradle.logging.level=quiet +ktxVersion=1.13.1-rc1 +kotlinVersion=2.2.21 +kotlinxCoroutinesVersion=1.8.1 +aiVersion=1.8.2 +artemisOdbVersion=2.3.0 +ashleyVersion=1.7.4 +visUiVersion=1.5.7 +android.useAndroidX=true +android.enableR8.fullMode=false +enableGraalNative=false +graalHelperVersion=2.0.1 +gdxVersion=1.14.0 +projectVersion=1.0.0 diff --git a/Exercises/NetworkedTicTacToe/gradle/gradle-daemon-jvm.properties b/Exercises/NetworkedTicTacToe/gradle/gradle-daemon-jvm.properties new file mode 100644 index 0000000..368b932 --- /dev/null +++ b/Exercises/NetworkedTicTacToe/gradle/gradle-daemon-jvm.properties @@ -0,0 +1,12 @@ +#This file is generated by updateDaemonJvm +toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/73c462e34475aeb6509ab7ba3eda218f/redirect +toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/54001d0b636ad500b432d20ef3d580d0/redirect +toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/73c462e34475aeb6509ab7ba3eda218f/redirect +toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/54001d0b636ad500b432d20ef3d580d0/redirect +toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/29c55e6bad8a0049163f0184625cecd9/redirect +toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/3ac7a5361c25c0b23d933f44bdb0abd9/redirect +toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/73c462e34475aeb6509ab7ba3eda218f/redirect +toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/54001d0b636ad500b432d20ef3d580d0/redirect +toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/28937bb8a7f83f57de92429a9a11c04e/redirect +toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/52fa104f4f641439587f75dd68b31bc2/redirect +toolchainVersion=17 diff --git a/Exercises/NetworkedTicTacToe/gradle/wrapper/gradle-wrapper.jar b/Exercises/NetworkedTicTacToe/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..d1fa32c2fc424d296937ab217a3d49c3329afc4a30cc2c9f59bc3a0f88ecf43b GIT binary patch literal 43739 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 z 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/Exercises/NetworkedTicTacToe/gradlew.bat b/Exercises/NetworkedTicTacToe/gradlew.bat new file mode 100644 index 0000000..57f73cc --- /dev/null +++ b/Exercises/NetworkedTicTacToe/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/Exercises/NetworkedTicTacToe/lwjgl3/build.gradle b/Exercises/NetworkedTicTacToe/lwjgl3/build.gradle new file mode 100644 index 0000000..c3f387c --- /dev/null +++ b/Exercises/NetworkedTicTacToe/lwjgl3/build.gradle @@ -0,0 +1,185 @@ + +buildscript { + repositories { + gradlePluginPortal() + } + dependencies { + classpath "io.github.fourlastor:construo:2.1.0" + if(enableGraalNative == 'true') { + classpath "org.graalvm.buildtools.native:org.graalvm.buildtools.native.gradle.plugin:0.9.28" + } + } +} +plugins { + id "application" +} +apply plugin: 'io.github.fourlastor.construo' +apply plugin: 'org.jetbrains.kotlin.jvm' + + +import io.github.fourlastor.construo.Target + +sourceSets.main.resources.srcDirs += [ rootProject.file('assets').path ] +application.mainClass = 'u0012604.tictactoe.lwjgl3.Lwjgl3Launcher' +eclipse.project.name = appName + '-lwjgl3' +java.sourceCompatibility = 8 +java.targetCompatibility = 8 +if (JavaVersion.current().isJava9Compatible()) { + compileJava.options.release.set(8) +} +kotlin.compilerOptions.jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8) + +dependencies { + implementation "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion" + implementation "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop" + implementation "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop" + implementation "com.badlogicgames.gdx:gdx-lwjgl3-angle:$gdxVersion" + implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" + implementation project(':core') + + if(enableGraalNative == 'true') { + implementation "io.github.berstanio:gdx-svmhelper-backend-lwjgl3:$graalHelperVersion" + implementation "io.github.berstanio:gdx-svmhelper-extension-freetype:$graalHelperVersion" + + } +} + +def os = System.properties['os.name'].toLowerCase(Locale.ROOT) + +run { + workingDir = rootProject.file('assets').path +// You can uncomment the next line if your IDE claims a build failure even when the app closed properly. + //setIgnoreExitValue(true) + + if (os.contains('mac')) jvmArgs += "-XstartOnFirstThread" +} + +jar { +// sets the name of the .jar file this produces to the name of the game or app, with the version after. + archiveFileName.set("${appName}-${projectVersion}.jar") +// the duplicatesStrategy matters starting in Gradle 7.0; this setting works. + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + dependsOn configurations.runtimeClasspath + from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } +// these "exclude" lines remove some unnecessary duplicate files in the output JAR. + exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA') + dependencies { + exclude('META-INF/INDEX.LIST', 'META-INF/maven/**') + } +// setting the manifest makes the JAR runnable. +// enabling native access helps avoid a warning when Java 24 or later runs the JAR. + manifest { + attributes 'Main-Class': application.mainClass, 'Enable-Native-Access': 'ALL-UNNAMED' + } +// this last step may help on some OSes that need extra instruction to make runnable JARs. + doLast { + file(archiveFile).setExecutable(true, false) + } +} + +// Builds a JAR that only includes the files needed to run on macOS, not Windows or Linux. +// The file size for a Mac-only JAR is about 7MB smaller than a cross-platform JAR. +tasks.register("jarMac") { + dependsOn("jar") + group("build") + jar.archiveFileName.set("${appName}-${projectVersion}-mac.jar") + jar.exclude("windows/x86/**", "windows/x64/**", "linux/arm32/**", "linux/arm64/**", "linux/x64/**", "**/*.dll", "**/*.so", + 'META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA') + dependencies { + jar.exclude("windows/x86/**", "windows/x64/**", "linux/arm32/**", "linux/arm64/**", "linux/x64/**", + 'META-INF/INDEX.LIST', 'META-INF/maven/**') + } +} + +// Builds a JAR that only includes the files needed to run on Linux, not Windows or macOS. +// The file size for a Linux-only JAR is about 5MB smaller than a cross-platform JAR. +tasks.register("jarLinux") { + dependsOn("jar") + group("build") + jar.archiveFileName.set("${appName}-${projectVersion}-linux.jar") + jar.exclude("windows/x86/**", "windows/x64/**", "macos/arm64/**", "macos/x64/**", "**/*.dll", "**/*.dylib", + 'META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA') + dependencies { + jar.exclude("windows/x86/**", "windows/x64/**", "macos/arm64/**", "macos/x64/**", + 'META-INF/INDEX.LIST', 'META-INF/maven/**') + } +} + +// Builds a JAR that only includes the files needed to run on Windows, not Linux or macOS. +// The file size for a Windows-only JAR is about 6MB smaller than a cross-platform JAR. +tasks.register("jarWin") { + dependsOn("jar") + group("build") + jar.archiveFileName.set("${appName}-${projectVersion}-win.jar") + jar.exclude("macos/arm64/**", "macos/x64/**", "linux/arm32/**", "linux/arm64/**", "linux/x64/**", "**/*.dylib", "**/*.so", + 'META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA') + dependencies { + jar.exclude("macos/arm64/**", "macos/x64/**", "linux/arm32/**", "linux/arm64/**", "linux/x64/**", + 'META-INF/INDEX.LIST', 'META-INF/maven/**') + } +} + +construo { + // name of the executable + name.set(appName) + // human-readable name, used for example in the `.app` name for macOS + humanName.set(appName) + + targets.configure { + register("linuxX64", Target.Linux) { + architecture.set(Target.Architecture.X86_64) + jdkUrl.set("https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.15%2B6/OpenJDK17U-jdk_x64_linux_hotspot_17.0.15_6.tar.gz") + // Linux does not currently have a way to set the icon on the executable + } + register("macM1", Target.MacOs) { + architecture.set(Target.Architecture.AARCH64) + jdkUrl.set("https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.15%2B6/OpenJDK17U-jdk_aarch64_mac_hotspot_17.0.15_6.tar.gz") + // macOS needs an identifier + identifier.set("u0012604.tictactoe." + appName) + // Optional: icon for macOS, as an ICNS file + macIcon.set(project.file("icons/logo.icns")) + } + register("macX64", Target.MacOs) { + architecture.set(Target.Architecture.X86_64) + jdkUrl.set("https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.15%2B6/OpenJDK17U-jdk_x64_mac_hotspot_17.0.15_6.tar.gz") + // macOS needs an identifier + identifier.set("u0012604.tictactoe." + appName) + // Optional: icon for macOS, as an ICNS file + macIcon.set(project.file("icons/logo.icns")) + } + register("winX64", Target.Windows) { + architecture.set(Target.Architecture.X86_64) + // Optional: icon for Windows, as a PNG + icon.set(project.file("icons/logo.png")) + jdkUrl.set("https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.15%2B6/OpenJDK17U-jdk_x64_windows_hotspot_17.0.15_6.zip") + // Uncomment the next line to show a console when the game runs, to print messages. + //useConsole.set(true) + } + } +} + +// Equivalent to the jar task; here for compatibility with gdx-setup. +tasks.register('dist') { + dependsOn 'jar' +} + +distributions { + main { + contents { + into('libs') { + project.configurations.runtimeClasspath.files.findAll { file -> + file.getName() != project.tasks.jar.outputs.files.singleFile.name + }.each { file -> + exclude file.name + } + } + } + } +} + +startScripts.dependsOn(':lwjgl3:jar') +startScripts.classpath = project.tasks.jar.outputs.files + +if(enableGraalNative == 'true') { + apply from: file("nativeimage.gradle") +} diff --git a/Exercises/NetworkedTicTacToe/lwjgl3/icons/logo.icns b/Exercises/NetworkedTicTacToe/lwjgl3/icons/logo.icns new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..466410d16b616b92b3741a989bac7088b2e941bf7d2c3938cc66e145afd77d79 GIT binary patch literal 201876 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