diff --git a/.gitignore b/.gitignore index 0bb5319..75678ab 100644 --- a/.gitignore +++ b/.gitignore @@ -68,7 +68,7 @@ playground.xcworkspace Carthage/Build/ # Accio dependency management -Dependencies/ +#Dependencies/ .accio/ # fastlane diff --git a/DouShouQi_App/DouShouQi_App/Assets/Musique/Musique.xcassets/ScreenTitleMusique.dataset/ytmp3free.cc_1-a-o-t-2-main-theme-attack-on-titan-2-soundtrack-youtubemp3free.org.mp3 b/Assets/TitleScreenMusic.mp3 similarity index 100% rename from DouShouQi_App/DouShouQi_App/Assets/Musique/Musique.xcassets/ScreenTitleMusique.dataset/ytmp3free.cc_1-a-o-t-2-main-theme-attack-on-titan-2-soundtrack-youtubemp3free.org.mp3 rename to Assets/TitleScreenMusic.mp3 diff --git a/Assets/Vs_Red.png b/Assets/Vs_Red.png new file mode 100644 index 0000000..bf6d094 Binary files /dev/null and b/Assets/Vs_Red.png differ diff --git a/Assets/board.svg b/Assets/board.svg index b91c80d..b2e1c27 100644 --- a/Assets/board.svg +++ b/Assets/board.svg @@ -1,1931 +1,1148 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + board-svg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiLion.imageset/doushouqi-lion 1.png b/Assets/doushouqi-semilion.png similarity index 100% rename from DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiLion.imageset/doushouqi-lion 1.png rename to Assets/doushouqi-semilion.png diff --git a/Assets/doushouqi-semilion.svg b/Assets/doushouqi-semilion.svg new file mode 100644 index 0000000..a1a7aa2 --- /dev/null +++ b/Assets/doushouqi-semilion.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DouShouQi_App/Assets/title-background.png b/Assets/title-background.png similarity index 100% rename from DouShouQi_App/Assets/title-background.png rename to Assets/title-background.png diff --git a/Dependencies/DSQ.xcframework/Info.plist b/Dependencies/DSQ.xcframework/Info.plist new file mode 100644 index 0000000..6cefe51 --- /dev/null +++ b/Dependencies/DSQ.xcframework/Info.plist @@ -0,0 +1,65 @@ + + + + + AvailableLibraries + + + BinaryPath + DouShouQiModel.framework/DouShouQiModel + DebugSymbolsPath + dSYMs + LibraryIdentifier + ios-arm64 + LibraryPath + DouShouQiModel.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + BinaryPath + DouShouQiModel.framework/DouShouQiModel + DebugSymbolsPath + dSYMs + LibraryIdentifier + ios-arm64_x86_64-simulator + LibraryPath + DouShouQiModel.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + BinaryPath + DouShouQiModel.framework/Versions/A/DouShouQiModel + DebugSymbolsPath + dSYMs + LibraryIdentifier + macos-arm64_x86_64 + LibraryPath + DouShouQiModel.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + macos + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/DouShouQiModel b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/DouShouQiModel new file mode 100755 index 0000000..47dbe4c Binary files /dev/null and b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/DouShouQiModel differ diff --git a/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Headers/DouShouQiModel-Swift.h b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Headers/DouShouQiModel-Swift.h new file mode 100644 index 0000000..d7b3274 --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Headers/DouShouQiModel-Swift.h @@ -0,0 +1,311 @@ +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +#ifndef DOUSHOUQIMODEL_SWIFT_H +#define DOUSHOUQIMODEL_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#if defined(__arm64e__) && __has_include() +# include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# ifndef __ptrauth_swift_value_witness_function_pointer +# define __ptrauth_swift_value_witness_function_pointer(x) +# endif +# ifndef __ptrauth_swift_class_method_pointer +# define __ptrauth_swift_class_method_pointer(x) +# endif +#pragma clang diagnostic pop +#endif +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +# if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# else +# define SWIFT_RUNTIME_NAME(X) +# endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +# if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# else +# define SWIFT_COMPILE_NAME(X) +# endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +# if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# else +# define SWIFT_METHOD_FAMILY(X) +# endif +#endif +#if !defined(SWIFT_NOESCAPE) +# if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +# else +# define SWIFT_NOESCAPE +# endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +# if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# else +# define SWIFT_RELEASES_ARGUMENT +# endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +# if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# else +# define SWIFT_WARN_UNUSED_RESULT +# endif +#endif +#if !defined(SWIFT_NORETURN) +# if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +# else +# define SWIFT_NORETURN +# endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +# if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +# define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +# define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +# define SWIFT_NOEXCEPT noexcept +#else +# define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +# if __has_attribute(always_inline) +# if __has_attribute(nodebug) +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug)) +# else +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +# endif +# else +# define SWIFT_C_INLINE_THUNK inline +# endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="DouShouQiModel",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#else +#error unsupported Swift architecture +#endif diff --git a/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Headers/DouShouQiModel.h b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Headers/DouShouQiModel.h new file mode 100644 index 0000000..5bbf06a --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Headers/DouShouQiModel.h @@ -0,0 +1,18 @@ +// +// DouShouQiModel.h +// DouShouQiModel +// +// Created by Marc Chevaldonné on 14/05/2024. +// + +#import + +//! Project version number for DouShouQiModel. +FOUNDATION_EXPORT double DouShouQiModelVersionNumber; + +//! Project version string for DouShouQiModel. +FOUNDATION_EXPORT const unsigned char DouShouQiModelVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Info.plist b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Info.plist new file mode 100644 index 0000000..e83fb5f Binary files /dev/null and b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Info.plist differ diff --git a/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.abi.json b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.abi.json new file mode 100644 index 0000000..c28e9fd --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.abi.json @@ -0,0 +1,8546 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "TopLevel", + "printedName": "TopLevel", + "children": [ + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Result", + "printedName": "Result", + "children": [ + { + "kind": "Var", + "name": "notFinished", + "printedName": "notFinished", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO11notFinishedyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO11notFinishedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "even", + "printedName": "even", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO4evenyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO4evenyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "winner", + "printedName": "winner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> (DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "mangledName": "$s14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6ResultO", + "mangledName": "$s14DouShouQiModel6ResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "WinningReason", + "printedName": "WinningReason", + "children": [ + { + "kind": "Var", + "name": "denReached", + "printedName": "denReached", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMorePieces", + "printedName": "noMorePieces", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tooManyOccurences", + "printedName": "tooManyOccurences", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMovesLeft", + "printedName": "noMovesLeft", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel13WinningReasonO", + "mangledName": "$s14DouShouQiModel13WinningReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "BoardResult", + "printedName": "BoardResult", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel11BoardResultO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "ok", + "printedName": "ok", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "failed", + "printedName": "failed", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(reason: DouShouQiModel.BoardFailingReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel11BoardResultO", + "mangledName": "$s14DouShouQiModel11BoardResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "BoardFailingReason", + "printedName": "BoardFailingReason", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "outOfBounds", + "printedName": "outOfBounds", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellNotEmpty", + "printedName": "cellNotEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellEmpty", + "printedName": "cellEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel18BoardFailingReasonO", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "HumanPlayer", + "printedName": "HumanPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:andInputMethod:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "changeInput", + "printedName": "changeInput(input:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel11HumanPlayerC", + "mangledName": "$s14DouShouQiModel11HumanPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "ClassicRules", + "printedName": "ClassicRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesVACycfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel12ClassicRulesV", + "mangledName": "$s14DouShouQiModel12ClassicRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Cell", + "printedName": "Cell", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "cellType", + "printedName": "cellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "initialOwner", + "printedName": "initialOwner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "piece", + "printedName": "piece", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(ofType:ownedBy:withPiece:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "hasDefaultArg": true, + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "mangledName": "$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4CellV", + "mangledName": "$s14DouShouQiModel4CellV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "VerySimpleRules", + "printedName": "VerySimpleRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesVACycfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel15VerySimpleRulesV", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Rules", + "printedName": "Rules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "mangledName": "$s14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "mangledName": "$s14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "mangledName": "$s14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "mangledName": "$s14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "Mutating" + ], + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Protocol", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Player", + "printedName": "Player", + "children": [ + { + "kind": "Var", + "name": "name", + "printedName": "name", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvp", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvg", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "id", + "printedName": "id", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayedCallbacksListener", + "printedName": "addPlayedCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "mangledName": "$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "notifyPlayed", + "printedName": "notifyPlayed(withMove:andPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel6PlayerC", + "mangledName": "$s14DouShouQiModel6PlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "GameError", + "printedName": "GameError", + "children": [ + { + "kind": "Var", + "name": "invalidMove", + "printedName": "invalidMove", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "nextPlayerError", + "printedName": "nextPlayerError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badPlayerId", + "printedName": "badPlayerId", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> (Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(message: Swift.String)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidRules", + "printedName": "invalidRules", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidPlayer", + "printedName": "invalidPlayer", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidGame", + "printedName": "invalidGame", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidBoard", + "printedName": "invalidBoard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "moduleName": "DouShouQiModel" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel9GameErrorO", + "mangledName": "$s14DouShouQiModel9GameErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "RandomPlayer", + "printedName": "RandomPlayer", + "children": [ + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.RandomPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "RandomPlayer", + "printedName": "DouShouQiModel.RandomPlayer", + "usr": "s:14DouShouQiModel12RandomPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel12RandomPlayerC", + "mangledName": "$s14DouShouQiModel12RandomPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel8IAPlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.IAPlayer", + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "CellType", + "printedName": "CellType", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "jungle", + "printedName": "jungle", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO6jungleyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO6jungleyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "water", + "printedName": "water", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO5wateryA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO5wateryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "trap", + "printedName": "trap", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO4trapyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO4trapyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "den", + "printedName": "den", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO3denyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO3denyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "allCases", + "printedName": "allCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivp", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivg", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel8CellTypeO", + "mangledName": "$s14DouShouQiModel8CellTypeO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CaseIterable", + "printedName": "CaseIterable", + "children": [ + { + "kind": "TypeWitness", + "name": "AllCases", + "printedName": "AllCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ] + } + ], + "usr": "s:s12CaseIterableP", + "mangledName": "$ss12CaseIterableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Board", + "printedName": "Board", + "children": [ + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "nbRows", + "printedName": "nbRows", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivp", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivg", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "nbColumns", + "printedName": "nbColumns", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivp", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivg", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "grid", + "printedName": "grid", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withGrid:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Board?", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "mangledName": "$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces(of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "mangledName": "$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces()", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "mangledName": "$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "insert", + "printedName": "insert(piece:atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "mangledName": "$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "removePiece", + "printedName": "removePiece(atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "mangledName": "$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5BoardV", + "mangledName": "$s14DouShouQiModel5BoardV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Piece", + "printedName": "Piece", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "animal", + "printedName": "animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withOwner:andAnimal:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "mangledName": "$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5PieceV", + "mangledName": "$s14DouShouQiModel5PieceV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "InvalidBoardError", + "printedName": "InvalidBoardError", + "children": [ + { + "kind": "Var", + "name": "unknownError", + "printedName": "unknownError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badDimensions", + "printedName": "badDimensions", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbRows: Swift.Int, nbColumns: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badCellType", + "printedName": "badCellType", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "multipleOccurenceOfSamePiece", + "printedName": "multipleOccurenceOfSamePiece", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceWithNoOwner", + "printedName": "pieceWithNoOwner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceNotAllowedOnThisCell", + "printedName": "pieceNotAllowedOnThisCell", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Owner", + "printedName": "Owner", + "children": [ + { + "kind": "Var", + "name": "noOne", + "printedName": "noOne", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO5noOneyA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO5noOneyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player1", + "printedName": "player1", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player1yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player1yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player2", + "printedName": "player2", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player2yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player2yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "simpleDescription", + "printedName": "simpleDescription", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivp", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivg", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel5OwnerO", + "mangledName": "$s14DouShouQiModel5OwnerO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "IAPlayer", + "printedName": "IAPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.IAPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "IAPlayer", + "printedName": "DouShouQiModel.IAPlayer", + "usr": "s:14DouShouQiModel8IAPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel8IAPlayerC", + "mangledName": "$s14DouShouQiModel8IAPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Move", + "printedName": "Move", + "children": [ + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowOrigin", + "printedName": "rowOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnOrigin", + "printedName": "columnOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowDestination", + "printedName": "rowDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnDestination", + "printedName": "columnDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(of:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "mangledName": "$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4MoveV", + "mangledName": "$s14DouShouQiModel4MoveV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Animal", + "printedName": "Animal", + "children": [ + { + "kind": "Var", + "name": "rat", + "printedName": "rat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3ratyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3ratyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cat", + "printedName": "cat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3catyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3catyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "dog", + "printedName": "dog", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3dogyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3dogyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "wolf", + "printedName": "wolf", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4wolfyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4wolfyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "leopard", + "printedName": "leopard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO7leopardyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO7leopardyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tiger", + "printedName": "tiger", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO5tigeryA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO5tigeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "lion", + "printedName": "lion", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4lionyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4lionyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "elephant", + "printedName": "elephant", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO8elephantyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO8elephantyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivp", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivg", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Animal?", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "moduleName": "DouShouQiModel", + "implicit": true, + "init_kind": "Designated" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6AnimalO", + "mangledName": "$s14DouShouQiModel6AnimalO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "enumRawTypeName": "Int", + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", + "children": [ + { + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "usr": "s:SY", + "mangledName": "$sSY" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Game", + "printedName": "Game", + "children": [ + { + "kind": "Var", + "name": "board", + "printedName": "board", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvp", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvg", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rules", + "printedName": "rules", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "players", + "printedName": "players", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withBoard:andRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "addGameStartedListener", + "printedName": "addGameStartedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "mangledName": "$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayerNotifiedListener", + "printedName": "addPlayerNotifiedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "mangledName": "$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameChangedListener", + "printedName": "addGameChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Game) async -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "mangledName": "$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameOverListener", + "printedName": "addGameOverListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "mangledName": "$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addMoveChosenCallbacksListener", + "printedName": "addMoveChosenCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "mangledName": "$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addInvalidMoveCallbacksListener", + "printedName": "addInvalidMoveCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "mangledName": "$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addBoardChangedListener", + "printedName": "addBoardChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "mangledName": "$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPieceRemovedListener", + "printedName": "addPieceRemovedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "mangledName": "$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "onPlayed", + "printedName": "onPlayed(with:from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "mangledName": "$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "isOver", + "printedName": "isOver", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC6isOverSbvp", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC6isOverSbvg", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "start", + "printedName": "start()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC5startyyYaKF", + "mangledName": "$s14DouShouQiModel4GameC5startyyYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel4GameC", + "mangledName": "$s14DouShouQiModel4GameC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ] + } + ], + "json_format_version": 8 + }, + "ConstValues": [ + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 81, + "length": 1, + "value": "9" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 111, + "length": 1, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 148, + "length": 1, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3048, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3088, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 3941, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 4285, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 4475, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4517, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4565, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 4967, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 6169, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6189, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6229, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 9685, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10586, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10906, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 11170, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11188, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11280, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11325, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11433, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11477, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11569, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11632, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11740, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 12266, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12307, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12319, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12326, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12703, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12714, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12721, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13086, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13464, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15597, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15704, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15728, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15845, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15869, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16049, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16149, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16584, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 16948, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 17004, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 81, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 147, + "length": 4, + "value": "\"ø\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 152, + "length": 2, + "value": "\" on \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 167, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 202, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 89, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 119, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2067, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2107, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2267, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2277, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2419, + "length": 1, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2429, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2964, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3004, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 3773, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3793, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3833, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4182, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4292, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4531, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4639, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4773, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4782, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4800, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4809, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4925, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 5013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 6962, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7077, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7105, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7230, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7258, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7350, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Dictionary", + "offset": 8072, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 8128, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Player.swift", + "kind": "Array", + "offset": 418, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "BooleanLiteral", + "offset": 475, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 570, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 694, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 981, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 996, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1015, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1049, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1212, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1278, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1548, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1979, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 2010, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 40, + "value": "\"[\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 150, + "length": 1, + "value": "\":\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 160, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 183, + "length": 3, + "value": "\"x\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 229, + "length": 3, + "value": "\"1\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 275, + "length": 3, + "value": "\"2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 616, + "length": 87, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 625, + "length": 1, + "value": "\": [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 640, + "length": 1, + "value": "\",\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 656, + "length": 1, + "value": "\"] -> [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 679, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 701, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 513, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 1483, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 1754, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2090, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2582, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3012, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3416, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3827, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4261, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4580, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 6361, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 7044, + "length": 5, + "value": "false" + } + ] +} \ No newline at end of file diff --git a/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.private.swiftinterface b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.private.swiftinterface new file mode 100644 index 0000000..a95eaf4 --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.private.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target arm64-apple-ios16.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftdoc b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftdoc new file mode 100644 index 0000000..b732cc2 Binary files /dev/null and b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftdoc differ diff --git a/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftinterface b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftinterface new file mode 100644 index 0000000..a95eaf4 --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target arm64-apple-ios16.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/module.modulemap b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/module.modulemap new file mode 100644 index 0000000..e7aa10a --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/module.modulemap @@ -0,0 +1,11 @@ +framework module DouShouQiModel { + umbrella header "DouShouQiModel.h" + export * + + module * { export * } +} + +module DouShouQiModel.Swift { + header "DouShouQiModel-Swift.h" + requires objc +} diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/DouShouQiModel b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/DouShouQiModel new file mode 100755 index 0000000..25b6b09 Binary files /dev/null and b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/DouShouQiModel differ diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Headers/DouShouQiModel-Swift.h b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Headers/DouShouQiModel-Swift.h new file mode 100644 index 0000000..5e14e79 --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Headers/DouShouQiModel-Swift.h @@ -0,0 +1,618 @@ +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +#ifndef DOUSHOUQIMODEL_SWIFT_H +#define DOUSHOUQIMODEL_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#if defined(__arm64e__) && __has_include() +# include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# ifndef __ptrauth_swift_value_witness_function_pointer +# define __ptrauth_swift_value_witness_function_pointer(x) +# endif +# ifndef __ptrauth_swift_class_method_pointer +# define __ptrauth_swift_class_method_pointer(x) +# endif +#pragma clang diagnostic pop +#endif +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +# if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# else +# define SWIFT_RUNTIME_NAME(X) +# endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +# if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# else +# define SWIFT_COMPILE_NAME(X) +# endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +# if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# else +# define SWIFT_METHOD_FAMILY(X) +# endif +#endif +#if !defined(SWIFT_NOESCAPE) +# if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +# else +# define SWIFT_NOESCAPE +# endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +# if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# else +# define SWIFT_RELEASES_ARGUMENT +# endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +# if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# else +# define SWIFT_WARN_UNUSED_RESULT +# endif +#endif +#if !defined(SWIFT_NORETURN) +# if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +# else +# define SWIFT_NORETURN +# endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +# if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +# define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +# define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +# define SWIFT_NOEXCEPT noexcept +#else +# define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +# if __has_attribute(always_inline) +# if __has_attribute(nodebug) +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug)) +# else +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +# endif +# else +# define SWIFT_C_INLINE_THUNK inline +# endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="DouShouQiModel",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +#ifndef DOUSHOUQIMODEL_SWIFT_H +#define DOUSHOUQIMODEL_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#if defined(__arm64e__) && __has_include() +# include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# ifndef __ptrauth_swift_value_witness_function_pointer +# define __ptrauth_swift_value_witness_function_pointer(x) +# endif +# ifndef __ptrauth_swift_class_method_pointer +# define __ptrauth_swift_class_method_pointer(x) +# endif +#pragma clang diagnostic pop +#endif +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +# if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# else +# define SWIFT_RUNTIME_NAME(X) +# endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +# if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# else +# define SWIFT_COMPILE_NAME(X) +# endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +# if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# else +# define SWIFT_METHOD_FAMILY(X) +# endif +#endif +#if !defined(SWIFT_NOESCAPE) +# if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +# else +# define SWIFT_NOESCAPE +# endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +# if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# else +# define SWIFT_RELEASES_ARGUMENT +# endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +# if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# else +# define SWIFT_WARN_UNUSED_RESULT +# endif +#endif +#if !defined(SWIFT_NORETURN) +# if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +# else +# define SWIFT_NORETURN +# endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +# if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +# define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +# define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +# define SWIFT_NOEXCEPT noexcept +#else +# define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +# if __has_attribute(always_inline) +# if __has_attribute(nodebug) +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug)) +# else +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +# endif +# else +# define SWIFT_C_INLINE_THUNK inline +# endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="DouShouQiModel",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#else +#error unsupported Swift architecture +#endif diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Headers/DouShouQiModel.h b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Headers/DouShouQiModel.h new file mode 100644 index 0000000..5bbf06a --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Headers/DouShouQiModel.h @@ -0,0 +1,18 @@ +// +// DouShouQiModel.h +// DouShouQiModel +// +// Created by Marc Chevaldonné on 14/05/2024. +// + +#import + +//! Project version number for DouShouQiModel. +FOUNDATION_EXPORT double DouShouQiModelVersionNumber; + +//! Project version string for DouShouQiModel. +FOUNDATION_EXPORT const unsigned char DouShouQiModelVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Info.plist b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Info.plist new file mode 100644 index 0000000..33fe547 Binary files /dev/null and b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Info.plist differ diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json new file mode 100644 index 0000000..c28e9fd --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json @@ -0,0 +1,8546 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "TopLevel", + "printedName": "TopLevel", + "children": [ + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Result", + "printedName": "Result", + "children": [ + { + "kind": "Var", + "name": "notFinished", + "printedName": "notFinished", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO11notFinishedyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO11notFinishedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "even", + "printedName": "even", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO4evenyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO4evenyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "winner", + "printedName": "winner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> (DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "mangledName": "$s14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6ResultO", + "mangledName": "$s14DouShouQiModel6ResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "WinningReason", + "printedName": "WinningReason", + "children": [ + { + "kind": "Var", + "name": "denReached", + "printedName": "denReached", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMorePieces", + "printedName": "noMorePieces", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tooManyOccurences", + "printedName": "tooManyOccurences", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMovesLeft", + "printedName": "noMovesLeft", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel13WinningReasonO", + "mangledName": "$s14DouShouQiModel13WinningReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "BoardResult", + "printedName": "BoardResult", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel11BoardResultO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "ok", + "printedName": "ok", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "failed", + "printedName": "failed", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(reason: DouShouQiModel.BoardFailingReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel11BoardResultO", + "mangledName": "$s14DouShouQiModel11BoardResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "BoardFailingReason", + "printedName": "BoardFailingReason", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "outOfBounds", + "printedName": "outOfBounds", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellNotEmpty", + "printedName": "cellNotEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellEmpty", + "printedName": "cellEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel18BoardFailingReasonO", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "HumanPlayer", + "printedName": "HumanPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:andInputMethod:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "changeInput", + "printedName": "changeInput(input:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel11HumanPlayerC", + "mangledName": "$s14DouShouQiModel11HumanPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "ClassicRules", + "printedName": "ClassicRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesVACycfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel12ClassicRulesV", + "mangledName": "$s14DouShouQiModel12ClassicRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Cell", + "printedName": "Cell", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "cellType", + "printedName": "cellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "initialOwner", + "printedName": "initialOwner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "piece", + "printedName": "piece", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(ofType:ownedBy:withPiece:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "hasDefaultArg": true, + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "mangledName": "$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4CellV", + "mangledName": "$s14DouShouQiModel4CellV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "VerySimpleRules", + "printedName": "VerySimpleRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesVACycfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel15VerySimpleRulesV", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Rules", + "printedName": "Rules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "mangledName": "$s14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "mangledName": "$s14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "mangledName": "$s14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "mangledName": "$s14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "Mutating" + ], + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Protocol", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Player", + "printedName": "Player", + "children": [ + { + "kind": "Var", + "name": "name", + "printedName": "name", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvp", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvg", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "id", + "printedName": "id", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayedCallbacksListener", + "printedName": "addPlayedCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "mangledName": "$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "notifyPlayed", + "printedName": "notifyPlayed(withMove:andPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel6PlayerC", + "mangledName": "$s14DouShouQiModel6PlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "GameError", + "printedName": "GameError", + "children": [ + { + "kind": "Var", + "name": "invalidMove", + "printedName": "invalidMove", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "nextPlayerError", + "printedName": "nextPlayerError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badPlayerId", + "printedName": "badPlayerId", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> (Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(message: Swift.String)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidRules", + "printedName": "invalidRules", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidPlayer", + "printedName": "invalidPlayer", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidGame", + "printedName": "invalidGame", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidBoard", + "printedName": "invalidBoard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "moduleName": "DouShouQiModel" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel9GameErrorO", + "mangledName": "$s14DouShouQiModel9GameErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "RandomPlayer", + "printedName": "RandomPlayer", + "children": [ + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.RandomPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "RandomPlayer", + "printedName": "DouShouQiModel.RandomPlayer", + "usr": "s:14DouShouQiModel12RandomPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel12RandomPlayerC", + "mangledName": "$s14DouShouQiModel12RandomPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel8IAPlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.IAPlayer", + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "CellType", + "printedName": "CellType", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "jungle", + "printedName": "jungle", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO6jungleyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO6jungleyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "water", + "printedName": "water", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO5wateryA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO5wateryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "trap", + "printedName": "trap", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO4trapyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO4trapyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "den", + "printedName": "den", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO3denyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO3denyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "allCases", + "printedName": "allCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivp", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivg", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel8CellTypeO", + "mangledName": "$s14DouShouQiModel8CellTypeO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CaseIterable", + "printedName": "CaseIterable", + "children": [ + { + "kind": "TypeWitness", + "name": "AllCases", + "printedName": "AllCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ] + } + ], + "usr": "s:s12CaseIterableP", + "mangledName": "$ss12CaseIterableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Board", + "printedName": "Board", + "children": [ + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "nbRows", + "printedName": "nbRows", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivp", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivg", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "nbColumns", + "printedName": "nbColumns", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivp", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivg", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "grid", + "printedName": "grid", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withGrid:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Board?", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "mangledName": "$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces(of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "mangledName": "$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces()", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "mangledName": "$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "insert", + "printedName": "insert(piece:atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "mangledName": "$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "removePiece", + "printedName": "removePiece(atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "mangledName": "$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5BoardV", + "mangledName": "$s14DouShouQiModel5BoardV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Piece", + "printedName": "Piece", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "animal", + "printedName": "animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withOwner:andAnimal:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "mangledName": "$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5PieceV", + "mangledName": "$s14DouShouQiModel5PieceV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "InvalidBoardError", + "printedName": "InvalidBoardError", + "children": [ + { + "kind": "Var", + "name": "unknownError", + "printedName": "unknownError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badDimensions", + "printedName": "badDimensions", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbRows: Swift.Int, nbColumns: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badCellType", + "printedName": "badCellType", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "multipleOccurenceOfSamePiece", + "printedName": "multipleOccurenceOfSamePiece", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceWithNoOwner", + "printedName": "pieceWithNoOwner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceNotAllowedOnThisCell", + "printedName": "pieceNotAllowedOnThisCell", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Owner", + "printedName": "Owner", + "children": [ + { + "kind": "Var", + "name": "noOne", + "printedName": "noOne", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO5noOneyA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO5noOneyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player1", + "printedName": "player1", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player1yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player1yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player2", + "printedName": "player2", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player2yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player2yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "simpleDescription", + "printedName": "simpleDescription", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivp", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivg", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel5OwnerO", + "mangledName": "$s14DouShouQiModel5OwnerO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "IAPlayer", + "printedName": "IAPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.IAPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "IAPlayer", + "printedName": "DouShouQiModel.IAPlayer", + "usr": "s:14DouShouQiModel8IAPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel8IAPlayerC", + "mangledName": "$s14DouShouQiModel8IAPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Move", + "printedName": "Move", + "children": [ + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowOrigin", + "printedName": "rowOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnOrigin", + "printedName": "columnOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowDestination", + "printedName": "rowDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnDestination", + "printedName": "columnDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(of:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "mangledName": "$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4MoveV", + "mangledName": "$s14DouShouQiModel4MoveV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Animal", + "printedName": "Animal", + "children": [ + { + "kind": "Var", + "name": "rat", + "printedName": "rat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3ratyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3ratyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cat", + "printedName": "cat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3catyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3catyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "dog", + "printedName": "dog", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3dogyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3dogyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "wolf", + "printedName": "wolf", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4wolfyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4wolfyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "leopard", + "printedName": "leopard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO7leopardyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO7leopardyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tiger", + "printedName": "tiger", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO5tigeryA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO5tigeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "lion", + "printedName": "lion", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4lionyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4lionyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "elephant", + "printedName": "elephant", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO8elephantyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO8elephantyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivp", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivg", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Animal?", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "moduleName": "DouShouQiModel", + "implicit": true, + "init_kind": "Designated" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6AnimalO", + "mangledName": "$s14DouShouQiModel6AnimalO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "enumRawTypeName": "Int", + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", + "children": [ + { + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "usr": "s:SY", + "mangledName": "$sSY" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Game", + "printedName": "Game", + "children": [ + { + "kind": "Var", + "name": "board", + "printedName": "board", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvp", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvg", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rules", + "printedName": "rules", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "players", + "printedName": "players", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withBoard:andRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "addGameStartedListener", + "printedName": "addGameStartedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "mangledName": "$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayerNotifiedListener", + "printedName": "addPlayerNotifiedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "mangledName": "$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameChangedListener", + "printedName": "addGameChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Game) async -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "mangledName": "$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameOverListener", + "printedName": "addGameOverListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "mangledName": "$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addMoveChosenCallbacksListener", + "printedName": "addMoveChosenCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "mangledName": "$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addInvalidMoveCallbacksListener", + "printedName": "addInvalidMoveCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "mangledName": "$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addBoardChangedListener", + "printedName": "addBoardChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "mangledName": "$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPieceRemovedListener", + "printedName": "addPieceRemovedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "mangledName": "$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "onPlayed", + "printedName": "onPlayed(with:from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "mangledName": "$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "isOver", + "printedName": "isOver", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC6isOverSbvp", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC6isOverSbvg", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "start", + "printedName": "start()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC5startyyYaKF", + "mangledName": "$s14DouShouQiModel4GameC5startyyYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel4GameC", + "mangledName": "$s14DouShouQiModel4GameC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ] + } + ], + "json_format_version": 8 + }, + "ConstValues": [ + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 81, + "length": 1, + "value": "9" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 111, + "length": 1, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 148, + "length": 1, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3048, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3088, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 3941, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 4285, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 4475, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4517, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4565, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 4967, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 6169, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6189, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6229, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 9685, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10586, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10906, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 11170, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11188, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11280, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11325, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11433, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11477, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11569, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11632, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11740, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 12266, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12307, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12319, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12326, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12703, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12714, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12721, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13086, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13464, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15597, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15704, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15728, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15845, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15869, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16049, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16149, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16584, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 16948, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 17004, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 81, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 147, + "length": 4, + "value": "\"ø\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 152, + "length": 2, + "value": "\" on \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 167, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 202, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 89, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 119, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2067, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2107, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2267, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2277, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2419, + "length": 1, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2429, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2964, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3004, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 3773, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3793, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3833, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4182, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4292, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4531, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4639, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4773, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4782, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4800, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4809, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4925, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 5013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 6962, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7077, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7105, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7230, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7258, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7350, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Dictionary", + "offset": 8072, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 8128, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Player.swift", + "kind": "Array", + "offset": 418, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "BooleanLiteral", + "offset": 475, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 570, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 694, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 981, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 996, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1015, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1049, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1212, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1278, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1548, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1979, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 2010, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 40, + "value": "\"[\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 150, + "length": 1, + "value": "\":\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 160, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 183, + "length": 3, + "value": "\"x\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 229, + "length": 3, + "value": "\"1\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 275, + "length": 3, + "value": "\"2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 616, + "length": 87, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 625, + "length": 1, + "value": "\": [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 640, + "length": 1, + "value": "\",\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 656, + "length": 1, + "value": "\"] -> [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 679, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 701, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 513, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 1483, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 1754, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2090, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2582, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3012, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3416, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3827, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4261, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4580, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 6361, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 7044, + "length": 5, + "value": "false" + } + ] +} \ No newline at end of file diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface new file mode 100644 index 0000000..d1cea63 --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target arm64-apple-ios16.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc new file mode 100644 index 0000000..afa4fb6 Binary files /dev/null and b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc differ diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface new file mode 100644 index 0000000..d1cea63 --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target arm64-apple-ios16.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json new file mode 100644 index 0000000..c28e9fd --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json @@ -0,0 +1,8546 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "TopLevel", + "printedName": "TopLevel", + "children": [ + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Result", + "printedName": "Result", + "children": [ + { + "kind": "Var", + "name": "notFinished", + "printedName": "notFinished", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO11notFinishedyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO11notFinishedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "even", + "printedName": "even", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO4evenyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO4evenyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "winner", + "printedName": "winner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> (DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "mangledName": "$s14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6ResultO", + "mangledName": "$s14DouShouQiModel6ResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "WinningReason", + "printedName": "WinningReason", + "children": [ + { + "kind": "Var", + "name": "denReached", + "printedName": "denReached", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMorePieces", + "printedName": "noMorePieces", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tooManyOccurences", + "printedName": "tooManyOccurences", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMovesLeft", + "printedName": "noMovesLeft", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel13WinningReasonO", + "mangledName": "$s14DouShouQiModel13WinningReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "BoardResult", + "printedName": "BoardResult", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel11BoardResultO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "ok", + "printedName": "ok", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "failed", + "printedName": "failed", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(reason: DouShouQiModel.BoardFailingReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel11BoardResultO", + "mangledName": "$s14DouShouQiModel11BoardResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "BoardFailingReason", + "printedName": "BoardFailingReason", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "outOfBounds", + "printedName": "outOfBounds", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellNotEmpty", + "printedName": "cellNotEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellEmpty", + "printedName": "cellEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel18BoardFailingReasonO", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "HumanPlayer", + "printedName": "HumanPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:andInputMethod:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "changeInput", + "printedName": "changeInput(input:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel11HumanPlayerC", + "mangledName": "$s14DouShouQiModel11HumanPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "ClassicRules", + "printedName": "ClassicRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesVACycfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel12ClassicRulesV", + "mangledName": "$s14DouShouQiModel12ClassicRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Cell", + "printedName": "Cell", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "cellType", + "printedName": "cellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "initialOwner", + "printedName": "initialOwner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "piece", + "printedName": "piece", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(ofType:ownedBy:withPiece:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "hasDefaultArg": true, + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "mangledName": "$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4CellV", + "mangledName": "$s14DouShouQiModel4CellV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "VerySimpleRules", + "printedName": "VerySimpleRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesVACycfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel15VerySimpleRulesV", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Rules", + "printedName": "Rules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "mangledName": "$s14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "mangledName": "$s14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "mangledName": "$s14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "mangledName": "$s14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "Mutating" + ], + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Protocol", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Player", + "printedName": "Player", + "children": [ + { + "kind": "Var", + "name": "name", + "printedName": "name", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvp", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvg", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "id", + "printedName": "id", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayedCallbacksListener", + "printedName": "addPlayedCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "mangledName": "$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "notifyPlayed", + "printedName": "notifyPlayed(withMove:andPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel6PlayerC", + "mangledName": "$s14DouShouQiModel6PlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "GameError", + "printedName": "GameError", + "children": [ + { + "kind": "Var", + "name": "invalidMove", + "printedName": "invalidMove", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "nextPlayerError", + "printedName": "nextPlayerError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badPlayerId", + "printedName": "badPlayerId", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> (Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(message: Swift.String)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidRules", + "printedName": "invalidRules", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidPlayer", + "printedName": "invalidPlayer", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidGame", + "printedName": "invalidGame", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidBoard", + "printedName": "invalidBoard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "moduleName": "DouShouQiModel" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel9GameErrorO", + "mangledName": "$s14DouShouQiModel9GameErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "RandomPlayer", + "printedName": "RandomPlayer", + "children": [ + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.RandomPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "RandomPlayer", + "printedName": "DouShouQiModel.RandomPlayer", + "usr": "s:14DouShouQiModel12RandomPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel12RandomPlayerC", + "mangledName": "$s14DouShouQiModel12RandomPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel8IAPlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.IAPlayer", + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "CellType", + "printedName": "CellType", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "jungle", + "printedName": "jungle", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO6jungleyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO6jungleyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "water", + "printedName": "water", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO5wateryA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO5wateryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "trap", + "printedName": "trap", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO4trapyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO4trapyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "den", + "printedName": "den", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO3denyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO3denyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "allCases", + "printedName": "allCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivp", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivg", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel8CellTypeO", + "mangledName": "$s14DouShouQiModel8CellTypeO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CaseIterable", + "printedName": "CaseIterable", + "children": [ + { + "kind": "TypeWitness", + "name": "AllCases", + "printedName": "AllCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ] + } + ], + "usr": "s:s12CaseIterableP", + "mangledName": "$ss12CaseIterableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Board", + "printedName": "Board", + "children": [ + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "nbRows", + "printedName": "nbRows", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivp", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivg", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "nbColumns", + "printedName": "nbColumns", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivp", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivg", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "grid", + "printedName": "grid", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withGrid:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Board?", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "mangledName": "$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces(of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "mangledName": "$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces()", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "mangledName": "$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "insert", + "printedName": "insert(piece:atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "mangledName": "$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "removePiece", + "printedName": "removePiece(atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "mangledName": "$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5BoardV", + "mangledName": "$s14DouShouQiModel5BoardV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Piece", + "printedName": "Piece", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "animal", + "printedName": "animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withOwner:andAnimal:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "mangledName": "$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5PieceV", + "mangledName": "$s14DouShouQiModel5PieceV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "InvalidBoardError", + "printedName": "InvalidBoardError", + "children": [ + { + "kind": "Var", + "name": "unknownError", + "printedName": "unknownError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badDimensions", + "printedName": "badDimensions", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbRows: Swift.Int, nbColumns: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badCellType", + "printedName": "badCellType", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "multipleOccurenceOfSamePiece", + "printedName": "multipleOccurenceOfSamePiece", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceWithNoOwner", + "printedName": "pieceWithNoOwner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceNotAllowedOnThisCell", + "printedName": "pieceNotAllowedOnThisCell", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Owner", + "printedName": "Owner", + "children": [ + { + "kind": "Var", + "name": "noOne", + "printedName": "noOne", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO5noOneyA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO5noOneyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player1", + "printedName": "player1", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player1yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player1yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player2", + "printedName": "player2", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player2yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player2yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "simpleDescription", + "printedName": "simpleDescription", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivp", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivg", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel5OwnerO", + "mangledName": "$s14DouShouQiModel5OwnerO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "IAPlayer", + "printedName": "IAPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.IAPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "IAPlayer", + "printedName": "DouShouQiModel.IAPlayer", + "usr": "s:14DouShouQiModel8IAPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel8IAPlayerC", + "mangledName": "$s14DouShouQiModel8IAPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Move", + "printedName": "Move", + "children": [ + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowOrigin", + "printedName": "rowOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnOrigin", + "printedName": "columnOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowDestination", + "printedName": "rowDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnDestination", + "printedName": "columnDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(of:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "mangledName": "$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4MoveV", + "mangledName": "$s14DouShouQiModel4MoveV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Animal", + "printedName": "Animal", + "children": [ + { + "kind": "Var", + "name": "rat", + "printedName": "rat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3ratyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3ratyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cat", + "printedName": "cat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3catyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3catyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "dog", + "printedName": "dog", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3dogyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3dogyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "wolf", + "printedName": "wolf", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4wolfyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4wolfyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "leopard", + "printedName": "leopard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO7leopardyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO7leopardyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tiger", + "printedName": "tiger", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO5tigeryA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO5tigeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "lion", + "printedName": "lion", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4lionyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4lionyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "elephant", + "printedName": "elephant", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO8elephantyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO8elephantyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivp", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivg", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Animal?", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "moduleName": "DouShouQiModel", + "implicit": true, + "init_kind": "Designated" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6AnimalO", + "mangledName": "$s14DouShouQiModel6AnimalO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "enumRawTypeName": "Int", + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", + "children": [ + { + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "usr": "s:SY", + "mangledName": "$sSY" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Game", + "printedName": "Game", + "children": [ + { + "kind": "Var", + "name": "board", + "printedName": "board", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvp", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvg", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rules", + "printedName": "rules", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "players", + "printedName": "players", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withBoard:andRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "addGameStartedListener", + "printedName": "addGameStartedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "mangledName": "$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayerNotifiedListener", + "printedName": "addPlayerNotifiedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "mangledName": "$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameChangedListener", + "printedName": "addGameChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Game) async -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "mangledName": "$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameOverListener", + "printedName": "addGameOverListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "mangledName": "$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addMoveChosenCallbacksListener", + "printedName": "addMoveChosenCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "mangledName": "$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addInvalidMoveCallbacksListener", + "printedName": "addInvalidMoveCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "mangledName": "$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addBoardChangedListener", + "printedName": "addBoardChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "mangledName": "$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPieceRemovedListener", + "printedName": "addPieceRemovedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "mangledName": "$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "onPlayed", + "printedName": "onPlayed(with:from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "mangledName": "$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "isOver", + "printedName": "isOver", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC6isOverSbvp", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC6isOverSbvg", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "start", + "printedName": "start()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC5startyyYaKF", + "mangledName": "$s14DouShouQiModel4GameC5startyyYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel4GameC", + "mangledName": "$s14DouShouQiModel4GameC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ] + } + ], + "json_format_version": 8 + }, + "ConstValues": [ + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 81, + "length": 1, + "value": "9" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 111, + "length": 1, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 148, + "length": 1, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3048, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3088, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 3941, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 4285, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 4475, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4517, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4565, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 4967, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 6169, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6189, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6229, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 9685, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10586, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10906, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 11170, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11188, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11280, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11325, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11433, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11477, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11569, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11632, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11740, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 12266, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12307, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12319, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12326, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12703, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12714, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12721, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13086, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13464, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15597, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15704, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15728, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15845, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15869, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16049, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16149, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16584, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 16948, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 17004, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 81, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 147, + "length": 4, + "value": "\"ø\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 152, + "length": 2, + "value": "\" on \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 167, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 202, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 89, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 119, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2067, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2107, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2267, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2277, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2419, + "length": 1, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2429, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2964, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3004, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 3773, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3793, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3833, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4182, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4292, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4531, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4639, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4773, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4782, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4800, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4809, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4925, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 5013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 6962, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7077, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7105, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7230, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7258, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7350, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Dictionary", + "offset": 8072, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 8128, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Player.swift", + "kind": "Array", + "offset": 418, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "BooleanLiteral", + "offset": 475, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 570, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 694, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 981, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 996, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1015, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1049, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1212, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1278, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1548, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1979, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 2010, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 40, + "value": "\"[\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 150, + "length": 1, + "value": "\":\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 160, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 183, + "length": 3, + "value": "\"x\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 229, + "length": 3, + "value": "\"1\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 275, + "length": 3, + "value": "\"2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 616, + "length": 87, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 625, + "length": 1, + "value": "\": [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 640, + "length": 1, + "value": "\",\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 656, + "length": 1, + "value": "\"] -> [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 679, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 701, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 513, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 1483, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 1754, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2090, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2582, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3012, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3416, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3827, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4261, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4580, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 6361, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 7044, + "length": 5, + "value": "false" + } + ] +} \ No newline at end of file diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface new file mode 100644 index 0000000..9404081 --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target x86_64-apple-ios16.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc new file mode 100644 index 0000000..a83d9d1 Binary files /dev/null and b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc differ diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface new file mode 100644 index 0000000..9404081 --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target x86_64-apple-ios16.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/module.modulemap b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/module.modulemap new file mode 100644 index 0000000..e7aa10a --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/module.modulemap @@ -0,0 +1,11 @@ +framework module DouShouQiModel { + umbrella header "DouShouQiModel.h" + export * + + module * { export * } +} + +module DouShouQiModel.Swift { + header "DouShouQiModel-Swift.h" + requires objc +} diff --git a/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/_CodeSignature/CodeResources b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..c34fa55 --- /dev/null +++ b/Dependencies/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/_CodeSignature/CodeResources @@ -0,0 +1,245 @@ + + + + + files + + Headers/DouShouQiModel-Swift.h + + Ugz84k7Dtyq8c1kVv5knXzRL8M8= + + Headers/DouShouQiModel.h + + oRFeERlH0MoI6LrvagIzL3ni4lM= + + Info.plist + + nK7+MI/Ze6f+km/d+6SafK4UOHw= + + Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json + + 5wlrw/S604f6EkkdO0sjydo0+Bc= + + Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface + + iWelfKfa40hASjZTv+0MmwJpt14= + + Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc + + uNDHcaRHf/ULIsVZEMiJY2HGm4c= + + Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface + + iWelfKfa40hASjZTv+0MmwJpt14= + + Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftmodule + + hIkz8AGNOjj+boCk29AkmkNg7U4= + + Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json + + 5wlrw/S604f6EkkdO0sjydo0+Bc= + + Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface + + ulNUxrIsFIWqKNx6spilb7IJVR0= + + Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc + + tkYnhquJQVCRsNSI7Hl83a7/uFk= + + Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface + + ulNUxrIsFIWqKNx6spilb7IJVR0= + + Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftmodule + + 0ZAcidlUuohX1myhyQosgBBZq1s= + + Modules/module.modulemap + + tOh1oseR3w5cW6xQIaaghrv9LlM= + + + files2 + + Headers/DouShouQiModel-Swift.h + + hash2 + + X8yw4Beas8gUjOV/b4G2i2nanoGnSlTcLKeBiIYLXRI= + + + Headers/DouShouQiModel.h + + hash2 + + a0LOmZXPnWhpMKaBoW1IdxOGAzn4RhRBe32928+2jeU= + + + Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json + + hash2 + + btM982otm47LMNIetdE5JR553fM9PjFPuS8AXm0+EpQ= + + + Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface + + hash2 + + oe48ffKwbmJhKUMG/td3wfVID9DF4QgJz/dIPJweV5g= + + + Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc + + hash2 + + cpfiPzUVsQ9nZcmz7k/CLhMlNAa3hCWAVPNrKBhrKls= + + + Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface + + hash2 + + oe48ffKwbmJhKUMG/td3wfVID9DF4QgJz/dIPJweV5g= + + + Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftmodule + + hash2 + + q85NBK13clOQfgVFgVjmL6pWsskBEw+Z45xPFMxL1+E= + + + Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json + + hash2 + + btM982otm47LMNIetdE5JR553fM9PjFPuS8AXm0+EpQ= + + + Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface + + hash2 + + agKcCCqs9pHq1e94l4ouc5WojSYeRzzGkrHxkw9FZ8c= + + + Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc + + hash2 + + SsJ/b3BHzQ9S5Wz5tzNZPeo8WQ4dX+hCQFo95fU45as= + + + Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface + + hash2 + + agKcCCqs9pHq1e94l4ouc5WojSYeRzzGkrHxkw9FZ8c= + + + Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftmodule + + hash2 + + 0C4f5rpOmGFG3B9PLb/e4rylk+OdtHUNKJ+aW1e+MCE= + + + Modules/module.modulemap + + hash2 + + XJ885pOXSQHhlMUP6dyA/ER9+SP/HZ+IMImbB4k5+rI= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/DouShouQiModel b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/DouShouQiModel new file mode 120000 index 0000000..4c7f364 --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/DouShouQiModel @@ -0,0 +1 @@ +Versions/Current/DouShouQiModel \ No newline at end of file diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Headers b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Modules b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Modules new file mode 120000 index 0000000..5736f31 --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Modules @@ -0,0 +1 @@ +Versions/Current/Modules \ No newline at end of file diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Resources b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/DouShouQiModel b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/DouShouQiModel new file mode 100755 index 0000000..fecd509 Binary files /dev/null and b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/DouShouQiModel differ diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Headers/DouShouQiModel-Swift.h b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Headers/DouShouQiModel-Swift.h new file mode 100644 index 0000000..5e14e79 --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Headers/DouShouQiModel-Swift.h @@ -0,0 +1,618 @@ +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +#ifndef DOUSHOUQIMODEL_SWIFT_H +#define DOUSHOUQIMODEL_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#if defined(__arm64e__) && __has_include() +# include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# ifndef __ptrauth_swift_value_witness_function_pointer +# define __ptrauth_swift_value_witness_function_pointer(x) +# endif +# ifndef __ptrauth_swift_class_method_pointer +# define __ptrauth_swift_class_method_pointer(x) +# endif +#pragma clang diagnostic pop +#endif +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +# if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# else +# define SWIFT_RUNTIME_NAME(X) +# endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +# if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# else +# define SWIFT_COMPILE_NAME(X) +# endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +# if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# else +# define SWIFT_METHOD_FAMILY(X) +# endif +#endif +#if !defined(SWIFT_NOESCAPE) +# if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +# else +# define SWIFT_NOESCAPE +# endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +# if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# else +# define SWIFT_RELEASES_ARGUMENT +# endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +# if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# else +# define SWIFT_WARN_UNUSED_RESULT +# endif +#endif +#if !defined(SWIFT_NORETURN) +# if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +# else +# define SWIFT_NORETURN +# endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +# if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +# define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +# define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +# define SWIFT_NOEXCEPT noexcept +#else +# define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +# if __has_attribute(always_inline) +# if __has_attribute(nodebug) +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug)) +# else +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +# endif +# else +# define SWIFT_C_INLINE_THUNK inline +# endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="DouShouQiModel",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +#ifndef DOUSHOUQIMODEL_SWIFT_H +#define DOUSHOUQIMODEL_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#if defined(__arm64e__) && __has_include() +# include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# ifndef __ptrauth_swift_value_witness_function_pointer +# define __ptrauth_swift_value_witness_function_pointer(x) +# endif +# ifndef __ptrauth_swift_class_method_pointer +# define __ptrauth_swift_class_method_pointer(x) +# endif +#pragma clang diagnostic pop +#endif +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +# if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# else +# define SWIFT_RUNTIME_NAME(X) +# endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +# if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# else +# define SWIFT_COMPILE_NAME(X) +# endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +# if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# else +# define SWIFT_METHOD_FAMILY(X) +# endif +#endif +#if !defined(SWIFT_NOESCAPE) +# if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +# else +# define SWIFT_NOESCAPE +# endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +# if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# else +# define SWIFT_RELEASES_ARGUMENT +# endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +# if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# else +# define SWIFT_WARN_UNUSED_RESULT +# endif +#endif +#if !defined(SWIFT_NORETURN) +# if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +# else +# define SWIFT_NORETURN +# endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +# if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +# define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +# define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +# define SWIFT_NOEXCEPT noexcept +#else +# define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +# if __has_attribute(always_inline) +# if __has_attribute(nodebug) +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug)) +# else +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +# endif +# else +# define SWIFT_C_INLINE_THUNK inline +# endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="DouShouQiModel",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#else +#error unsupported Swift architecture +#endif diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Headers/DouShouQiModel.h b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Headers/DouShouQiModel.h new file mode 100644 index 0000000..5bbf06a --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Headers/DouShouQiModel.h @@ -0,0 +1,18 @@ +// +// DouShouQiModel.h +// DouShouQiModel +// +// Created by Marc Chevaldonné on 14/05/2024. +// + +#import + +//! Project version number for DouShouQiModel. +FOUNDATION_EXPORT double DouShouQiModelVersionNumber; + +//! Project version string for DouShouQiModel. +FOUNDATION_EXPORT const unsigned char DouShouQiModelVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.abi.json b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.abi.json new file mode 100644 index 0000000..c28e9fd --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.abi.json @@ -0,0 +1,8546 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "TopLevel", + "printedName": "TopLevel", + "children": [ + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Result", + "printedName": "Result", + "children": [ + { + "kind": "Var", + "name": "notFinished", + "printedName": "notFinished", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO11notFinishedyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO11notFinishedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "even", + "printedName": "even", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO4evenyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO4evenyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "winner", + "printedName": "winner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> (DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "mangledName": "$s14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6ResultO", + "mangledName": "$s14DouShouQiModel6ResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "WinningReason", + "printedName": "WinningReason", + "children": [ + { + "kind": "Var", + "name": "denReached", + "printedName": "denReached", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMorePieces", + "printedName": "noMorePieces", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tooManyOccurences", + "printedName": "tooManyOccurences", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMovesLeft", + "printedName": "noMovesLeft", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel13WinningReasonO", + "mangledName": "$s14DouShouQiModel13WinningReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "BoardResult", + "printedName": "BoardResult", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel11BoardResultO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "ok", + "printedName": "ok", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "failed", + "printedName": "failed", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(reason: DouShouQiModel.BoardFailingReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel11BoardResultO", + "mangledName": "$s14DouShouQiModel11BoardResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "BoardFailingReason", + "printedName": "BoardFailingReason", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "outOfBounds", + "printedName": "outOfBounds", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellNotEmpty", + "printedName": "cellNotEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellEmpty", + "printedName": "cellEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel18BoardFailingReasonO", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "HumanPlayer", + "printedName": "HumanPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:andInputMethod:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "changeInput", + "printedName": "changeInput(input:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel11HumanPlayerC", + "mangledName": "$s14DouShouQiModel11HumanPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "ClassicRules", + "printedName": "ClassicRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesVACycfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel12ClassicRulesV", + "mangledName": "$s14DouShouQiModel12ClassicRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Cell", + "printedName": "Cell", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "cellType", + "printedName": "cellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "initialOwner", + "printedName": "initialOwner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "piece", + "printedName": "piece", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(ofType:ownedBy:withPiece:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "hasDefaultArg": true, + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "mangledName": "$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4CellV", + "mangledName": "$s14DouShouQiModel4CellV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "VerySimpleRules", + "printedName": "VerySimpleRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesVACycfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel15VerySimpleRulesV", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Rules", + "printedName": "Rules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "mangledName": "$s14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "mangledName": "$s14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "mangledName": "$s14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "mangledName": "$s14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "Mutating" + ], + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Protocol", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Player", + "printedName": "Player", + "children": [ + { + "kind": "Var", + "name": "name", + "printedName": "name", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvp", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvg", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "id", + "printedName": "id", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayedCallbacksListener", + "printedName": "addPlayedCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "mangledName": "$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "notifyPlayed", + "printedName": "notifyPlayed(withMove:andPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel6PlayerC", + "mangledName": "$s14DouShouQiModel6PlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "GameError", + "printedName": "GameError", + "children": [ + { + "kind": "Var", + "name": "invalidMove", + "printedName": "invalidMove", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "nextPlayerError", + "printedName": "nextPlayerError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badPlayerId", + "printedName": "badPlayerId", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> (Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(message: Swift.String)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidRules", + "printedName": "invalidRules", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidPlayer", + "printedName": "invalidPlayer", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidGame", + "printedName": "invalidGame", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidBoard", + "printedName": "invalidBoard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "moduleName": "DouShouQiModel" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel9GameErrorO", + "mangledName": "$s14DouShouQiModel9GameErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "RandomPlayer", + "printedName": "RandomPlayer", + "children": [ + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.RandomPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "RandomPlayer", + "printedName": "DouShouQiModel.RandomPlayer", + "usr": "s:14DouShouQiModel12RandomPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel12RandomPlayerC", + "mangledName": "$s14DouShouQiModel12RandomPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel8IAPlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.IAPlayer", + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "CellType", + "printedName": "CellType", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "jungle", + "printedName": "jungle", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO6jungleyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO6jungleyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "water", + "printedName": "water", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO5wateryA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO5wateryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "trap", + "printedName": "trap", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO4trapyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO4trapyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "den", + "printedName": "den", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO3denyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO3denyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "allCases", + "printedName": "allCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivp", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivg", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel8CellTypeO", + "mangledName": "$s14DouShouQiModel8CellTypeO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CaseIterable", + "printedName": "CaseIterable", + "children": [ + { + "kind": "TypeWitness", + "name": "AllCases", + "printedName": "AllCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ] + } + ], + "usr": "s:s12CaseIterableP", + "mangledName": "$ss12CaseIterableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Board", + "printedName": "Board", + "children": [ + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "nbRows", + "printedName": "nbRows", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivp", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivg", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "nbColumns", + "printedName": "nbColumns", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivp", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivg", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "grid", + "printedName": "grid", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withGrid:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Board?", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "mangledName": "$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces(of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "mangledName": "$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces()", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "mangledName": "$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "insert", + "printedName": "insert(piece:atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "mangledName": "$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "removePiece", + "printedName": "removePiece(atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "mangledName": "$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5BoardV", + "mangledName": "$s14DouShouQiModel5BoardV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Piece", + "printedName": "Piece", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "animal", + "printedName": "animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withOwner:andAnimal:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "mangledName": "$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5PieceV", + "mangledName": "$s14DouShouQiModel5PieceV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "InvalidBoardError", + "printedName": "InvalidBoardError", + "children": [ + { + "kind": "Var", + "name": "unknownError", + "printedName": "unknownError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badDimensions", + "printedName": "badDimensions", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbRows: Swift.Int, nbColumns: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badCellType", + "printedName": "badCellType", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "multipleOccurenceOfSamePiece", + "printedName": "multipleOccurenceOfSamePiece", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceWithNoOwner", + "printedName": "pieceWithNoOwner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceNotAllowedOnThisCell", + "printedName": "pieceNotAllowedOnThisCell", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Owner", + "printedName": "Owner", + "children": [ + { + "kind": "Var", + "name": "noOne", + "printedName": "noOne", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO5noOneyA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO5noOneyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player1", + "printedName": "player1", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player1yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player1yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player2", + "printedName": "player2", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player2yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player2yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "simpleDescription", + "printedName": "simpleDescription", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivp", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivg", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel5OwnerO", + "mangledName": "$s14DouShouQiModel5OwnerO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "IAPlayer", + "printedName": "IAPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.IAPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "IAPlayer", + "printedName": "DouShouQiModel.IAPlayer", + "usr": "s:14DouShouQiModel8IAPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel8IAPlayerC", + "mangledName": "$s14DouShouQiModel8IAPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Move", + "printedName": "Move", + "children": [ + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowOrigin", + "printedName": "rowOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnOrigin", + "printedName": "columnOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowDestination", + "printedName": "rowDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnDestination", + "printedName": "columnDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(of:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "mangledName": "$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4MoveV", + "mangledName": "$s14DouShouQiModel4MoveV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Animal", + "printedName": "Animal", + "children": [ + { + "kind": "Var", + "name": "rat", + "printedName": "rat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3ratyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3ratyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cat", + "printedName": "cat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3catyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3catyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "dog", + "printedName": "dog", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3dogyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3dogyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "wolf", + "printedName": "wolf", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4wolfyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4wolfyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "leopard", + "printedName": "leopard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO7leopardyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO7leopardyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tiger", + "printedName": "tiger", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO5tigeryA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO5tigeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "lion", + "printedName": "lion", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4lionyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4lionyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "elephant", + "printedName": "elephant", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO8elephantyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO8elephantyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivp", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivg", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Animal?", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "moduleName": "DouShouQiModel", + "implicit": true, + "init_kind": "Designated" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6AnimalO", + "mangledName": "$s14DouShouQiModel6AnimalO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "enumRawTypeName": "Int", + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", + "children": [ + { + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "usr": "s:SY", + "mangledName": "$sSY" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Game", + "printedName": "Game", + "children": [ + { + "kind": "Var", + "name": "board", + "printedName": "board", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvp", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvg", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rules", + "printedName": "rules", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "players", + "printedName": "players", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withBoard:andRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "addGameStartedListener", + "printedName": "addGameStartedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "mangledName": "$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayerNotifiedListener", + "printedName": "addPlayerNotifiedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "mangledName": "$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameChangedListener", + "printedName": "addGameChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Game) async -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "mangledName": "$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameOverListener", + "printedName": "addGameOverListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "mangledName": "$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addMoveChosenCallbacksListener", + "printedName": "addMoveChosenCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "mangledName": "$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addInvalidMoveCallbacksListener", + "printedName": "addInvalidMoveCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "mangledName": "$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addBoardChangedListener", + "printedName": "addBoardChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "mangledName": "$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPieceRemovedListener", + "printedName": "addPieceRemovedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "mangledName": "$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "onPlayed", + "printedName": "onPlayed(with:from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "mangledName": "$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "isOver", + "printedName": "isOver", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC6isOverSbvp", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC6isOverSbvg", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "start", + "printedName": "start()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC5startyyYaKF", + "mangledName": "$s14DouShouQiModel4GameC5startyyYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel4GameC", + "mangledName": "$s14DouShouQiModel4GameC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ] + } + ], + "json_format_version": 8 + }, + "ConstValues": [ + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 81, + "length": 1, + "value": "9" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 111, + "length": 1, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 148, + "length": 1, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3048, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3088, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 3941, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 4285, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 4475, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4517, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4565, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 4967, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 6169, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6189, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6229, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 9685, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10586, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10906, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 11170, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11188, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11280, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11325, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11433, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11477, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11569, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11632, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11740, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 12266, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12307, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12319, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12326, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12703, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12714, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12721, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13086, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13464, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15597, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15704, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15728, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15845, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15869, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16049, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16149, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16584, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 16948, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 17004, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 81, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 147, + "length": 4, + "value": "\"ø\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 152, + "length": 2, + "value": "\" on \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 167, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 202, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 89, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 119, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2067, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2107, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2267, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2277, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2419, + "length": 1, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2429, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2964, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3004, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 3773, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3793, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3833, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4182, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4292, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4531, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4639, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4773, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4782, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4800, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4809, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4925, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 5013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 6962, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7077, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7105, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7230, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7258, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7350, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Dictionary", + "offset": 8072, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 8128, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Player.swift", + "kind": "Array", + "offset": 418, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "BooleanLiteral", + "offset": 475, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 570, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 694, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 981, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 996, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1015, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1049, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1212, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1278, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1548, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1979, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 2010, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 40, + "value": "\"[\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 150, + "length": 1, + "value": "\":\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 160, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 183, + "length": 3, + "value": "\"x\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 229, + "length": 3, + "value": "\"1\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 275, + "length": 3, + "value": "\"2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 616, + "length": 87, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 625, + "length": 1, + "value": "\": [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 640, + "length": 1, + "value": "\",\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 656, + "length": 1, + "value": "\"] -> [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 679, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 701, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 513, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 1483, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 1754, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2090, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2582, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3012, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3416, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3827, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4261, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4580, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 6361, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 7044, + "length": 5, + "value": "false" + } + ] +} \ No newline at end of file diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.private.swiftinterface b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.private.swiftinterface new file mode 100644 index 0000000..012a385 --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.private.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target arm64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.swiftdoc b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.swiftdoc new file mode 100644 index 0000000..532f235 Binary files /dev/null and b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.swiftdoc differ diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.swiftinterface b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.swiftinterface new file mode 100644 index 0000000..012a385 --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target arm64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.abi.json b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.abi.json new file mode 100644 index 0000000..c28e9fd --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.abi.json @@ -0,0 +1,8546 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "TopLevel", + "printedName": "TopLevel", + "children": [ + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Result", + "printedName": "Result", + "children": [ + { + "kind": "Var", + "name": "notFinished", + "printedName": "notFinished", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO11notFinishedyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO11notFinishedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "even", + "printedName": "even", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO4evenyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO4evenyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "winner", + "printedName": "winner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> (DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "mangledName": "$s14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6ResultO", + "mangledName": "$s14DouShouQiModel6ResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "WinningReason", + "printedName": "WinningReason", + "children": [ + { + "kind": "Var", + "name": "denReached", + "printedName": "denReached", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMorePieces", + "printedName": "noMorePieces", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tooManyOccurences", + "printedName": "tooManyOccurences", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMovesLeft", + "printedName": "noMovesLeft", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel13WinningReasonO", + "mangledName": "$s14DouShouQiModel13WinningReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "BoardResult", + "printedName": "BoardResult", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel11BoardResultO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "ok", + "printedName": "ok", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "failed", + "printedName": "failed", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(reason: DouShouQiModel.BoardFailingReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel11BoardResultO", + "mangledName": "$s14DouShouQiModel11BoardResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "BoardFailingReason", + "printedName": "BoardFailingReason", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "outOfBounds", + "printedName": "outOfBounds", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellNotEmpty", + "printedName": "cellNotEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellEmpty", + "printedName": "cellEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel18BoardFailingReasonO", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "HumanPlayer", + "printedName": "HumanPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:andInputMethod:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "changeInput", + "printedName": "changeInput(input:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel11HumanPlayerC", + "mangledName": "$s14DouShouQiModel11HumanPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "ClassicRules", + "printedName": "ClassicRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesVACycfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel12ClassicRulesV", + "mangledName": "$s14DouShouQiModel12ClassicRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Cell", + "printedName": "Cell", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "cellType", + "printedName": "cellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "initialOwner", + "printedName": "initialOwner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "piece", + "printedName": "piece", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(ofType:ownedBy:withPiece:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "hasDefaultArg": true, + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "mangledName": "$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4CellV", + "mangledName": "$s14DouShouQiModel4CellV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "VerySimpleRules", + "printedName": "VerySimpleRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesVACycfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel15VerySimpleRulesV", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Rules", + "printedName": "Rules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "mangledName": "$s14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "mangledName": "$s14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "mangledName": "$s14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "mangledName": "$s14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "Mutating" + ], + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Protocol", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Player", + "printedName": "Player", + "children": [ + { + "kind": "Var", + "name": "name", + "printedName": "name", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvp", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvg", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "id", + "printedName": "id", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayedCallbacksListener", + "printedName": "addPlayedCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "mangledName": "$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "notifyPlayed", + "printedName": "notifyPlayed(withMove:andPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel6PlayerC", + "mangledName": "$s14DouShouQiModel6PlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "GameError", + "printedName": "GameError", + "children": [ + { + "kind": "Var", + "name": "invalidMove", + "printedName": "invalidMove", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "nextPlayerError", + "printedName": "nextPlayerError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badPlayerId", + "printedName": "badPlayerId", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> (Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(message: Swift.String)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidRules", + "printedName": "invalidRules", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidPlayer", + "printedName": "invalidPlayer", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidGame", + "printedName": "invalidGame", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidBoard", + "printedName": "invalidBoard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "moduleName": "DouShouQiModel" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel9GameErrorO", + "mangledName": "$s14DouShouQiModel9GameErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "RandomPlayer", + "printedName": "RandomPlayer", + "children": [ + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.RandomPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "RandomPlayer", + "printedName": "DouShouQiModel.RandomPlayer", + "usr": "s:14DouShouQiModel12RandomPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel12RandomPlayerC", + "mangledName": "$s14DouShouQiModel12RandomPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel8IAPlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.IAPlayer", + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "CellType", + "printedName": "CellType", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "jungle", + "printedName": "jungle", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO6jungleyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO6jungleyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "water", + "printedName": "water", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO5wateryA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO5wateryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "trap", + "printedName": "trap", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO4trapyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO4trapyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "den", + "printedName": "den", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO3denyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO3denyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "allCases", + "printedName": "allCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivp", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivg", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel8CellTypeO", + "mangledName": "$s14DouShouQiModel8CellTypeO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CaseIterable", + "printedName": "CaseIterable", + "children": [ + { + "kind": "TypeWitness", + "name": "AllCases", + "printedName": "AllCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ] + } + ], + "usr": "s:s12CaseIterableP", + "mangledName": "$ss12CaseIterableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Board", + "printedName": "Board", + "children": [ + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "nbRows", + "printedName": "nbRows", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivp", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivg", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "nbColumns", + "printedName": "nbColumns", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivp", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivg", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "grid", + "printedName": "grid", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withGrid:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Board?", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "mangledName": "$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces(of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "mangledName": "$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces()", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "mangledName": "$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "insert", + "printedName": "insert(piece:atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "mangledName": "$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "removePiece", + "printedName": "removePiece(atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "mangledName": "$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5BoardV", + "mangledName": "$s14DouShouQiModel5BoardV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Piece", + "printedName": "Piece", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "animal", + "printedName": "animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withOwner:andAnimal:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "mangledName": "$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5PieceV", + "mangledName": "$s14DouShouQiModel5PieceV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "InvalidBoardError", + "printedName": "InvalidBoardError", + "children": [ + { + "kind": "Var", + "name": "unknownError", + "printedName": "unknownError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badDimensions", + "printedName": "badDimensions", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbRows: Swift.Int, nbColumns: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badCellType", + "printedName": "badCellType", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "multipleOccurenceOfSamePiece", + "printedName": "multipleOccurenceOfSamePiece", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceWithNoOwner", + "printedName": "pieceWithNoOwner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceNotAllowedOnThisCell", + "printedName": "pieceNotAllowedOnThisCell", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Owner", + "printedName": "Owner", + "children": [ + { + "kind": "Var", + "name": "noOne", + "printedName": "noOne", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO5noOneyA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO5noOneyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player1", + "printedName": "player1", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player1yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player1yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player2", + "printedName": "player2", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player2yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player2yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "simpleDescription", + "printedName": "simpleDescription", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivp", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivg", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel5OwnerO", + "mangledName": "$s14DouShouQiModel5OwnerO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "IAPlayer", + "printedName": "IAPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.IAPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "IAPlayer", + "printedName": "DouShouQiModel.IAPlayer", + "usr": "s:14DouShouQiModel8IAPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel8IAPlayerC", + "mangledName": "$s14DouShouQiModel8IAPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Move", + "printedName": "Move", + "children": [ + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowOrigin", + "printedName": "rowOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnOrigin", + "printedName": "columnOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowDestination", + "printedName": "rowDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnDestination", + "printedName": "columnDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(of:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "mangledName": "$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4MoveV", + "mangledName": "$s14DouShouQiModel4MoveV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Animal", + "printedName": "Animal", + "children": [ + { + "kind": "Var", + "name": "rat", + "printedName": "rat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3ratyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3ratyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cat", + "printedName": "cat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3catyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3catyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "dog", + "printedName": "dog", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3dogyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3dogyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "wolf", + "printedName": "wolf", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4wolfyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4wolfyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "leopard", + "printedName": "leopard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO7leopardyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO7leopardyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tiger", + "printedName": "tiger", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO5tigeryA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO5tigeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "lion", + "printedName": "lion", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4lionyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4lionyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "elephant", + "printedName": "elephant", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO8elephantyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO8elephantyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivp", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivg", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Animal?", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "moduleName": "DouShouQiModel", + "implicit": true, + "init_kind": "Designated" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6AnimalO", + "mangledName": "$s14DouShouQiModel6AnimalO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "enumRawTypeName": "Int", + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", + "children": [ + { + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "usr": "s:SY", + "mangledName": "$sSY" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Game", + "printedName": "Game", + "children": [ + { + "kind": "Var", + "name": "board", + "printedName": "board", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvp", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvg", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rules", + "printedName": "rules", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "players", + "printedName": "players", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withBoard:andRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "addGameStartedListener", + "printedName": "addGameStartedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "mangledName": "$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayerNotifiedListener", + "printedName": "addPlayerNotifiedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "mangledName": "$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameChangedListener", + "printedName": "addGameChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Game) async -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "mangledName": "$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameOverListener", + "printedName": "addGameOverListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "mangledName": "$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addMoveChosenCallbacksListener", + "printedName": "addMoveChosenCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "mangledName": "$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addInvalidMoveCallbacksListener", + "printedName": "addInvalidMoveCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "mangledName": "$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addBoardChangedListener", + "printedName": "addBoardChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "mangledName": "$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPieceRemovedListener", + "printedName": "addPieceRemovedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "mangledName": "$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "onPlayed", + "printedName": "onPlayed(with:from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "mangledName": "$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "isOver", + "printedName": "isOver", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC6isOverSbvp", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC6isOverSbvg", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "start", + "printedName": "start()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC5startyyYaKF", + "mangledName": "$s14DouShouQiModel4GameC5startyyYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel4GameC", + "mangledName": "$s14DouShouQiModel4GameC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ] + } + ], + "json_format_version": 8 + }, + "ConstValues": [ + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 81, + "length": 1, + "value": "9" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 111, + "length": 1, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 148, + "length": 1, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3048, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3088, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 3941, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 4285, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 4475, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4517, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4565, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 4967, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 6169, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6189, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6229, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 9685, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10586, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10906, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 11170, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11188, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11280, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11325, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11433, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11477, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11569, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11632, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11740, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 12266, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12307, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12319, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12326, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12703, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12714, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12721, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13086, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13464, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15597, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15704, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15728, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15845, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15869, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16049, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16149, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16584, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 16948, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 17004, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 81, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 147, + "length": 4, + "value": "\"ø\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 152, + "length": 2, + "value": "\" on \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 167, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 202, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 89, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 119, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2067, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2107, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2267, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2277, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2419, + "length": 1, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2429, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2964, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3004, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 3773, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3793, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3833, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4182, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4292, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4531, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4639, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4773, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4782, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4800, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4809, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4925, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 5013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 6962, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7077, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7105, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7230, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7258, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7350, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Dictionary", + "offset": 8072, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 8128, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Player.swift", + "kind": "Array", + "offset": 418, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "BooleanLiteral", + "offset": 475, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 570, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 694, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 981, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 996, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1015, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1049, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1212, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1278, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1548, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1979, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 2010, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 40, + "value": "\"[\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 150, + "length": 1, + "value": "\":\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 160, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 183, + "length": 3, + "value": "\"x\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 229, + "length": 3, + "value": "\"1\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 275, + "length": 3, + "value": "\"2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 616, + "length": 87, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 625, + "length": 1, + "value": "\": [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 640, + "length": 1, + "value": "\",\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 656, + "length": 1, + "value": "\"] -> [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 679, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 701, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 513, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 1483, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 1754, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2090, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2582, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3012, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3416, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3827, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4261, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4580, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 6361, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 7044, + "length": 5, + "value": "false" + } + ] +} \ No newline at end of file diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.private.swiftinterface b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.private.swiftinterface new file mode 100644 index 0000000..dc0a8ad --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.private.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target x86_64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.swiftdoc b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.swiftdoc new file mode 100644 index 0000000..769dad0 Binary files /dev/null and b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.swiftdoc differ diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.swiftinterface b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.swiftinterface new file mode 100644 index 0000000..dc0a8ad --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target x86_64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/module.modulemap b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/module.modulemap new file mode 100644 index 0000000..e7aa10a --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/module.modulemap @@ -0,0 +1,11 @@ +framework module DouShouQiModel { + umbrella header "DouShouQiModel.h" + export * + + module * { export * } +} + +module DouShouQiModel.Swift { + header "DouShouQiModel-Swift.h" + requires objc +} diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Resources/Info.plist b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000..7d58232 --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,46 @@ + + + + + BuildMachineOSBuild + 23E224 + CFBundleDevelopmentRegion + en + CFBundleExecutable + DouShouQiModel + CFBundleIdentifier + fr.uca.iut.DouShouQiModel + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + DouShouQiModel + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + + DTPlatformName + macosx + DTPlatformVersion + 14.2 + DTSDKBuild + 23C53 + DTSDKName + macosx14.2 + DTXcode + 1520 + DTXcodeBuild + 15C500b + LSMinimumSystemVersion + 13.0 + + diff --git a/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/Current b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Dependencies/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Documents/Images/Banniere.png b/Documents/Images/Banniere.png new file mode 100644 index 0000000..4771626 Binary files /dev/null and b/Documents/Images/Banniere.png differ diff --git a/Documents/Images/Historique Page.png b/Documents/Images/Historique Page.png new file mode 100644 index 0000000..7c2dc2c Binary files /dev/null and b/Documents/Images/Historique Page.png differ diff --git a/Documents/Images/Home page.png b/Documents/Images/Home page.png new file mode 100644 index 0000000..f71b006 Binary files /dev/null and b/Documents/Images/Home page.png differ diff --git a/Documents/Images/Players Page.png b/Documents/Images/Players Page.png new file mode 100644 index 0000000..a36f92b Binary files /dev/null and b/Documents/Images/Players Page.png differ diff --git a/Documents/Images/Scores Pages.png b/Documents/Images/Scores Pages.png new file mode 100644 index 0000000..5caf3bc Binary files /dev/null and b/Documents/Images/Scores Pages.png differ diff --git a/Documents/Images/Select Players Page.png b/Documents/Images/Select Players Page.png new file mode 100644 index 0000000..ab1d13c Binary files /dev/null and b/Documents/Images/Select Players Page.png differ diff --git a/DouShouQi_App/DSQ.xcframework/Info.plist b/DouShouQi_App/DSQ.xcframework/Info.plist index eb4b36f..6cefe51 100644 --- a/DouShouQi_App/DSQ.xcframework/Info.plist +++ b/DouShouQi_App/DSQ.xcframework/Info.plist @@ -7,6 +7,8 @@ BinaryPath DouShouQiModel.framework/DouShouQiModel + DebugSymbolsPath + dSYMs LibraryIdentifier ios-arm64 LibraryPath @@ -21,6 +23,8 @@ BinaryPath DouShouQiModel.framework/DouShouQiModel + DebugSymbolsPath + dSYMs LibraryIdentifier ios-arm64_x86_64-simulator LibraryPath @@ -35,6 +39,23 @@ SupportedPlatformVariant simulator + + BinaryPath + DouShouQiModel.framework/Versions/A/DouShouQiModel + DebugSymbolsPath + dSYMs + LibraryIdentifier + macos-arm64_x86_64 + LibraryPath + DouShouQiModel.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + macos + CFBundlePackageType XFWK diff --git a/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/DouShouQiModel b/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/DouShouQiModel index 1793e7c..47dbe4c 100755 Binary files a/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/DouShouQiModel and b/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/DouShouQiModel differ diff --git a/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.abi.json b/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.abi.json index cd2a367..c28e9fd 100644 --- a/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.abi.json +++ b/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.abi.json @@ -534,13 +534,41 @@ { "kind": "TypeFunc", "name": "Function", - "printedName": "(DouShouQiModel.BoardResult.Type) -> DouShouQiModel.BoardResult", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", "children": [ { - "kind": "TypeNominal", - "name": "BoardResult", - "printedName": "DouShouQiModel.BoardResult", - "usr": "s:14DouShouQiModel11BoardResultO" + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ] + } + ] }, { "kind": "TypeNominal", @@ -559,8 +587,8 @@ } ], "declKind": "EnumElement", - "usr": "s:14DouShouQiModel11BoardResultO2okyA2CmF", - "mangledName": "$s14DouShouQiModel11BoardResultO2okyA2CmF", + "usr": "s:14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", "moduleName": "DouShouQiModel" }, { @@ -1074,17 +1102,8 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "DouShouQiModel.Move?", - "children": [ - { - "kind": "TypeNominal", - "name": "Move", - "printedName": "DouShouQiModel.Move", - "usr": "s:14DouShouQiModel4MoveV" - } - ], - "usr": "s:Sq" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", @@ -1100,14 +1119,15 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF", - "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", "moduleName": "DouShouQiModel", "overriding": true, "declAttributes": [ "Override", "AccessControl" ], + "throwing": true, "funcSelfKind": "NonMutating" }, { @@ -1156,6 +1176,41 @@ "AccessControl" ], "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" } ], "declKind": "Class", @@ -3344,6 +3399,103 @@ "name": "chooseMove", "printedName": "chooseMove(in:with:)", "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayedCallbacksListener", + "printedName": "addPlayedCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "mangledName": "$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "notifyPlayed", + "printedName": "notifyPlayed(withMove:andPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, { "kind": "TypeNominal", "name": "Optional", @@ -3360,24 +3512,19 @@ }, { "kind": "TypeNominal", - "name": "Board", - "printedName": "DouShouQiModel.Board", - "usr": "s:14DouShouQiModel5BoardV" - }, - { - "kind": "TypeNominal", - "name": "Rules", - "printedName": "DouShouQiModel.Rules", - "usr": "s:14DouShouQiModel5RulesP" + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" } ], "declKind": "Func", - "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withAA0G0VSgAA5BoardV_AA5Rules_ptF", - "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withAA0G0VSgAA5BoardV_AA5Rules_ptF", + "usr": "s:14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", "moduleName": "DouShouQiModel", "declAttributes": [ "AccessControl" ], + "throwing": true, "funcSelfKind": "NonMutating" } ], @@ -3724,17 +3871,8 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "DouShouQiModel.Move?", - "children": [ - { - "kind": "TypeNominal", - "name": "Move", - "printedName": "DouShouQiModel.Move", - "usr": "s:14DouShouQiModel4MoveV" - } - ], - "usr": "s:Sq" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", @@ -3750,14 +3888,15 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF", - "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF", + "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", "moduleName": "DouShouQiModel", "overriding": true, "declAttributes": [ "Override", "AccessControl" ], + "throwing": true, "funcSelfKind": "NonMutating" }, { @@ -3811,9 +3950,10 @@ "declAttributes": [ "AccessControl" ], - "superclassUsr": "s:14DouShouQiModel6PlayerC", + "superclassUsr": "s:14DouShouQiModel8IAPlayerC", "inheritsConvenienceInitializers": true, "superclassNames": [ + "DouShouQiModel.IAPlayer", "DouShouQiModel.Player" ] }, @@ -5716,6 +5856,78 @@ } ] }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "IAPlayer", + "printedName": "IAPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.IAPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "IAPlayer", + "printedName": "DouShouQiModel.IAPlayer", + "usr": "s:14DouShouQiModel8IAPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel8IAPlayerC", + "mangledName": "$s14DouShouQiModel8IAPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, { "kind": "Import", "name": "Foundation", @@ -6549,8 +6761,8 @@ } ], "declKind": "Var", - "usr": "s:14DouShouQiModel4GameV5boardAA5BoardVvp", - "mangledName": "$s14DouShouQiModel4GameV5boardAA5BoardVvp", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvp", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvp", "moduleName": "DouShouQiModel", "declAttributes": [ "HasStorage", @@ -6572,8 +6784,8 @@ } ], "declKind": "Accessor", - "usr": "s:14DouShouQiModel4GameV5boardAA5BoardVvg", - "mangledName": "$s14DouShouQiModel4GameV5boardAA5BoardVvg", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvg", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvg", "moduleName": "DouShouQiModel", "implicit": true, "accessorKind": "get" @@ -6593,8 +6805,8 @@ } ], "declKind": "Var", - "usr": "s:14DouShouQiModel4GameV5rulesAA5Rules_pvp", - "mangledName": "$s14DouShouQiModel4GameV5rulesAA5Rules_pvp", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvp", "moduleName": "DouShouQiModel", "declAttributes": [ "HasStorage", @@ -6616,8 +6828,8 @@ } ], "declKind": "Accessor", - "usr": "s:14DouShouQiModel4GameV5rulesAA5Rules_pvg", - "mangledName": "$s14DouShouQiModel4GameV5rulesAA5Rules_pvg", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvg", "moduleName": "DouShouQiModel", "implicit": true, "accessorKind": "get" @@ -6651,10 +6863,11 @@ } ], "declKind": "Var", - "usr": "s:14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvp", - "mangledName": "$s14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvp", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", "moduleName": "DouShouQiModel", "declAttributes": [ + "Final", "HasStorage", "AccessControl" ], @@ -6688,10 +6901,13 @@ } ], "declKind": "Accessor", - "usr": "s:14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvg", - "mangledName": "$s14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvg", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", "moduleName": "DouShouQiModel", "implicit": true, + "declAttributes": [ + "Final" + ], "accessorKind": "get" } ] @@ -6705,7 +6921,7 @@ "kind": "TypeNominal", "name": "Game", "printedName": "DouShouQiModel.Game", - "usr": "s:14DouShouQiModel4GameV" + "usr": "s:14DouShouQiModel4GameC" }, { "kind": "TypeNominal", @@ -6727,8 +6943,8 @@ } ], "declKind": "Constructor", - "usr": "s:14DouShouQiModel4GameV9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", - "mangledName": "$s14DouShouQiModel4GameV9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "usr": "s:14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", "moduleName": "DouShouQiModel", "declAttributes": [ "AccessControl" @@ -6745,7 +6961,7 @@ "kind": "TypeNominal", "name": "Game", "printedName": "DouShouQiModel.Game", - "usr": "s:14DouShouQiModel4GameV" + "usr": "s:14DouShouQiModel4GameC" }, { "kind": "TypeNominal", @@ -6773,11 +6989,12 @@ } ], "declKind": "Constructor", - "usr": "s:14DouShouQiModel4GameV9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", - "mangledName": "$s14DouShouQiModel4GameV9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "usr": "s:14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", "moduleName": "DouShouQiModel", "declAttributes": [ - "AccessControl" + "AccessControl", + "RawDocComment" ], "throwing": true, "init_kind": "Designated" @@ -6812,14 +7029,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV03addE15StartedListeneryyyAA5BoardVcF", - "mangledName": "$s14DouShouQiModel4GameV03addE15StartedListeneryyyAA5BoardVcF", + "usr": "s:14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "mangledName": "$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -6834,7 +7050,7 @@ { "kind": "TypeFunc", "name": "Function", - "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) -> ()", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) async throws -> ()", "children": [ { "kind": "TypeNominal", @@ -6864,14 +7080,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtcF", - "mangledName": "$s14DouShouQiModel4GameV25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtcF", + "usr": "s:14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "mangledName": "$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -6897,20 +7112,19 @@ "kind": "TypeNominal", "name": "Game", "printedName": "DouShouQiModel.Game", - "usr": "s:14DouShouQiModel4GameV" + "usr": "s:14DouShouQiModel4GameC" } ] } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV03addE15ChangedListeneryyyACYacF", - "mangledName": "$s14DouShouQiModel4GameV03addE15ChangedListeneryyyACYacF", + "usr": "s:14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "mangledName": "$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -6969,14 +7183,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", - "mangledName": "$s14DouShouQiModel4GameV03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "usr": "s:14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "mangledName": "$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -7027,14 +7240,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", - "mangledName": "$s14DouShouQiModel4GameV30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "usr": "s:14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "mangledName": "$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -7091,14 +7303,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", - "mangledName": "$s14DouShouQiModel4GameV31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "usr": "s:14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "mangledName": "$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -7130,14 +7341,156 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV23addBoardChangedListeneryyyAA0G0VcF", - "mangledName": "$s14DouShouQiModel4GameV23addBoardChangedListeneryyyAA0G0VcF", + "usr": "s:14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "mangledName": "$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPieceRemovedListener", + "printedName": "addPieceRemovedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "mangledName": "$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "onPlayed", + "printedName": "onPlayed(with:from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "mangledName": "$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "isOver", + "printedName": "isOver", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC6isOverSbvp", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC6isOverSbvg", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] }, { "kind": "Function", @@ -7151,20 +7504,19 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV5startyyYaKF", - "mangledName": "$s14DouShouQiModel4GameV5startyyYaKF", + "usr": "s:14DouShouQiModel4GameC5startyyYaKF", + "mangledName": "$s14DouShouQiModel4GameC5startyyYaKF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], "throwing": true, - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" } ], - "declKind": "Struct", - "usr": "s:14DouShouQiModel4GameV", - "mangledName": "$s14DouShouQiModel4GameV", + "declKind": "Class", + "usr": "s:14DouShouQiModel4GameC", + "mangledName": "$s14DouShouQiModel4GameC", "moduleName": "DouShouQiModel", "declAttributes": [ "AccessControl", @@ -7176,996 +7528,1017 @@ }, "ConstValues": [ { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", "offset": 81, - "length": 2, - "value": "10" + "length": 1, + "value": "9" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 112, + "offset": 111, "length": 1, "value": "7" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 149, + "offset": 148, "length": 1, "value": "3" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 3231, + "offset": 3048, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 3271, + "offset": 3088, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 4124, + "offset": 3941, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Dictionary", - "offset": 4468, + "offset": 4285, "length": 3, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 4658, + "offset": 4475, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 4700, + "offset": 4517, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 4748, + "offset": 4565, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 5150, + "offset": 4967, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 6352, + "offset": 6169, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 6372, + "offset": 6189, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 6412, + "offset": 6229, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 9868, + "offset": 9685, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 10769, + "offset": 10586, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11089, + "offset": 10906, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11196, + "offset": 11013, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 11353, + "offset": 11170, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11371, + "offset": 11188, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11463, + "offset": 11280, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11508, + "offset": 11325, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11616, + "offset": 11433, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11660, + "offset": 11477, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11752, + "offset": 11569, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11815, + "offset": 11632, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11923, + "offset": 11740, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 12449, + "offset": 12266, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12490, + "offset": 12307, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12502, + "offset": 12319, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12509, + "offset": 12326, "length": 2, "value": "-1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12886, + "offset": 12703, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12897, + "offset": 12714, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12904, + "offset": 12721, "length": 2, "value": "-1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 13269, + "offset": 13086, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 13647, + "offset": 13464, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 15780, + "offset": 15597, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 15887, + "offset": 15704, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 15911, + "offset": 15728, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 16028, + "offset": 15845, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 16052, + "offset": 15869, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 16232, + "offset": 16049, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 16332, + "offset": 16149, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 16762, + "offset": 16579, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 16767, + "offset": 16584, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Dictionary", - "offset": 17131, + "offset": 16948, "length": 3, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 17187, + "offset": 17004, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 122, "length": 81, "value": "\"\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 147, "length": 4, "value": "\"ø\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 152, "length": 2, "value": "\" on \"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 167, "length": 1, "value": "\", \"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 202, "length": 1, "value": "\"\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 89, "length": 1, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 119, "length": 1, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2067, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2107, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2267, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2277, "length": 1, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2419, "length": 1, "value": "4" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2429, "length": 1, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2964, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 3004, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Array", "offset": 3773, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 3793, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 3833, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 4182, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 4292, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Array", "offset": 4531, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Array", "offset": 4639, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4773, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4782, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4800, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4809, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4925, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 5013, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 6962, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 7077, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 7105, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 7230, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 7258, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 7350, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Dictionary", "offset": 8072, "length": 3, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Array", "offset": 8128, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Player.swift", + "kind": "Array", + "offset": 418, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "BooleanLiteral", "offset": 475, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 570, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 694, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 981, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 996, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1015, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1049, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1212, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1278, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1548, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1579, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", - "offset": 1965, + "offset": 1979, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", - "offset": 1996, + "offset": 2010, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Piece.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", "kind": "StringLiteral", "offset": 122, "length": 40, "value": "\"[\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Piece.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", "kind": "StringLiteral", "offset": 150, "length": 1, "value": "\":\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Piece.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", "kind": "StringLiteral", "offset": 160, "length": 1, "value": "\"]\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Owner.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", "kind": "StringLiteral", "offset": 183, "length": 3, "value": "\"x\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Owner.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", "kind": "StringLiteral", "offset": 229, "length": 3, "value": "\"1\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Owner.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", "kind": "StringLiteral", "offset": 275, "length": 3, "value": "\"2\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 616, "length": 87, "value": "\"\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 625, "length": 1, "value": "\": [\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 640, "length": 1, "value": "\",\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 656, "length": 1, "value": "\"] -> [\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 679, "length": 1, "value": "\", \"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 701, "length": 1, "value": "\"]\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 60, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 63, "length": 3, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 68, "length": 3, "value": "3" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 73, "length": 4, "value": "4" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 79, "length": 7, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 88, "length": 5, "value": "6" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 95, "length": 4, "value": "7" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 101, "length": 8, "value": "8" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 60, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 63, "length": 3, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 68, "length": 3, "value": "3" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 73, "length": 4, "value": "4" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 79, "length": 7, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 88, "length": 5, "value": "6" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 95, "length": 4, "value": "7" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 101, "length": 8, "value": "8" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 60, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 63, "length": 3, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 68, "length": 3, "value": "3" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 73, "length": 4, "value": "4" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 79, "length": 7, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 88, "length": 5, "value": "6" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 95, "length": 4, "value": "7" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 101, "length": 8, "value": "8" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "StringLiteral", - "offset": 514, + "offset": 513, "length": 55, "value": "\"The ids of players are not .player1 and then .player2\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "StringLiteral", - "offset": 982, + "offset": 1483, "length": 55, "value": "\"The ids of players are not .player1 and then .player2\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 1253, + "offset": 1754, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 1585, + "offset": 2090, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 1966, + "offset": 2582, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 2405, + "offset": 3012, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 2818, + "offset": 3416, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 3238, + "offset": 3827, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 3681, + "offset": 4261, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4580, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 6361, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "BooleanLiteral", - "offset": 4097, + "offset": 7044, "length": 5, "value": "false" } diff --git a/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.private.swiftinterface b/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.private.swiftinterface index 7e38b92..a95eaf4 100644 --- a/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.private.swiftinterface +++ b/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.private.swiftinterface @@ -24,7 +24,7 @@ public enum WinningReason { } public enum BoardResult : Swift.Equatable { case unknown - case ok + case ok(piece: DouShouQiModel.Piece?) case failed(reason: DouShouQiModel.BoardFailingReason) public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool } @@ -39,8 +39,13 @@ public enum BoardFailingReason { @_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) - override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif @objc deinit } public struct ClassicRules : DouShouQiModel.Rules { @@ -108,14 +113,24 @@ public class Player { final public let name: Swift.String final public let id: DouShouQiModel.Owner public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) - public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif @objc deinit } public enum GameError : Swift.Error { case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard } -@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.Player { - override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) @objc deinit } @@ -181,6 +196,10 @@ public enum Owner { get } } +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} public struct Move : Swift.CustomStringConvertible, Swift.Equatable { public let owner: DouShouQiModel.Owner public let rowOrigin: Swift.Int @@ -201,28 +220,38 @@ public enum Animal : Swift.Int { get } } -public struct Game { +public class Game { public var board: DouShouQiModel.Board { get } public var rules: any DouShouQiModel.Rules { get } - public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws - public mutating func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) - public mutating func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) -> Swift.Void) + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif #if compiler(>=5.3) && $AsyncAwait - public mutating func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) #endif - public mutating func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) - public mutating func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) - public mutating func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) - public mutating func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) #if compiler(>=5.3) && $AsyncAwait - public mutating func start() async throws + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit } extension DouShouQiModel.WinningReason : Swift.Equatable {} extension DouShouQiModel.WinningReason : Swift.Hashable {} diff --git a/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftinterface b/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftinterface index 7e38b92..a95eaf4 100644 --- a/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftinterface +++ b/DouShouQi_App/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftinterface @@ -24,7 +24,7 @@ public enum WinningReason { } public enum BoardResult : Swift.Equatable { case unknown - case ok + case ok(piece: DouShouQiModel.Piece?) case failed(reason: DouShouQiModel.BoardFailingReason) public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool } @@ -39,8 +39,13 @@ public enum BoardFailingReason { @_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) - override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif @objc deinit } public struct ClassicRules : DouShouQiModel.Rules { @@ -108,14 +113,24 @@ public class Player { final public let name: Swift.String final public let id: DouShouQiModel.Owner public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) - public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif @objc deinit } public enum GameError : Swift.Error { case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard } -@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.Player { - override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) @objc deinit } @@ -181,6 +196,10 @@ public enum Owner { get } } +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} public struct Move : Swift.CustomStringConvertible, Swift.Equatable { public let owner: DouShouQiModel.Owner public let rowOrigin: Swift.Int @@ -201,28 +220,38 @@ public enum Animal : Swift.Int { get } } -public struct Game { +public class Game { public var board: DouShouQiModel.Board { get } public var rules: any DouShouQiModel.Rules { get } - public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws - public mutating func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) - public mutating func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) -> Swift.Void) + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif #if compiler(>=5.3) && $AsyncAwait - public mutating func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) #endif - public mutating func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) - public mutating func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) - public mutating func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) - public mutating func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) #if compiler(>=5.3) && $AsyncAwait - public mutating func start() async throws + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit } extension DouShouQiModel.WinningReason : Swift.Equatable {} extension DouShouQiModel.WinningReason : Swift.Hashable {} diff --git a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/DouShouQiModel b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/DouShouQiModel index a3c1f96..25b6b09 100755 Binary files a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/DouShouQiModel and b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/DouShouQiModel differ diff --git a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json index cd2a367..c28e9fd 100644 --- a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json +++ b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json @@ -534,13 +534,41 @@ { "kind": "TypeFunc", "name": "Function", - "printedName": "(DouShouQiModel.BoardResult.Type) -> DouShouQiModel.BoardResult", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", "children": [ { - "kind": "TypeNominal", - "name": "BoardResult", - "printedName": "DouShouQiModel.BoardResult", - "usr": "s:14DouShouQiModel11BoardResultO" + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ] + } + ] }, { "kind": "TypeNominal", @@ -559,8 +587,8 @@ } ], "declKind": "EnumElement", - "usr": "s:14DouShouQiModel11BoardResultO2okyA2CmF", - "mangledName": "$s14DouShouQiModel11BoardResultO2okyA2CmF", + "usr": "s:14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", "moduleName": "DouShouQiModel" }, { @@ -1074,17 +1102,8 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "DouShouQiModel.Move?", - "children": [ - { - "kind": "TypeNominal", - "name": "Move", - "printedName": "DouShouQiModel.Move", - "usr": "s:14DouShouQiModel4MoveV" - } - ], - "usr": "s:Sq" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", @@ -1100,14 +1119,15 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF", - "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", "moduleName": "DouShouQiModel", "overriding": true, "declAttributes": [ "Override", "AccessControl" ], + "throwing": true, "funcSelfKind": "NonMutating" }, { @@ -1156,6 +1176,41 @@ "AccessControl" ], "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" } ], "declKind": "Class", @@ -3344,6 +3399,103 @@ "name": "chooseMove", "printedName": "chooseMove(in:with:)", "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayedCallbacksListener", + "printedName": "addPlayedCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "mangledName": "$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "notifyPlayed", + "printedName": "notifyPlayed(withMove:andPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, { "kind": "TypeNominal", "name": "Optional", @@ -3360,24 +3512,19 @@ }, { "kind": "TypeNominal", - "name": "Board", - "printedName": "DouShouQiModel.Board", - "usr": "s:14DouShouQiModel5BoardV" - }, - { - "kind": "TypeNominal", - "name": "Rules", - "printedName": "DouShouQiModel.Rules", - "usr": "s:14DouShouQiModel5RulesP" + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" } ], "declKind": "Func", - "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withAA0G0VSgAA5BoardV_AA5Rules_ptF", - "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withAA0G0VSgAA5BoardV_AA5Rules_ptF", + "usr": "s:14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", "moduleName": "DouShouQiModel", "declAttributes": [ "AccessControl" ], + "throwing": true, "funcSelfKind": "NonMutating" } ], @@ -3724,17 +3871,8 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "DouShouQiModel.Move?", - "children": [ - { - "kind": "TypeNominal", - "name": "Move", - "printedName": "DouShouQiModel.Move", - "usr": "s:14DouShouQiModel4MoveV" - } - ], - "usr": "s:Sq" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", @@ -3750,14 +3888,15 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF", - "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF", + "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", "moduleName": "DouShouQiModel", "overriding": true, "declAttributes": [ "Override", "AccessControl" ], + "throwing": true, "funcSelfKind": "NonMutating" }, { @@ -3811,9 +3950,10 @@ "declAttributes": [ "AccessControl" ], - "superclassUsr": "s:14DouShouQiModel6PlayerC", + "superclassUsr": "s:14DouShouQiModel8IAPlayerC", "inheritsConvenienceInitializers": true, "superclassNames": [ + "DouShouQiModel.IAPlayer", "DouShouQiModel.Player" ] }, @@ -5716,6 +5856,78 @@ } ] }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "IAPlayer", + "printedName": "IAPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.IAPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "IAPlayer", + "printedName": "DouShouQiModel.IAPlayer", + "usr": "s:14DouShouQiModel8IAPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel8IAPlayerC", + "mangledName": "$s14DouShouQiModel8IAPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, { "kind": "Import", "name": "Foundation", @@ -6549,8 +6761,8 @@ } ], "declKind": "Var", - "usr": "s:14DouShouQiModel4GameV5boardAA5BoardVvp", - "mangledName": "$s14DouShouQiModel4GameV5boardAA5BoardVvp", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvp", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvp", "moduleName": "DouShouQiModel", "declAttributes": [ "HasStorage", @@ -6572,8 +6784,8 @@ } ], "declKind": "Accessor", - "usr": "s:14DouShouQiModel4GameV5boardAA5BoardVvg", - "mangledName": "$s14DouShouQiModel4GameV5boardAA5BoardVvg", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvg", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvg", "moduleName": "DouShouQiModel", "implicit": true, "accessorKind": "get" @@ -6593,8 +6805,8 @@ } ], "declKind": "Var", - "usr": "s:14DouShouQiModel4GameV5rulesAA5Rules_pvp", - "mangledName": "$s14DouShouQiModel4GameV5rulesAA5Rules_pvp", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvp", "moduleName": "DouShouQiModel", "declAttributes": [ "HasStorage", @@ -6616,8 +6828,8 @@ } ], "declKind": "Accessor", - "usr": "s:14DouShouQiModel4GameV5rulesAA5Rules_pvg", - "mangledName": "$s14DouShouQiModel4GameV5rulesAA5Rules_pvg", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvg", "moduleName": "DouShouQiModel", "implicit": true, "accessorKind": "get" @@ -6651,10 +6863,11 @@ } ], "declKind": "Var", - "usr": "s:14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvp", - "mangledName": "$s14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvp", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", "moduleName": "DouShouQiModel", "declAttributes": [ + "Final", "HasStorage", "AccessControl" ], @@ -6688,10 +6901,13 @@ } ], "declKind": "Accessor", - "usr": "s:14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvg", - "mangledName": "$s14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvg", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", "moduleName": "DouShouQiModel", "implicit": true, + "declAttributes": [ + "Final" + ], "accessorKind": "get" } ] @@ -6705,7 +6921,7 @@ "kind": "TypeNominal", "name": "Game", "printedName": "DouShouQiModel.Game", - "usr": "s:14DouShouQiModel4GameV" + "usr": "s:14DouShouQiModel4GameC" }, { "kind": "TypeNominal", @@ -6727,8 +6943,8 @@ } ], "declKind": "Constructor", - "usr": "s:14DouShouQiModel4GameV9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", - "mangledName": "$s14DouShouQiModel4GameV9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "usr": "s:14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", "moduleName": "DouShouQiModel", "declAttributes": [ "AccessControl" @@ -6745,7 +6961,7 @@ "kind": "TypeNominal", "name": "Game", "printedName": "DouShouQiModel.Game", - "usr": "s:14DouShouQiModel4GameV" + "usr": "s:14DouShouQiModel4GameC" }, { "kind": "TypeNominal", @@ -6773,11 +6989,12 @@ } ], "declKind": "Constructor", - "usr": "s:14DouShouQiModel4GameV9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", - "mangledName": "$s14DouShouQiModel4GameV9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "usr": "s:14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", "moduleName": "DouShouQiModel", "declAttributes": [ - "AccessControl" + "AccessControl", + "RawDocComment" ], "throwing": true, "init_kind": "Designated" @@ -6812,14 +7029,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV03addE15StartedListeneryyyAA5BoardVcF", - "mangledName": "$s14DouShouQiModel4GameV03addE15StartedListeneryyyAA5BoardVcF", + "usr": "s:14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "mangledName": "$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -6834,7 +7050,7 @@ { "kind": "TypeFunc", "name": "Function", - "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) -> ()", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) async throws -> ()", "children": [ { "kind": "TypeNominal", @@ -6864,14 +7080,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtcF", - "mangledName": "$s14DouShouQiModel4GameV25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtcF", + "usr": "s:14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "mangledName": "$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -6897,20 +7112,19 @@ "kind": "TypeNominal", "name": "Game", "printedName": "DouShouQiModel.Game", - "usr": "s:14DouShouQiModel4GameV" + "usr": "s:14DouShouQiModel4GameC" } ] } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV03addE15ChangedListeneryyyACYacF", - "mangledName": "$s14DouShouQiModel4GameV03addE15ChangedListeneryyyACYacF", + "usr": "s:14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "mangledName": "$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -6969,14 +7183,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", - "mangledName": "$s14DouShouQiModel4GameV03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "usr": "s:14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "mangledName": "$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -7027,14 +7240,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", - "mangledName": "$s14DouShouQiModel4GameV30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "usr": "s:14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "mangledName": "$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -7091,14 +7303,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", - "mangledName": "$s14DouShouQiModel4GameV31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "usr": "s:14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "mangledName": "$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -7130,14 +7341,156 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV23addBoardChangedListeneryyyAA0G0VcF", - "mangledName": "$s14DouShouQiModel4GameV23addBoardChangedListeneryyyAA0G0VcF", + "usr": "s:14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "mangledName": "$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPieceRemovedListener", + "printedName": "addPieceRemovedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "mangledName": "$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "onPlayed", + "printedName": "onPlayed(with:from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "mangledName": "$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "isOver", + "printedName": "isOver", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC6isOverSbvp", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC6isOverSbvg", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] }, { "kind": "Function", @@ -7151,20 +7504,19 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV5startyyYaKF", - "mangledName": "$s14DouShouQiModel4GameV5startyyYaKF", + "usr": "s:14DouShouQiModel4GameC5startyyYaKF", + "mangledName": "$s14DouShouQiModel4GameC5startyyYaKF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], "throwing": true, - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" } ], - "declKind": "Struct", - "usr": "s:14DouShouQiModel4GameV", - "mangledName": "$s14DouShouQiModel4GameV", + "declKind": "Class", + "usr": "s:14DouShouQiModel4GameC", + "mangledName": "$s14DouShouQiModel4GameC", "moduleName": "DouShouQiModel", "declAttributes": [ "AccessControl", @@ -7176,996 +7528,1017 @@ }, "ConstValues": [ { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", "offset": 81, - "length": 2, - "value": "10" + "length": 1, + "value": "9" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 112, + "offset": 111, "length": 1, "value": "7" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 149, + "offset": 148, "length": 1, "value": "3" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 3231, + "offset": 3048, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 3271, + "offset": 3088, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 4124, + "offset": 3941, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Dictionary", - "offset": 4468, + "offset": 4285, "length": 3, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 4658, + "offset": 4475, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 4700, + "offset": 4517, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 4748, + "offset": 4565, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 5150, + "offset": 4967, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 6352, + "offset": 6169, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 6372, + "offset": 6189, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 6412, + "offset": 6229, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 9868, + "offset": 9685, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 10769, + "offset": 10586, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11089, + "offset": 10906, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11196, + "offset": 11013, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 11353, + "offset": 11170, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11371, + "offset": 11188, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11463, + "offset": 11280, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11508, + "offset": 11325, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11616, + "offset": 11433, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11660, + "offset": 11477, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11752, + "offset": 11569, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11815, + "offset": 11632, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11923, + "offset": 11740, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 12449, + "offset": 12266, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12490, + "offset": 12307, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12502, + "offset": 12319, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12509, + "offset": 12326, "length": 2, "value": "-1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12886, + "offset": 12703, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12897, + "offset": 12714, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12904, + "offset": 12721, "length": 2, "value": "-1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 13269, + "offset": 13086, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 13647, + "offset": 13464, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 15780, + "offset": 15597, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 15887, + "offset": 15704, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 15911, + "offset": 15728, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 16028, + "offset": 15845, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 16052, + "offset": 15869, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 16232, + "offset": 16049, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 16332, + "offset": 16149, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 16762, + "offset": 16579, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 16767, + "offset": 16584, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Dictionary", - "offset": 17131, + "offset": 16948, "length": 3, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 17187, + "offset": 17004, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 122, "length": 81, "value": "\"\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 147, "length": 4, "value": "\"ø\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 152, "length": 2, "value": "\" on \"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 167, "length": 1, "value": "\", \"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 202, "length": 1, "value": "\"\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 89, "length": 1, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 119, "length": 1, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2067, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2107, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2267, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2277, "length": 1, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2419, "length": 1, "value": "4" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2429, "length": 1, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2964, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 3004, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Array", "offset": 3773, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 3793, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 3833, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 4182, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 4292, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Array", "offset": 4531, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Array", "offset": 4639, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4773, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4782, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4800, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4809, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4925, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 5013, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 6962, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 7077, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 7105, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 7230, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 7258, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 7350, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Dictionary", "offset": 8072, "length": 3, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Array", "offset": 8128, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Player.swift", + "kind": "Array", + "offset": 418, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "BooleanLiteral", "offset": 475, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 570, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 694, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 981, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 996, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1015, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1049, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1212, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1278, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1548, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1579, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", - "offset": 1965, + "offset": 1979, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", - "offset": 1996, + "offset": 2010, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Piece.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", "kind": "StringLiteral", "offset": 122, "length": 40, "value": "\"[\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Piece.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", "kind": "StringLiteral", "offset": 150, "length": 1, "value": "\":\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Piece.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", "kind": "StringLiteral", "offset": 160, "length": 1, "value": "\"]\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Owner.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", "kind": "StringLiteral", "offset": 183, "length": 3, "value": "\"x\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Owner.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", "kind": "StringLiteral", "offset": 229, "length": 3, "value": "\"1\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Owner.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", "kind": "StringLiteral", "offset": 275, "length": 3, "value": "\"2\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 616, "length": 87, "value": "\"\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 625, "length": 1, "value": "\": [\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 640, "length": 1, "value": "\",\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 656, "length": 1, "value": "\"] -> [\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 679, "length": 1, "value": "\", \"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 701, "length": 1, "value": "\"]\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 60, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 63, "length": 3, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 68, "length": 3, "value": "3" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 73, "length": 4, "value": "4" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 79, "length": 7, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 88, "length": 5, "value": "6" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 95, "length": 4, "value": "7" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 101, "length": 8, "value": "8" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 60, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 63, "length": 3, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 68, "length": 3, "value": "3" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 73, "length": 4, "value": "4" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 79, "length": 7, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 88, "length": 5, "value": "6" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 95, "length": 4, "value": "7" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 101, "length": 8, "value": "8" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 60, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 63, "length": 3, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 68, "length": 3, "value": "3" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 73, "length": 4, "value": "4" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 79, "length": 7, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 88, "length": 5, "value": "6" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 95, "length": 4, "value": "7" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 101, "length": 8, "value": "8" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "StringLiteral", - "offset": 514, + "offset": 513, "length": 55, "value": "\"The ids of players are not .player1 and then .player2\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "StringLiteral", - "offset": 982, + "offset": 1483, "length": 55, "value": "\"The ids of players are not .player1 and then .player2\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 1253, + "offset": 1754, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 1585, + "offset": 2090, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 1966, + "offset": 2582, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 2405, + "offset": 3012, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 2818, + "offset": 3416, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 3238, + "offset": 3827, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 3681, + "offset": 4261, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4580, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 6361, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "BooleanLiteral", - "offset": 4097, + "offset": 7044, "length": 5, "value": "false" } diff --git a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface index e325199..d1cea63 100644 --- a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +++ b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface @@ -24,7 +24,7 @@ public enum WinningReason { } public enum BoardResult : Swift.Equatable { case unknown - case ok + case ok(piece: DouShouQiModel.Piece?) case failed(reason: DouShouQiModel.BoardFailingReason) public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool } @@ -39,8 +39,13 @@ public enum BoardFailingReason { @_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) - override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif @objc deinit } public struct ClassicRules : DouShouQiModel.Rules { @@ -108,14 +113,24 @@ public class Player { final public let name: Swift.String final public let id: DouShouQiModel.Owner public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) - public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif @objc deinit } public enum GameError : Swift.Error { case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard } -@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.Player { - override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) @objc deinit } @@ -181,6 +196,10 @@ public enum Owner { get } } +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} public struct Move : Swift.CustomStringConvertible, Swift.Equatable { public let owner: DouShouQiModel.Owner public let rowOrigin: Swift.Int @@ -201,28 +220,38 @@ public enum Animal : Swift.Int { get } } -public struct Game { +public class Game { public var board: DouShouQiModel.Board { get } public var rules: any DouShouQiModel.Rules { get } - public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws - public mutating func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) - public mutating func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) -> Swift.Void) + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif #if compiler(>=5.3) && $AsyncAwait - public mutating func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) #endif - public mutating func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) - public mutating func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) - public mutating func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) - public mutating func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) #if compiler(>=5.3) && $AsyncAwait - public mutating func start() async throws + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit } extension DouShouQiModel.WinningReason : Swift.Equatable {} extension DouShouQiModel.WinningReason : Swift.Hashable {} diff --git a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface index e325199..d1cea63 100644 --- a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface +++ b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface @@ -24,7 +24,7 @@ public enum WinningReason { } public enum BoardResult : Swift.Equatable { case unknown - case ok + case ok(piece: DouShouQiModel.Piece?) case failed(reason: DouShouQiModel.BoardFailingReason) public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool } @@ -39,8 +39,13 @@ public enum BoardFailingReason { @_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) - override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif @objc deinit } public struct ClassicRules : DouShouQiModel.Rules { @@ -108,14 +113,24 @@ public class Player { final public let name: Swift.String final public let id: DouShouQiModel.Owner public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) - public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif @objc deinit } public enum GameError : Swift.Error { case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard } -@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.Player { - override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) @objc deinit } @@ -181,6 +196,10 @@ public enum Owner { get } } +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} public struct Move : Swift.CustomStringConvertible, Swift.Equatable { public let owner: DouShouQiModel.Owner public let rowOrigin: Swift.Int @@ -201,28 +220,38 @@ public enum Animal : Swift.Int { get } } -public struct Game { +public class Game { public var board: DouShouQiModel.Board { get } public var rules: any DouShouQiModel.Rules { get } - public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws - public mutating func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) - public mutating func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) -> Swift.Void) + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif #if compiler(>=5.3) && $AsyncAwait - public mutating func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) #endif - public mutating func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) - public mutating func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) - public mutating func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) - public mutating func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) #if compiler(>=5.3) && $AsyncAwait - public mutating func start() async throws + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit } extension DouShouQiModel.WinningReason : Swift.Equatable {} extension DouShouQiModel.WinningReason : Swift.Hashable {} diff --git a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json index cd2a367..c28e9fd 100644 --- a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json +++ b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json @@ -534,13 +534,41 @@ { "kind": "TypeFunc", "name": "Function", - "printedName": "(DouShouQiModel.BoardResult.Type) -> DouShouQiModel.BoardResult", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", "children": [ { - "kind": "TypeNominal", - "name": "BoardResult", - "printedName": "DouShouQiModel.BoardResult", - "usr": "s:14DouShouQiModel11BoardResultO" + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ] + } + ] }, { "kind": "TypeNominal", @@ -559,8 +587,8 @@ } ], "declKind": "EnumElement", - "usr": "s:14DouShouQiModel11BoardResultO2okyA2CmF", - "mangledName": "$s14DouShouQiModel11BoardResultO2okyA2CmF", + "usr": "s:14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", "moduleName": "DouShouQiModel" }, { @@ -1074,17 +1102,8 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "DouShouQiModel.Move?", - "children": [ - { - "kind": "TypeNominal", - "name": "Move", - "printedName": "DouShouQiModel.Move", - "usr": "s:14DouShouQiModel4MoveV" - } - ], - "usr": "s:Sq" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", @@ -1100,14 +1119,15 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF", - "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", "moduleName": "DouShouQiModel", "overriding": true, "declAttributes": [ "Override", "AccessControl" ], + "throwing": true, "funcSelfKind": "NonMutating" }, { @@ -1156,6 +1176,41 @@ "AccessControl" ], "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" } ], "declKind": "Class", @@ -3344,6 +3399,103 @@ "name": "chooseMove", "printedName": "chooseMove(in:with:)", "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayedCallbacksListener", + "printedName": "addPlayedCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "mangledName": "$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "notifyPlayed", + "printedName": "notifyPlayed(withMove:andPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, { "kind": "TypeNominal", "name": "Optional", @@ -3360,24 +3512,19 @@ }, { "kind": "TypeNominal", - "name": "Board", - "printedName": "DouShouQiModel.Board", - "usr": "s:14DouShouQiModel5BoardV" - }, - { - "kind": "TypeNominal", - "name": "Rules", - "printedName": "DouShouQiModel.Rules", - "usr": "s:14DouShouQiModel5RulesP" + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" } ], "declKind": "Func", - "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withAA0G0VSgAA5BoardV_AA5Rules_ptF", - "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withAA0G0VSgAA5BoardV_AA5Rules_ptF", + "usr": "s:14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", "moduleName": "DouShouQiModel", "declAttributes": [ "AccessControl" ], + "throwing": true, "funcSelfKind": "NonMutating" } ], @@ -3724,17 +3871,8 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "DouShouQiModel.Move?", - "children": [ - { - "kind": "TypeNominal", - "name": "Move", - "printedName": "DouShouQiModel.Move", - "usr": "s:14DouShouQiModel4MoveV" - } - ], - "usr": "s:Sq" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", @@ -3750,14 +3888,15 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF", - "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF", + "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", "moduleName": "DouShouQiModel", "overriding": true, "declAttributes": [ "Override", "AccessControl" ], + "throwing": true, "funcSelfKind": "NonMutating" }, { @@ -3811,9 +3950,10 @@ "declAttributes": [ "AccessControl" ], - "superclassUsr": "s:14DouShouQiModel6PlayerC", + "superclassUsr": "s:14DouShouQiModel8IAPlayerC", "inheritsConvenienceInitializers": true, "superclassNames": [ + "DouShouQiModel.IAPlayer", "DouShouQiModel.Player" ] }, @@ -5716,6 +5856,78 @@ } ] }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "IAPlayer", + "printedName": "IAPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.IAPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "IAPlayer", + "printedName": "DouShouQiModel.IAPlayer", + "usr": "s:14DouShouQiModel8IAPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel8IAPlayerC", + "mangledName": "$s14DouShouQiModel8IAPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, { "kind": "Import", "name": "Foundation", @@ -6549,8 +6761,8 @@ } ], "declKind": "Var", - "usr": "s:14DouShouQiModel4GameV5boardAA5BoardVvp", - "mangledName": "$s14DouShouQiModel4GameV5boardAA5BoardVvp", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvp", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvp", "moduleName": "DouShouQiModel", "declAttributes": [ "HasStorage", @@ -6572,8 +6784,8 @@ } ], "declKind": "Accessor", - "usr": "s:14DouShouQiModel4GameV5boardAA5BoardVvg", - "mangledName": "$s14DouShouQiModel4GameV5boardAA5BoardVvg", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvg", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvg", "moduleName": "DouShouQiModel", "implicit": true, "accessorKind": "get" @@ -6593,8 +6805,8 @@ } ], "declKind": "Var", - "usr": "s:14DouShouQiModel4GameV5rulesAA5Rules_pvp", - "mangledName": "$s14DouShouQiModel4GameV5rulesAA5Rules_pvp", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvp", "moduleName": "DouShouQiModel", "declAttributes": [ "HasStorage", @@ -6616,8 +6828,8 @@ } ], "declKind": "Accessor", - "usr": "s:14DouShouQiModel4GameV5rulesAA5Rules_pvg", - "mangledName": "$s14DouShouQiModel4GameV5rulesAA5Rules_pvg", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvg", "moduleName": "DouShouQiModel", "implicit": true, "accessorKind": "get" @@ -6651,10 +6863,11 @@ } ], "declKind": "Var", - "usr": "s:14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvp", - "mangledName": "$s14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvp", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", "moduleName": "DouShouQiModel", "declAttributes": [ + "Final", "HasStorage", "AccessControl" ], @@ -6688,10 +6901,13 @@ } ], "declKind": "Accessor", - "usr": "s:14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvg", - "mangledName": "$s14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvg", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", "moduleName": "DouShouQiModel", "implicit": true, + "declAttributes": [ + "Final" + ], "accessorKind": "get" } ] @@ -6705,7 +6921,7 @@ "kind": "TypeNominal", "name": "Game", "printedName": "DouShouQiModel.Game", - "usr": "s:14DouShouQiModel4GameV" + "usr": "s:14DouShouQiModel4GameC" }, { "kind": "TypeNominal", @@ -6727,8 +6943,8 @@ } ], "declKind": "Constructor", - "usr": "s:14DouShouQiModel4GameV9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", - "mangledName": "$s14DouShouQiModel4GameV9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "usr": "s:14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", "moduleName": "DouShouQiModel", "declAttributes": [ "AccessControl" @@ -6745,7 +6961,7 @@ "kind": "TypeNominal", "name": "Game", "printedName": "DouShouQiModel.Game", - "usr": "s:14DouShouQiModel4GameV" + "usr": "s:14DouShouQiModel4GameC" }, { "kind": "TypeNominal", @@ -6773,11 +6989,12 @@ } ], "declKind": "Constructor", - "usr": "s:14DouShouQiModel4GameV9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", - "mangledName": "$s14DouShouQiModel4GameV9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "usr": "s:14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", "moduleName": "DouShouQiModel", "declAttributes": [ - "AccessControl" + "AccessControl", + "RawDocComment" ], "throwing": true, "init_kind": "Designated" @@ -6812,14 +7029,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV03addE15StartedListeneryyyAA5BoardVcF", - "mangledName": "$s14DouShouQiModel4GameV03addE15StartedListeneryyyAA5BoardVcF", + "usr": "s:14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "mangledName": "$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -6834,7 +7050,7 @@ { "kind": "TypeFunc", "name": "Function", - "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) -> ()", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) async throws -> ()", "children": [ { "kind": "TypeNominal", @@ -6864,14 +7080,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtcF", - "mangledName": "$s14DouShouQiModel4GameV25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtcF", + "usr": "s:14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "mangledName": "$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -6897,20 +7112,19 @@ "kind": "TypeNominal", "name": "Game", "printedName": "DouShouQiModel.Game", - "usr": "s:14DouShouQiModel4GameV" + "usr": "s:14DouShouQiModel4GameC" } ] } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV03addE15ChangedListeneryyyACYacF", - "mangledName": "$s14DouShouQiModel4GameV03addE15ChangedListeneryyyACYacF", + "usr": "s:14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "mangledName": "$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -6969,14 +7183,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", - "mangledName": "$s14DouShouQiModel4GameV03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "usr": "s:14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "mangledName": "$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -7027,14 +7240,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", - "mangledName": "$s14DouShouQiModel4GameV30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "usr": "s:14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "mangledName": "$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -7091,14 +7303,13 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", - "mangledName": "$s14DouShouQiModel4GameV31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "usr": "s:14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "mangledName": "$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" }, { "kind": "Function", @@ -7130,14 +7341,156 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV23addBoardChangedListeneryyyAA0G0VcF", - "mangledName": "$s14DouShouQiModel4GameV23addBoardChangedListeneryyyAA0G0VcF", + "usr": "s:14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "mangledName": "$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPieceRemovedListener", + "printedName": "addPieceRemovedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "mangledName": "$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "onPlayed", + "printedName": "onPlayed(with:from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "mangledName": "$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "isOver", + "printedName": "isOver", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC6isOverSbvp", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC6isOverSbvg", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] }, { "kind": "Function", @@ -7151,20 +7504,19 @@ } ], "declKind": "Func", - "usr": "s:14DouShouQiModel4GameV5startyyYaKF", - "mangledName": "$s14DouShouQiModel4GameV5startyyYaKF", + "usr": "s:14DouShouQiModel4GameC5startyyYaKF", + "mangledName": "$s14DouShouQiModel4GameC5startyyYaKF", "moduleName": "DouShouQiModel", "declAttributes": [ - "Mutating", "AccessControl" ], "throwing": true, - "funcSelfKind": "Mutating" + "funcSelfKind": "NonMutating" } ], - "declKind": "Struct", - "usr": "s:14DouShouQiModel4GameV", - "mangledName": "$s14DouShouQiModel4GameV", + "declKind": "Class", + "usr": "s:14DouShouQiModel4GameC", + "mangledName": "$s14DouShouQiModel4GameC", "moduleName": "DouShouQiModel", "declAttributes": [ "AccessControl", @@ -7176,996 +7528,1017 @@ }, "ConstValues": [ { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", "offset": 81, - "length": 2, - "value": "10" + "length": 1, + "value": "9" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 112, + "offset": 111, "length": 1, "value": "7" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 149, + "offset": 148, "length": 1, "value": "3" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 3231, + "offset": 3048, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 3271, + "offset": 3088, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 4124, + "offset": 3941, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Dictionary", - "offset": 4468, + "offset": 4285, "length": 3, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 4658, + "offset": 4475, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 4700, + "offset": 4517, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 4748, + "offset": 4565, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 5150, + "offset": 4967, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 6352, + "offset": 6169, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 6372, + "offset": 6189, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 6412, + "offset": 6229, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 9868, + "offset": 9685, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 10769, + "offset": 10586, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11089, + "offset": 10906, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11196, + "offset": 11013, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 11353, + "offset": 11170, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11371, + "offset": 11188, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11463, + "offset": 11280, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11508, + "offset": 11325, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11616, + "offset": 11433, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11660, + "offset": 11477, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11752, + "offset": 11569, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11815, + "offset": 11632, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 11923, + "offset": 11740, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 12449, + "offset": 12266, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12490, + "offset": 12307, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12502, + "offset": 12319, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12509, + "offset": 12326, "length": 2, "value": "-1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12886, + "offset": 12703, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12897, + "offset": 12714, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 12904, + "offset": 12721, "length": 2, "value": "-1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 13269, + "offset": 13086, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 13647, + "offset": 13464, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 15780, + "offset": 15597, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 15887, + "offset": 15704, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 15911, + "offset": 15728, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 16028, + "offset": 15845, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 16052, + "offset": 15869, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 16232, + "offset": 16049, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "BooleanLiteral", - "offset": 16332, + "offset": 16149, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 16762, + "offset": 16579, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "IntegerLiteral", - "offset": 16767, + "offset": 16584, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Dictionary", - "offset": 17131, + "offset": 16948, "length": 3, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", "kind": "Array", - "offset": 17187, + "offset": 17004, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 122, "length": 81, "value": "\"\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 147, "length": 4, "value": "\"ø\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 152, "length": 2, "value": "\" on \"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 167, "length": 1, "value": "\", \"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", "kind": "StringLiteral", "offset": 202, "length": 1, "value": "\"\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 89, "length": 1, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 119, "length": 1, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2067, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2107, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2267, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2277, "length": 1, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2419, "length": 1, "value": "4" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2429, "length": 1, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 2964, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 3004, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Array", "offset": 3773, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 3793, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 3833, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 4182, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 4292, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Array", "offset": 4531, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Array", "offset": 4639, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4773, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4782, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4800, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4809, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 4925, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 5013, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 6962, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 7077, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 7105, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "IntegerLiteral", "offset": 7230, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 7258, "length": 4, "value": "true" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "BooleanLiteral", "offset": 7350, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Dictionary", "offset": 8072, "length": 3, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", "kind": "Array", "offset": 8128, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Player.swift", + "kind": "Array", + "offset": 418, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "BooleanLiteral", "offset": 475, "length": 5, "value": "false" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 570, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 694, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 981, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 996, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1015, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1049, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1212, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1278, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1548, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", "offset": 1579, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", - "offset": 1965, + "offset": 1979, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", "kind": "IntegerLiteral", - "offset": 1996, + "offset": 2010, "length": 1, "value": "0" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Piece.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", "kind": "StringLiteral", "offset": 122, "length": 40, "value": "\"[\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Piece.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", "kind": "StringLiteral", "offset": 150, "length": 1, "value": "\":\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Piece.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", "kind": "StringLiteral", "offset": 160, "length": 1, "value": "\"]\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Owner.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", "kind": "StringLiteral", "offset": 183, "length": 3, "value": "\"x\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Owner.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", "kind": "StringLiteral", "offset": 229, "length": 3, "value": "\"1\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Owner.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", "kind": "StringLiteral", "offset": 275, "length": 3, "value": "\"2\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 616, "length": 87, "value": "\"\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 625, "length": 1, "value": "\": [\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 640, "length": 1, "value": "\",\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 656, "length": 1, "value": "\"] -> [\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 679, "length": 1, "value": "\", \"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", "kind": "StringLiteral", "offset": 701, "length": 1, "value": "\"]\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 60, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 63, "length": 3, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 68, "length": 3, "value": "3" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 73, "length": 4, "value": "4" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 79, "length": 7, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 88, "length": 5, "value": "6" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 95, "length": 4, "value": "7" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 101, "length": 8, "value": "8" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 60, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 63, "length": 3, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 68, "length": 3, "value": "3" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 73, "length": 4, "value": "4" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 79, "length": 7, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 88, "length": 5, "value": "6" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 95, "length": 4, "value": "7" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 101, "length": 8, "value": "8" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 60, "length": 1, "value": "1" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 63, "length": 3, "value": "2" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 68, "length": 3, "value": "3" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 73, "length": 4, "value": "4" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 79, "length": 7, "value": "5" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 88, "length": 5, "value": "6" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 95, "length": 4, "value": "7" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", "kind": "IntegerLiteral", "offset": 101, "length": 8, "value": "8" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "StringLiteral", - "offset": 514, + "offset": 513, "length": 55, "value": "\"The ids of players are not .player1 and then .player2\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "StringLiteral", - "offset": 982, + "offset": 1483, "length": 55, "value": "\"The ids of players are not .player1 and then .player2\"" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 1253, + "offset": 1754, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 1585, + "offset": 2090, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 1966, + "offset": 2582, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 2405, + "offset": 3012, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 2818, + "offset": 3416, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 3238, + "offset": 3827, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "Array", - "offset": 3681, + "offset": 4261, "length": 2, "value": "[]" }, { - "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift", + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4580, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 6361, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", "kind": "BooleanLiteral", - "offset": 4097, + "offset": 7044, "length": 5, "value": "false" } diff --git a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface index 8f901d4..9404081 100644 --- a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +++ b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface @@ -24,7 +24,7 @@ public enum WinningReason { } public enum BoardResult : Swift.Equatable { case unknown - case ok + case ok(piece: DouShouQiModel.Piece?) case failed(reason: DouShouQiModel.BoardFailingReason) public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool } @@ -39,8 +39,13 @@ public enum BoardFailingReason { @_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) - override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif @objc deinit } public struct ClassicRules : DouShouQiModel.Rules { @@ -108,14 +113,24 @@ public class Player { final public let name: Swift.String final public let id: DouShouQiModel.Owner public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) - public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif @objc deinit } public enum GameError : Swift.Error { case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard } -@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.Player { - override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) @objc deinit } @@ -181,6 +196,10 @@ public enum Owner { get } } +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} public struct Move : Swift.CustomStringConvertible, Swift.Equatable { public let owner: DouShouQiModel.Owner public let rowOrigin: Swift.Int @@ -201,28 +220,38 @@ public enum Animal : Swift.Int { get } } -public struct Game { +public class Game { public var board: DouShouQiModel.Board { get } public var rules: any DouShouQiModel.Rules { get } - public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws - public mutating func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) - public mutating func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) -> Swift.Void) + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif #if compiler(>=5.3) && $AsyncAwait - public mutating func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) #endif - public mutating func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) - public mutating func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) - public mutating func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) - public mutating func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) #if compiler(>=5.3) && $AsyncAwait - public mutating func start() async throws + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit } extension DouShouQiModel.WinningReason : Swift.Equatable {} extension DouShouQiModel.WinningReason : Swift.Hashable {} diff --git a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface index 8f901d4..9404081 100644 --- a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +++ b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface @@ -24,7 +24,7 @@ public enum WinningReason { } public enum BoardResult : Swift.Equatable { case unknown - case ok + case ok(piece: DouShouQiModel.Piece?) case failed(reason: DouShouQiModel.BoardFailingReason) public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool } @@ -39,8 +39,13 @@ public enum BoardFailingReason { @_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) - override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif @objc deinit } public struct ClassicRules : DouShouQiModel.Rules { @@ -108,14 +113,24 @@ public class Player { final public let name: Swift.String final public let id: DouShouQiModel.Owner public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) - public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif @objc deinit } public enum GameError : Swift.Error { case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard } -@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.Player { - override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) -> DouShouQiModel.Move? +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) @objc deinit } @@ -181,6 +196,10 @@ public enum Owner { get } } +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} public struct Move : Swift.CustomStringConvertible, Swift.Equatable { public let owner: DouShouQiModel.Owner public let rowOrigin: Swift.Int @@ -201,28 +220,38 @@ public enum Animal : Swift.Int { get } } -public struct Game { +public class Game { public var board: DouShouQiModel.Board { get } public var rules: any DouShouQiModel.Rules { get } - public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws - public mutating func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) - public mutating func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) -> Swift.Void) + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif #if compiler(>=5.3) && $AsyncAwait - public mutating func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) #endif - public mutating func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) - public mutating func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) - public mutating func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) - public mutating func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) #if compiler(>=5.3) && $AsyncAwait - public mutating func start() async throws + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit } extension DouShouQiModel.WinningReason : Swift.Equatable {} extension DouShouQiModel.WinningReason : Swift.Hashable {} diff --git a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/_CodeSignature/CodeResources b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/_CodeSignature/CodeResources index ee2007f..c34fa55 100644 --- a/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/_CodeSignature/CodeResources +++ b/DouShouQi_App/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/_CodeSignature/CodeResources @@ -18,11 +18,11 @@ Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json - ORHQTNNRc9+IsP4LksefJ/Un4co= + 5wlrw/S604f6EkkdO0sjydo0+Bc= Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface - TrksqYdbCnunTEUAwWwTpaYcpsw= + iWelfKfa40hASjZTv+0MmwJpt14= Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc @@ -30,19 +30,19 @@ Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface - TrksqYdbCnunTEUAwWwTpaYcpsw= + iWelfKfa40hASjZTv+0MmwJpt14= Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftmodule - niSvjNrBHUwlxy9t/BiJgPTMiPg= + hIkz8AGNOjj+boCk29AkmkNg7U4= Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json - ORHQTNNRc9+IsP4LksefJ/Un4co= + 5wlrw/S604f6EkkdO0sjydo0+Bc= Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface - YcS2+5tyo+CmBm6pQDGd5mEiThU= + ulNUxrIsFIWqKNx6spilb7IJVR0= Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc @@ -50,11 +50,11 @@ Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface - YcS2+5tyo+CmBm6pQDGd5mEiThU= + ulNUxrIsFIWqKNx6spilb7IJVR0= Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftmodule - N3Eb6UlFU35CftT5wPZyYa92V5E= + 0ZAcidlUuohX1myhyQosgBBZq1s= Modules/module.modulemap @@ -81,14 +81,14 @@ hash2 - Pt6SWYmHEErGtBh0mEB4VEPht9Iux6dxkyyQGWWhG/Y= + btM982otm47LMNIetdE5JR553fM9PjFPuS8AXm0+EpQ= Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface hash2 - qTNo5hgcTOuf2g689PNLik8dWCGccEAjtekFLXp1wUk= + oe48ffKwbmJhKUMG/td3wfVID9DF4QgJz/dIPJweV5g= Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc @@ -102,28 +102,28 @@ hash2 - qTNo5hgcTOuf2g689PNLik8dWCGccEAjtekFLXp1wUk= + oe48ffKwbmJhKUMG/td3wfVID9DF4QgJz/dIPJweV5g= Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftmodule hash2 - mN4VlJdyDumXrJGI22VAiH/Ul6Oc2C+uCwrh87ZQa7M= + q85NBK13clOQfgVFgVjmL6pWsskBEw+Z45xPFMxL1+E= Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json hash2 - Pt6SWYmHEErGtBh0mEB4VEPht9Iux6dxkyyQGWWhG/Y= + btM982otm47LMNIetdE5JR553fM9PjFPuS8AXm0+EpQ= Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface hash2 - z3xla/MZG9g10flpEIOyL+U5cXaaJ6kKdYGBkiRDkS8= + agKcCCqs9pHq1e94l4ouc5WojSYeRzzGkrHxkw9FZ8c= Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc @@ -137,14 +137,14 @@ hash2 - z3xla/MZG9g10flpEIOyL+U5cXaaJ6kKdYGBkiRDkS8= + agKcCCqs9pHq1e94l4ouc5WojSYeRzzGkrHxkw9FZ8c= Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftmodule hash2 - Qt7bWwgfMeu4WIFkhcpt6CfGKzHwTtpnXsLo3vVFEMI= + 0C4f5rpOmGFG3B9PLb/e4rylk+OdtHUNKJ+aW1e+MCE= Modules/module.modulemap diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/DouShouQiModel b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/DouShouQiModel new file mode 120000 index 0000000..4c7f364 --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/DouShouQiModel @@ -0,0 +1 @@ +Versions/Current/DouShouQiModel \ No newline at end of file diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Headers b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Modules b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Modules new file mode 120000 index 0000000..5736f31 --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Modules @@ -0,0 +1 @@ +Versions/Current/Modules \ No newline at end of file diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Resources b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/DouShouQiModel b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/DouShouQiModel new file mode 100755 index 0000000..fecd509 Binary files /dev/null and b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/DouShouQiModel differ diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Headers/DouShouQiModel-Swift.h b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Headers/DouShouQiModel-Swift.h new file mode 100644 index 0000000..5e14e79 --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Headers/DouShouQiModel-Swift.h @@ -0,0 +1,618 @@ +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +#ifndef DOUSHOUQIMODEL_SWIFT_H +#define DOUSHOUQIMODEL_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#if defined(__arm64e__) && __has_include() +# include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# ifndef __ptrauth_swift_value_witness_function_pointer +# define __ptrauth_swift_value_witness_function_pointer(x) +# endif +# ifndef __ptrauth_swift_class_method_pointer +# define __ptrauth_swift_class_method_pointer(x) +# endif +#pragma clang diagnostic pop +#endif +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +# if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# else +# define SWIFT_RUNTIME_NAME(X) +# endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +# if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# else +# define SWIFT_COMPILE_NAME(X) +# endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +# if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# else +# define SWIFT_METHOD_FAMILY(X) +# endif +#endif +#if !defined(SWIFT_NOESCAPE) +# if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +# else +# define SWIFT_NOESCAPE +# endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +# if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# else +# define SWIFT_RELEASES_ARGUMENT +# endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +# if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# else +# define SWIFT_WARN_UNUSED_RESULT +# endif +#endif +#if !defined(SWIFT_NORETURN) +# if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +# else +# define SWIFT_NORETURN +# endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +# if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +# define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +# define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +# define SWIFT_NOEXCEPT noexcept +#else +# define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +# if __has_attribute(always_inline) +# if __has_attribute(nodebug) +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug)) +# else +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +# endif +# else +# define SWIFT_C_INLINE_THUNK inline +# endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="DouShouQiModel",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +#ifndef DOUSHOUQIMODEL_SWIFT_H +#define DOUSHOUQIMODEL_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#if defined(__arm64e__) && __has_include() +# include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# ifndef __ptrauth_swift_value_witness_function_pointer +# define __ptrauth_swift_value_witness_function_pointer(x) +# endif +# ifndef __ptrauth_swift_class_method_pointer +# define __ptrauth_swift_class_method_pointer(x) +# endif +#pragma clang diagnostic pop +#endif +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +# if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# else +# define SWIFT_RUNTIME_NAME(X) +# endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +# if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# else +# define SWIFT_COMPILE_NAME(X) +# endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +# if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# else +# define SWIFT_METHOD_FAMILY(X) +# endif +#endif +#if !defined(SWIFT_NOESCAPE) +# if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +# else +# define SWIFT_NOESCAPE +# endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +# if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# else +# define SWIFT_RELEASES_ARGUMENT +# endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +# if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# else +# define SWIFT_WARN_UNUSED_RESULT +# endif +#endif +#if !defined(SWIFT_NORETURN) +# if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +# else +# define SWIFT_NORETURN +# endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +# if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +# define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +# define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +# define SWIFT_NOEXCEPT noexcept +#else +# define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +# if __has_attribute(always_inline) +# if __has_attribute(nodebug) +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug)) +# else +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +# endif +# else +# define SWIFT_C_INLINE_THUNK inline +# endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="DouShouQiModel",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#else +#error unsupported Swift architecture +#endif diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Headers/DouShouQiModel.h b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Headers/DouShouQiModel.h new file mode 100644 index 0000000..5bbf06a --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Headers/DouShouQiModel.h @@ -0,0 +1,18 @@ +// +// DouShouQiModel.h +// DouShouQiModel +// +// Created by Marc Chevaldonné on 14/05/2024. +// + +#import + +//! Project version number for DouShouQiModel. +FOUNDATION_EXPORT double DouShouQiModelVersionNumber; + +//! Project version string for DouShouQiModel. +FOUNDATION_EXPORT const unsigned char DouShouQiModelVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.abi.json b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.abi.json new file mode 100644 index 0000000..c28e9fd --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.abi.json @@ -0,0 +1,8546 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "TopLevel", + "printedName": "TopLevel", + "children": [ + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Result", + "printedName": "Result", + "children": [ + { + "kind": "Var", + "name": "notFinished", + "printedName": "notFinished", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO11notFinishedyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO11notFinishedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "even", + "printedName": "even", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO4evenyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO4evenyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "winner", + "printedName": "winner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> (DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "mangledName": "$s14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6ResultO", + "mangledName": "$s14DouShouQiModel6ResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "WinningReason", + "printedName": "WinningReason", + "children": [ + { + "kind": "Var", + "name": "denReached", + "printedName": "denReached", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMorePieces", + "printedName": "noMorePieces", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tooManyOccurences", + "printedName": "tooManyOccurences", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMovesLeft", + "printedName": "noMovesLeft", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel13WinningReasonO", + "mangledName": "$s14DouShouQiModel13WinningReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "BoardResult", + "printedName": "BoardResult", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel11BoardResultO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "ok", + "printedName": "ok", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "failed", + "printedName": "failed", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(reason: DouShouQiModel.BoardFailingReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel11BoardResultO", + "mangledName": "$s14DouShouQiModel11BoardResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "BoardFailingReason", + "printedName": "BoardFailingReason", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "outOfBounds", + "printedName": "outOfBounds", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellNotEmpty", + "printedName": "cellNotEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellEmpty", + "printedName": "cellEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel18BoardFailingReasonO", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "HumanPlayer", + "printedName": "HumanPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:andInputMethod:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "changeInput", + "printedName": "changeInput(input:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel11HumanPlayerC", + "mangledName": "$s14DouShouQiModel11HumanPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "ClassicRules", + "printedName": "ClassicRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesVACycfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel12ClassicRulesV", + "mangledName": "$s14DouShouQiModel12ClassicRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Cell", + "printedName": "Cell", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "cellType", + "printedName": "cellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "initialOwner", + "printedName": "initialOwner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "piece", + "printedName": "piece", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(ofType:ownedBy:withPiece:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "hasDefaultArg": true, + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "mangledName": "$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4CellV", + "mangledName": "$s14DouShouQiModel4CellV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "VerySimpleRules", + "printedName": "VerySimpleRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesVACycfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel15VerySimpleRulesV", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Rules", + "printedName": "Rules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "mangledName": "$s14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "mangledName": "$s14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "mangledName": "$s14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "mangledName": "$s14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "Mutating" + ], + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Protocol", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Player", + "printedName": "Player", + "children": [ + { + "kind": "Var", + "name": "name", + "printedName": "name", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvp", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvg", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "id", + "printedName": "id", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayedCallbacksListener", + "printedName": "addPlayedCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "mangledName": "$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "notifyPlayed", + "printedName": "notifyPlayed(withMove:andPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel6PlayerC", + "mangledName": "$s14DouShouQiModel6PlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "GameError", + "printedName": "GameError", + "children": [ + { + "kind": "Var", + "name": "invalidMove", + "printedName": "invalidMove", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "nextPlayerError", + "printedName": "nextPlayerError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badPlayerId", + "printedName": "badPlayerId", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> (Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(message: Swift.String)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidRules", + "printedName": "invalidRules", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidPlayer", + "printedName": "invalidPlayer", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidGame", + "printedName": "invalidGame", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidBoard", + "printedName": "invalidBoard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "moduleName": "DouShouQiModel" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel9GameErrorO", + "mangledName": "$s14DouShouQiModel9GameErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "RandomPlayer", + "printedName": "RandomPlayer", + "children": [ + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.RandomPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "RandomPlayer", + "printedName": "DouShouQiModel.RandomPlayer", + "usr": "s:14DouShouQiModel12RandomPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel12RandomPlayerC", + "mangledName": "$s14DouShouQiModel12RandomPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel8IAPlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.IAPlayer", + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "CellType", + "printedName": "CellType", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "jungle", + "printedName": "jungle", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO6jungleyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO6jungleyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "water", + "printedName": "water", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO5wateryA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO5wateryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "trap", + "printedName": "trap", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO4trapyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO4trapyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "den", + "printedName": "den", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO3denyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO3denyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "allCases", + "printedName": "allCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivp", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivg", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel8CellTypeO", + "mangledName": "$s14DouShouQiModel8CellTypeO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CaseIterable", + "printedName": "CaseIterable", + "children": [ + { + "kind": "TypeWitness", + "name": "AllCases", + "printedName": "AllCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ] + } + ], + "usr": "s:s12CaseIterableP", + "mangledName": "$ss12CaseIterableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Board", + "printedName": "Board", + "children": [ + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "nbRows", + "printedName": "nbRows", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivp", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivg", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "nbColumns", + "printedName": "nbColumns", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivp", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivg", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "grid", + "printedName": "grid", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withGrid:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Board?", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "mangledName": "$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces(of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "mangledName": "$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces()", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "mangledName": "$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "insert", + "printedName": "insert(piece:atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "mangledName": "$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "removePiece", + "printedName": "removePiece(atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "mangledName": "$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5BoardV", + "mangledName": "$s14DouShouQiModel5BoardV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Piece", + "printedName": "Piece", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "animal", + "printedName": "animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withOwner:andAnimal:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "mangledName": "$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5PieceV", + "mangledName": "$s14DouShouQiModel5PieceV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "InvalidBoardError", + "printedName": "InvalidBoardError", + "children": [ + { + "kind": "Var", + "name": "unknownError", + "printedName": "unknownError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badDimensions", + "printedName": "badDimensions", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbRows: Swift.Int, nbColumns: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badCellType", + "printedName": "badCellType", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "multipleOccurenceOfSamePiece", + "printedName": "multipleOccurenceOfSamePiece", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceWithNoOwner", + "printedName": "pieceWithNoOwner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceNotAllowedOnThisCell", + "printedName": "pieceNotAllowedOnThisCell", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Owner", + "printedName": "Owner", + "children": [ + { + "kind": "Var", + "name": "noOne", + "printedName": "noOne", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO5noOneyA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO5noOneyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player1", + "printedName": "player1", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player1yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player1yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player2", + "printedName": "player2", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player2yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player2yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "simpleDescription", + "printedName": "simpleDescription", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivp", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivg", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel5OwnerO", + "mangledName": "$s14DouShouQiModel5OwnerO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "IAPlayer", + "printedName": "IAPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.IAPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "IAPlayer", + "printedName": "DouShouQiModel.IAPlayer", + "usr": "s:14DouShouQiModel8IAPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel8IAPlayerC", + "mangledName": "$s14DouShouQiModel8IAPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Move", + "printedName": "Move", + "children": [ + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowOrigin", + "printedName": "rowOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnOrigin", + "printedName": "columnOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowDestination", + "printedName": "rowDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnDestination", + "printedName": "columnDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(of:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "mangledName": "$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4MoveV", + "mangledName": "$s14DouShouQiModel4MoveV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Animal", + "printedName": "Animal", + "children": [ + { + "kind": "Var", + "name": "rat", + "printedName": "rat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3ratyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3ratyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cat", + "printedName": "cat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3catyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3catyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "dog", + "printedName": "dog", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3dogyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3dogyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "wolf", + "printedName": "wolf", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4wolfyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4wolfyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "leopard", + "printedName": "leopard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO7leopardyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO7leopardyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tiger", + "printedName": "tiger", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO5tigeryA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO5tigeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "lion", + "printedName": "lion", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4lionyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4lionyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "elephant", + "printedName": "elephant", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO8elephantyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO8elephantyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivp", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivg", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Animal?", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "moduleName": "DouShouQiModel", + "implicit": true, + "init_kind": "Designated" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6AnimalO", + "mangledName": "$s14DouShouQiModel6AnimalO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "enumRawTypeName": "Int", + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", + "children": [ + { + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "usr": "s:SY", + "mangledName": "$sSY" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Game", + "printedName": "Game", + "children": [ + { + "kind": "Var", + "name": "board", + "printedName": "board", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvp", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvg", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rules", + "printedName": "rules", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "players", + "printedName": "players", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withBoard:andRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "addGameStartedListener", + "printedName": "addGameStartedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "mangledName": "$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayerNotifiedListener", + "printedName": "addPlayerNotifiedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "mangledName": "$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameChangedListener", + "printedName": "addGameChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Game) async -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "mangledName": "$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameOverListener", + "printedName": "addGameOverListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "mangledName": "$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addMoveChosenCallbacksListener", + "printedName": "addMoveChosenCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "mangledName": "$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addInvalidMoveCallbacksListener", + "printedName": "addInvalidMoveCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "mangledName": "$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addBoardChangedListener", + "printedName": "addBoardChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "mangledName": "$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPieceRemovedListener", + "printedName": "addPieceRemovedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "mangledName": "$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "onPlayed", + "printedName": "onPlayed(with:from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "mangledName": "$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "isOver", + "printedName": "isOver", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC6isOverSbvp", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC6isOverSbvg", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "start", + "printedName": "start()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC5startyyYaKF", + "mangledName": "$s14DouShouQiModel4GameC5startyyYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel4GameC", + "mangledName": "$s14DouShouQiModel4GameC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ] + } + ], + "json_format_version": 8 + }, + "ConstValues": [ + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 81, + "length": 1, + "value": "9" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 111, + "length": 1, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 148, + "length": 1, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3048, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3088, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 3941, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 4285, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 4475, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4517, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4565, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 4967, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 6169, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6189, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6229, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 9685, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10586, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10906, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 11170, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11188, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11280, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11325, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11433, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11477, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11569, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11632, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11740, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 12266, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12307, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12319, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12326, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12703, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12714, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12721, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13086, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13464, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15597, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15704, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15728, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15845, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15869, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16049, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16149, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16584, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 16948, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 17004, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 81, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 147, + "length": 4, + "value": "\"ø\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 152, + "length": 2, + "value": "\" on \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 167, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 202, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 89, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 119, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2067, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2107, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2267, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2277, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2419, + "length": 1, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2429, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2964, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3004, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 3773, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3793, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3833, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4182, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4292, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4531, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4639, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4773, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4782, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4800, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4809, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4925, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 5013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 6962, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7077, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7105, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7230, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7258, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7350, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Dictionary", + "offset": 8072, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 8128, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Player.swift", + "kind": "Array", + "offset": 418, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "BooleanLiteral", + "offset": 475, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 570, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 694, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 981, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 996, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1015, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1049, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1212, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1278, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1548, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1979, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 2010, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 40, + "value": "\"[\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 150, + "length": 1, + "value": "\":\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 160, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 183, + "length": 3, + "value": "\"x\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 229, + "length": 3, + "value": "\"1\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 275, + "length": 3, + "value": "\"2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 616, + "length": 87, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 625, + "length": 1, + "value": "\": [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 640, + "length": 1, + "value": "\",\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 656, + "length": 1, + "value": "\"] -> [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 679, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 701, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 513, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 1483, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 1754, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2090, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2582, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3012, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3416, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3827, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4261, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4580, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 6361, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 7044, + "length": 5, + "value": "false" + } + ] +} \ No newline at end of file diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.private.swiftinterface b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.private.swiftinterface new file mode 100644 index 0000000..012a385 --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.private.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target arm64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.swiftdoc b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.swiftdoc new file mode 100644 index 0000000..532f235 Binary files /dev/null and b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.swiftdoc differ diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.swiftinterface b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.swiftinterface new file mode 100644 index 0000000..012a385 --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/arm64-apple-macos.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target arm64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.abi.json b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.abi.json new file mode 100644 index 0000000..c28e9fd --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.abi.json @@ -0,0 +1,8546 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "TopLevel", + "printedName": "TopLevel", + "children": [ + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Result", + "printedName": "Result", + "children": [ + { + "kind": "Var", + "name": "notFinished", + "printedName": "notFinished", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO11notFinishedyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO11notFinishedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "even", + "printedName": "even", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO4evenyA2CmF", + "mangledName": "$s14DouShouQiModel6ResultO4evenyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "winner", + "printedName": "winner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Result.Type) -> (DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Result.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "mangledName": "$s14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6ResultO", + "mangledName": "$s14DouShouQiModel6ResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "WinningReason", + "printedName": "WinningReason", + "children": [ + { + "kind": "Var", + "name": "denReached", + "printedName": "denReached", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO10denReachedyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMorePieces", + "printedName": "noMorePieces", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tooManyOccurences", + "printedName": "tooManyOccurences", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "noMovesLeft", + "printedName": "noMovesLeft", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.WinningReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "mangledName": "$s14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + }, + { + "kind": "TypeNominal", + "name": "WinningReason", + "printedName": "DouShouQiModel.WinningReason", + "usr": "s:14DouShouQiModel13WinningReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel13WinningReasonO", + "mangledName": "$s14DouShouQiModel13WinningReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "BoardResult", + "printedName": "BoardResult", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel11BoardResultO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "ok", + "printedName": "ok", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece?) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO2okyAcA5PieceVSg_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "failed", + "printedName": "failed", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(reason: DouShouQiModel.BoardFailingReason)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "mangledName": "$s14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel11BoardResultO", + "mangledName": "$s14DouShouQiModel11BoardResultO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "BoardFailingReason", + "printedName": "BoardFailingReason", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "outOfBounds", + "printedName": "outOfBounds", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellNotEmpty", + "printedName": "cellNotEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cellEmpty", + "printedName": "cellEmpty", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.BoardFailingReason.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + }, + { + "kind": "TypeNominal", + "name": "BoardFailingReason", + "printedName": "DouShouQiModel.BoardFailingReason", + "usr": "s:14DouShouQiModel18BoardFailingReasonO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel18BoardFailingReasonO", + "mangledName": "$s14DouShouQiModel18BoardFailingReasonO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "HumanPlayer", + "printedName": "HumanPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:andInputMethod:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.HumanPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "changeInput", + "printedName": "changeInput(input:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "HumanPlayer", + "printedName": "DouShouQiModel.HumanPlayer", + "usr": "s:14DouShouQiModel11HumanPlayerC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMoveyyAA0H0VSgYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel11HumanPlayerC", + "mangledName": "$s14DouShouQiModel11HumanPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "ClassicRules", + "printedName": "ClassicRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesVACycfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "ClassicRules", + "printedName": "DouShouQiModel.ClassicRules", + "usr": "s:14DouShouQiModel12ClassicRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel12ClassicRulesV", + "mangledName": "$s14DouShouQiModel12ClassicRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Cell", + "printedName": "Cell", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "cellType", + "printedName": "cellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "initialOwner", + "printedName": "initialOwner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "piece", + "printedName": "piece", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(ofType:ownedBy:withPiece:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "hasDefaultArg": true, + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Piece?", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "mangledName": "$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4CellV", + "mangledName": "$s14DouShouQiModel4CellV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "VerySimpleRules", + "printedName": "VerySimpleRules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ", + "moduleName": "DouShouQiModel", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesVACycfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesVACycfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(occurences:historic:)", + "children": [ + { + "kind": "TypeNominal", + "name": "VerySimpleRules", + "printedName": "DouShouQiModel.VerySimpleRules", + "usr": "s:14DouShouQiModel15VerySimpleRulesV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel15VerySimpleRulesV", + "mangledName": "$s14DouShouQiModel15VerySimpleRulesV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Rules", + "printedName": "Rules", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Rules", + "printedName": "Rules", + "children": [ + { + "kind": "Function", + "name": "createBoard", + "printedName": "createBoard()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "mangledName": "$s14DouShouQiModel5RulesP11createBoardAA0G0VyFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "checkBoard", + "printedName": "checkBoard(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "mangledName": "$s14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "static": true, + "protocolReq": true, + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getNextPlayer", + "printedName": "getNextPlayer()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "mangledName": "$s14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getMoves", + "printedName": "getMoves(in:of:fromRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isMoveValid", + "printedName": "isMoveValid(onBoard:withMove:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "isGameOver", + "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Bool, DouShouQiModel.Result)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + } + ] + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "mangledName": "$s14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "playedMove", + "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "mangledName": "$s14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "Mutating" + ], + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "occurences", + "printedName": "occurences", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Board : Swift.Int]", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "historic", + "printedName": "historic", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvp", + "moduleName": "DouShouQiModel", + "protocolReq": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Move]", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvg", + "moduleName": "DouShouQiModel", + "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>", + "sugared_genericSig": "", + "protocolReq": true, + "reqNewWitnessTableEntry": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Protocol", + "usr": "s:14DouShouQiModel5RulesP", + "mangledName": "$s14DouShouQiModel5RulesP", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Player", + "printedName": "Player", + "children": [ + { + "kind": "Var", + "name": "name", + "printedName": "name", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvp", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC4nameSSvg", + "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "id", + "printedName": "id", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "Final", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayedCallbacksListener", + "printedName": "addPlayedCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Move?, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "mangledName": "$s14DouShouQiModel6PlayerC26addPlayedCallbacksListeneryyyAA4MoveVSg_ACtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "notifyPlayed", + "printedName": "notifyPlayed(withMove:andPlayer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "mangledName": "$s14DouShouQiModel6PlayerC12notifyPlayed8withMove03andE0yAA0I0VSg_ACtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel6PlayerC", + "mangledName": "$s14DouShouQiModel6PlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "GameError", + "printedName": "GameError", + "children": [ + { + "kind": "Var", + "name": "invalidMove", + "printedName": "invalidMove", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11invalidMoveyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "nextPlayerError", + "printedName": "nextPlayerError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badPlayerId", + "printedName": "badPlayerId", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> (Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(message: Swift.String)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "mangledName": "$s14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidRules", + "printedName": "invalidRules", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidRulesyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidPlayer", + "printedName": "invalidPlayer", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidGame", + "printedName": "invalidGame", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO07invalidE0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "invalidBoard", + "printedName": "invalidBoard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.GameError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "GameError", + "printedName": "DouShouQiModel.GameError", + "usr": "s:14DouShouQiModel9GameErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "mangledName": "$s14DouShouQiModel9GameErrorO12invalidBoardyA2CmF", + "moduleName": "DouShouQiModel" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel9GameErrorO", + "mangledName": "$s14DouShouQiModel9GameErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "RandomPlayer", + "printedName": "RandomPlayer", + "children": [ + { + "kind": "Function", + "name": "chooseMove", + "printedName": "chooseMove(in:with:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withyAA5BoardV_AA5Rules_ptYaKF", + "moduleName": "DouShouQiModel", + "overriding": true, + "declAttributes": [ + "Override", + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.RandomPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "RandomPlayer", + "printedName": "DouShouQiModel.RandomPlayer", + "usr": "s:14DouShouQiModel12RandomPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel12RandomPlayerC", + "mangledName": "$s14DouShouQiModel12RandomPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel8IAPlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.IAPlayer", + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "CellType", + "printedName": "CellType", + "children": [ + { + "kind": "Var", + "name": "unknown", + "printedName": "unknown", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO7unknownyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO7unknownyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "jungle", + "printedName": "jungle", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO6jungleyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO6jungleyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "water", + "printedName": "water", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO5wateryA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO5wateryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "trap", + "printedName": "trap", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO4trapyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO4trapyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "den", + "printedName": "den", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.CellType.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel8CellTypeO3denyA2CmF", + "mangledName": "$s14DouShouQiModel8CellTypeO3denyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "allCases", + "printedName": "allCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvpZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivp", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivg", + "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel8CellTypeO", + "mangledName": "$s14DouShouQiModel8CellTypeO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CaseIterable", + "printedName": "CaseIterable", + "children": [ + { + "kind": "TypeWitness", + "name": "AllCases", + "printedName": "AllCases", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.CellType]", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + } + ], + "usr": "s:Sa" + } + ] + } + ], + "usr": "s:s12CaseIterableP", + "mangledName": "$ss12CaseIterableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Board", + "printedName": "Board", + "children": [ + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "nbRows", + "printedName": "nbRows", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivp", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV6nbRowsSivg", + "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "nbColumns", + "printedName": "nbColumns", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivp", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivg", + "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "grid", + "printedName": "grid", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withGrid:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Board?", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[[DouShouQiModel.Cell]]", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[DouShouQiModel.Cell]", + "children": [ + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ], + "usr": "s:Sa" + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "mangledName": "$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces(of:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "mangledName": "$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "countPieces", + "printedName": "countPieces()", + "children": [ + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "mangledName": "$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "insert", + "printedName": "insert(piece:atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "mangledName": "$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "removePiece", + "printedName": "removePiece(atRow:andColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "BoardResult", + "printedName": "DouShouQiModel.BoardResult", + "usr": "s:14DouShouQiModel11BoardResultO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "mangledName": "$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5BoardV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5BoardV", + "mangledName": "$s14DouShouQiModel5BoardV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Piece", + "printedName": "Piece", + "children": [ + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "animal", + "printedName": "animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withOwner:andAnimal:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "mangledName": "$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivp", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5PieceV9hashValueSivg", + "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel5PieceV", + "mangledName": "$s14DouShouQiModel5PieceV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "InvalidBoardError", + "printedName": "InvalidBoardError", + "children": [ + { + "kind": "Var", + "name": "unknownError", + "printedName": "unknownError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badDimensions", + "printedName": "badDimensions", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(nbRows: Swift.Int, nbColumns: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "badCellType", + "printedName": "badCellType", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int)", + "children": [ + { + "kind": "TypeNominal", + "name": "CellType", + "printedName": "DouShouQiModel.CellType", + "usr": "s:14DouShouQiModel8CellTypeO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "multipleOccurenceOfSamePiece", + "printedName": "multipleOccurenceOfSamePiece", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceWithNoOwner", + "printedName": "pieceWithNoOwner", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "pieceNotAllowedOnThisCell", + "printedName": "pieceNotAllowedOnThisCell", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell)", + "children": [ + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + }, + { + "kind": "TypeNominal", + "name": "Cell", + "printedName": "DouShouQiModel.Cell", + "usr": "s:14DouShouQiModel4CellV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.InvalidBoardError.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + }, + { + "kind": "TypeNominal", + "name": "InvalidBoardError", + "printedName": "DouShouQiModel.InvalidBoardError", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel17InvalidBoardErrorO", + "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Owner", + "printedName": "Owner", + "children": [ + { + "kind": "Var", + "name": "noOne", + "printedName": "noOne", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO5noOneyA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO5noOneyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player1", + "printedName": "player1", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player1yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player1yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "player2", + "printedName": "player2", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Owner.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel5OwnerO7player2yA2CmF", + "mangledName": "$s14DouShouQiModel5OwnerO7player2yA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "simpleDescription", + "printedName": "simpleDescription", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "hashValue", + "printedName": "hashValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivp", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel5OwnerO9hashValueSivg", + "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "hash", + "printedName": "hash(into:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Hasher", + "printedName": "Swift.Hasher", + "paramValueOwnership": "InOut", + "usr": "s:s6HasherV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "mangledName": "$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF", + "moduleName": "DouShouQiModel", + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel5OwnerO", + "mangledName": "$s14DouShouQiModel5OwnerO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "IAPlayer", + "printedName": "IAPlayer", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withName:andId:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.IAPlayer?", + "children": [ + { + "kind": "TypeNominal", + "name": "IAPlayer", + "printedName": "DouShouQiModel.IAPlayer", + "usr": "s:14DouShouQiModel8IAPlayerC" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "mangledName": "$s14DouShouQiModel8IAPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc", + "moduleName": "DouShouQiModel", + "overriding": true, + "implicit": true, + "declAttributes": [ + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel8IAPlayerC", + "mangledName": "$s14DouShouQiModel8IAPlayerC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "superclassUsr": "s:14DouShouQiModel6PlayerC", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "DouShouQiModel.Player" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Move", + "printedName": "Move", + "children": [ + { + "kind": "Var", + "name": "owner", + "printedName": "owner", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowOrigin", + "printedName": "rowOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV9rowOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnOrigin", + "printedName": "columnOrigin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivp", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV12columnOriginSivg", + "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rowDestination", + "printedName": "rowDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "columnDestination", + "printedName": "columnDestination", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivp", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivg", + "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(of:fromRow:andFromColumn:toRow:andToColumn:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "mangledName": "$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvp", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4MoveV11descriptionSSvg", + "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvg", + "moduleName": "DouShouQiModel", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "mangledName": "$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ", + "moduleName": "DouShouQiModel", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:14DouShouQiModel4MoveV", + "mangledName": "$s14DouShouQiModel4MoveV", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Animal", + "printedName": "Animal", + "children": [ + { + "kind": "Var", + "name": "rat", + "printedName": "rat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3ratyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3ratyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "cat", + "printedName": "cat", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3catyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3catyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "dog", + "printedName": "dog", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO3dogyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO3dogyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "wolf", + "printedName": "wolf", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4wolfyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4wolfyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "leopard", + "printedName": "leopard", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO7leopardyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO7leopardyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "tiger", + "printedName": "tiger", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO5tigeryA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO5tigeryA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "lion", + "printedName": "lion", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO4lionyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO4lionyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "elephant", + "printedName": "elephant", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "DouShouQiModel.Animal.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:14DouShouQiModel6AnimalO8elephantyA2CmF", + "mangledName": "$s14DouShouQiModel6AnimalO8elephantyA2CmF", + "moduleName": "DouShouQiModel" + }, + { + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivp", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivp", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueSivg", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Animal?", + "children": [ + { + "kind": "TypeNominal", + "name": "Animal", + "printedName": "DouShouQiModel.Animal", + "usr": "s:14DouShouQiModel6AnimalO" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "mangledName": "$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc", + "moduleName": "DouShouQiModel", + "implicit": true, + "init_kind": "Designated" + } + ], + "declKind": "Enum", + "usr": "s:14DouShouQiModel6AnimalO", + "mangledName": "$s14DouShouQiModel6AnimalO", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "enumRawTypeName": "Int", + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", + "children": [ + { + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "usr": "s:SY", + "mangledName": "$sSY" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "DouShouQiModel" + }, + { + "kind": "TypeDecl", + "name": "Game", + "printedName": "Game", + "children": [ + { + "kind": "Var", + "name": "board", + "printedName": "board", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvp", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5boardAA5BoardVvg", + "mangledName": "$s14DouShouQiModel4GameC5boardAA5BoardVvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "rules", + "printedName": "rules", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "mangledName": "$s14DouShouQiModel4GameC5rulesAA5Rules_pvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "players", + "printedName": "players", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]", + "children": [ + { + "kind": "TypeNominal", + "name": "Owner", + "printedName": "DouShouQiModel.Owner", + "usr": "s:14DouShouQiModel5OwnerO" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "mangledName": "$s14DouShouQiModel4GameC7playersSDyAA5OwnerOAA6PlayerCGvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(withBoard:andRules:andPlayer1:andPlayer2:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Rules", + "printedName": "DouShouQiModel.Rules", + "usr": "s:14DouShouQiModel5RulesP" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Constructor", + "usr": "s:14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "mangledName": "$s14DouShouQiModel4GameC9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "addGameStartedListener", + "printedName": "addGameStartedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "mangledName": "$s14DouShouQiModel4GameC03addE15StartedListeneryyyAA5BoardVcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPlayerNotifiedListener", + "printedName": "addPlayerNotifiedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) async throws -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "mangledName": "$s14DouShouQiModel4GameC25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtYaKcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameChangedListener", + "printedName": "addGameChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Game) async -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Game", + "printedName": "DouShouQiModel.Game", + "usr": "s:14DouShouQiModel4GameC" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "mangledName": "$s14DouShouQiModel4GameC03addE15ChangedListeneryyyACYacF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addGameOverListener", + "printedName": "addGameOverListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Result", + "printedName": "DouShouQiModel.Result", + "usr": "s:14DouShouQiModel6ResultO" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Player?", + "children": [ + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "usr": "s:Sq" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "mangledName": "$s14DouShouQiModel4GameC03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addMoveChosenCallbacksListener", + "printedName": "addMoveChosenCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "mangledName": "$s14DouShouQiModel4GameC30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addInvalidMoveCallbacksListener", + "printedName": "addInvalidMoveCallbacksListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool)", + "children": [ + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + }, + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "mangledName": "$s14DouShouQiModel4GameC31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addBoardChangedListener", + "printedName": "addBoardChangedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(DouShouQiModel.Board) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Board", + "printedName": "DouShouQiModel.Board", + "usr": "s:14DouShouQiModel5BoardV" + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "mangledName": "$s14DouShouQiModel4GameC23addBoardChangedListeneryyyAA0G0VcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addPieceRemovedListener", + "printedName": "addPieceRemovedListener(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.Int, Swift.Int, DouShouQiModel.Piece)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Piece", + "printedName": "DouShouQiModel.Piece", + "usr": "s:14DouShouQiModel5PieceV" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "mangledName": "$s14DouShouQiModel4GameC23addPieceRemovedListeneryyySi_SiAA0G0VtcF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "onPlayed", + "printedName": "onPlayed(with:from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "DouShouQiModel.Move?", + "children": [ + { + "kind": "TypeNominal", + "name": "Move", + "printedName": "DouShouQiModel.Move", + "usr": "s:14DouShouQiModel4MoveV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Player", + "printedName": "DouShouQiModel.Player", + "usr": "s:14DouShouQiModel6PlayerC" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "mangledName": "$s14DouShouQiModel4GameC8onPlayed4with4fromyAA4MoveVSg_AA6PlayerCtYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "isOver", + "printedName": "isOver", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:14DouShouQiModel4GameC6isOverSbvp", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvp", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "SetterAccess", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:14DouShouQiModel4GameC6isOverSbvg", + "mangledName": "$s14DouShouQiModel4GameC6isOverSbvg", + "moduleName": "DouShouQiModel", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "start", + "printedName": "start()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Func", + "usr": "s:14DouShouQiModel4GameC5startyyYaKF", + "mangledName": "$s14DouShouQiModel4GameC5startyyYaKF", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:14DouShouQiModel4GameC", + "mangledName": "$s14DouShouQiModel4GameC", + "moduleName": "DouShouQiModel", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ] + } + ], + "json_format_version": 8 + }, + "ConstValues": [ + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 81, + "length": 1, + "value": "9" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 111, + "length": 1, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 148, + "length": 1, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3048, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 3088, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 3941, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 4285, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 4475, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4517, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 4565, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 4967, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 6169, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6189, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 6229, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 9685, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10586, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 10906, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 11170, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11188, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11280, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11325, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11433, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11477, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11569, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11632, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 11740, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 12266, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12307, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12319, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12326, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12703, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12714, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 12721, + "length": 2, + "value": "-1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13086, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 13464, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15597, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15704, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15728, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 15845, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 15869, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16049, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "BooleanLiteral", + "offset": 16149, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "IntegerLiteral", + "offset": 16584, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Dictionary", + "offset": 16948, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/ClassicRules.swift", + "kind": "Array", + "offset": 17004, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 81, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 147, + "length": 4, + "value": "\"ø\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 152, + "length": 2, + "value": "\" on \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 167, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Cell.swift", + "kind": "StringLiteral", + "offset": 202, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 89, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 119, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2067, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2107, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2267, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2277, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2419, + "length": 1, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2429, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 2964, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3004, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 3773, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3793, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 3833, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4182, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 4292, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4531, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 4639, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4773, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4782, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4800, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4809, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 4925, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 5013, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 6962, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7077, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7105, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "IntegerLiteral", + "offset": 7230, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7258, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "BooleanLiteral", + "offset": 7350, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Dictionary", + "offset": 8072, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/VerySimpleRules.swift", + "kind": "Array", + "offset": 8128, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Player.swift", + "kind": "Array", + "offset": 418, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "BooleanLiteral", + "offset": 475, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 570, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 694, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 981, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 996, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1015, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1049, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1212, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1278, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1548, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1579, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 1979, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Board.swift", + "kind": "IntegerLiteral", + "offset": 2010, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 122, + "length": 40, + "value": "\"[\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 150, + "length": 1, + "value": "\":\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Piece.swift", + "kind": "StringLiteral", + "offset": 160, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 183, + "length": 3, + "value": "\"x\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 229, + "length": 3, + "value": "\"1\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Owner.swift", + "kind": "StringLiteral", + "offset": 275, + "length": 3, + "value": "\"2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 616, + "length": 87, + "value": "\"\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 625, + "length": 1, + "value": "\": [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 640, + "length": 1, + "value": "\",\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 656, + "length": 1, + "value": "\"] -> [\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 679, + "length": 1, + "value": "\", \"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Move.swift", + "kind": "StringLiteral", + "offset": 701, + "length": 1, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 60, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 63, + "length": 3, + "value": "2" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 68, + "length": 3, + "value": "3" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 73, + "length": 4, + "value": "4" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 79, + "length": 7, + "value": "5" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 88, + "length": 5, + "value": "6" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 95, + "length": 4, + "value": "7" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Animal.swift", + "kind": "IntegerLiteral", + "offset": 101, + "length": 8, + "value": "8" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 513, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "StringLiteral", + "offset": 1483, + "length": 55, + "value": "\"The ids of players are not .player1 and then .player2\"" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 1754, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2090, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 2582, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3012, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3416, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 3827, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4261, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "Array", + "offset": 4580, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 6361, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift", + "kind": "BooleanLiteral", + "offset": 7044, + "length": 5, + "value": "false" + } + ] +} \ No newline at end of file diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.private.swiftinterface b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.private.swiftinterface new file mode 100644 index 0000000..dc0a8ad --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.private.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target x86_64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.swiftdoc b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.swiftdoc new file mode 100644 index 0000000..769dad0 Binary files /dev/null and b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.swiftdoc differ diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.swiftinterface b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.swiftinterface new file mode 100644 index 0000000..dc0a8ad --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/DouShouQiModel.swiftmodule/x86_64-apple-macos.swiftinterface @@ -0,0 +1,266 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +// swift-module-flags: -target x86_64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name DouShouQiModel +// swift-module-flags-ignorable: -enable-bare-slash-regex +@_exported import DouShouQiModel +import Foundation +import Swift +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum Result : Swift.Equatable { + case notFinished + case even + case winner(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason) + public static func == (a: DouShouQiModel.Result, b: DouShouQiModel.Result) -> Swift.Bool +} +public enum WinningReason { + case denReached, noMorePieces, tooManyOccurences, noMovesLeft + public static func == (a: DouShouQiModel.WinningReason, b: DouShouQiModel.WinningReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +public enum BoardResult : Swift.Equatable { + case unknown + case ok(piece: DouShouQiModel.Piece?) + case failed(reason: DouShouQiModel.BoardFailingReason) + public static func == (a: DouShouQiModel.BoardResult, b: DouShouQiModel.BoardResult) -> Swift.Bool +} +public enum BoardFailingReason { + case unknown, outOfBounds, cellNotEmpty, cellEmpty + public static func == (a: DouShouQiModel.BoardFailingReason, b: DouShouQiModel.BoardFailingReason) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class HumanPlayer : DouShouQiModel.Player { + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner, andInputMethod input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + public func changeInput(input: @escaping (_ hp: DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(_ move: DouShouQiModel.Move?) async throws + #endif + @objc deinit +} +public struct ClassicRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public struct Cell : Swift.CustomStringConvertible, Swift.Equatable { + public var description: Swift.String { + get + } + public let cellType: DouShouQiModel.CellType + public let initialOwner: DouShouQiModel.Owner + public var piece: DouShouQiModel.Piece? + public init(ofType cellType: DouShouQiModel.CellType, ownedBy initialOwner: DouShouQiModel.Owner = .noOne, withPiece piece: DouShouQiModel.Piece? = nil) + public static func == (a: DouShouQiModel.Cell, b: DouShouQiModel.Cell) -> Swift.Bool +} +public struct VerySimpleRules : DouShouQiModel.Rules { + public static func createBoard() -> DouShouQiModel.Board + public static func checkBoard(_ board: DouShouQiModel.Board) throws + public init() + public init(occurences: [DouShouQiModel.Board : Swift.Int], historic: [DouShouQiModel.Move]) + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + public func getMoves(in board: DouShouQiModel.Board, of owner: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + public func isMoveValid(onBoard board: DouShouQiModel.Board, fromRow originRow: Swift.Int, andFromColumn originColumn: Swift.Int, toRow destinationRow: Swift.Int, andToColumn destinationColumn: Swift.Int) -> Swift.Bool + public func isMoveValid(onBoard board: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + public func isGameOver(withBoard board: DouShouQiModel.Board, andLastRowPlayed lastRow: Swift.Int, andLastColumnPlayer lastColumn: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + public mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + public func getNextPlayer() -> DouShouQiModel.Owner + public var occurences: [DouShouQiModel.Board : Swift.Int] { + get + } + public var historic: [DouShouQiModel.Move] { + get + } +} +public protocol Rules { + static func createBoard() -> DouShouQiModel.Board + static func checkBoard(_ board: DouShouQiModel.Board) throws + func getNextPlayer() -> DouShouQiModel.Owner + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner) -> [DouShouQiModel.Move] + func getMoves(in board: DouShouQiModel.Board, of: DouShouQiModel.Owner, fromRow row: Swift.Int, andColumn col: Swift.Int) -> [DouShouQiModel.Move] + func isMoveValid(onBoard: DouShouQiModel.Board, fromRow: Swift.Int, andFromColumn: Swift.Int, toRow: Swift.Int, andToColumn: Swift.Int) -> Swift.Bool + func isMoveValid(onBoard: DouShouQiModel.Board, withMove move: DouShouQiModel.Move) -> Swift.Bool + func isGameOver(withBoard: DouShouQiModel.Board, andLastRowPlayed: Swift.Int, andLastColumnPlayer: Swift.Int) -> (Swift.Bool, DouShouQiModel.Result) + mutating func playedMove(_ move: DouShouQiModel.Move, onStartingBoard board: DouShouQiModel.Board, andResultingBoard resultingBoard: DouShouQiModel.Board) throws + var occurences: [DouShouQiModel.Board : Swift.Int] { get } + var historic: [DouShouQiModel.Move] { get } +} +public class Player { + final public let name: Swift.String + final public let id: DouShouQiModel.Owner + public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + #if compiler(>=5.3) && $AsyncAwait + public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addPlayedCallbacksListener(_ listener: @escaping (DouShouQiModel.Move?, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func notifyPlayed(withMove move: DouShouQiModel.Move?, andPlayer player: DouShouQiModel.Player) async throws + #endif + @objc deinit +} +public enum GameError : Swift.Error { + case invalidMove, nextPlayerError, badPlayerId(message: Swift.String), invalidRules, invalidPlayer, invalidGame, invalidBoard +} +@_inheritsConvenienceInitializers public class RandomPlayer : DouShouQiModel.IAPlayer { + #if compiler(>=5.3) && $AsyncAwait + override public func chooseMove(in board: DouShouQiModel.Board, with rules: any DouShouQiModel.Rules) async throws + #endif + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public enum CellType : Swift.CaseIterable { + case unknown, jungle, water, trap, den + public static func == (a: DouShouQiModel.CellType, b: DouShouQiModel.CellType) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public typealias AllCases = [DouShouQiModel.CellType] + public static var allCases: [DouShouQiModel.CellType] { + get + } + public var hashValue: Swift.Int { + get + } +} +public struct Board : Swift.Hashable { + public func hash(into hasher: inout Swift.Hasher) + public let nbRows: Swift.Int + public let nbColumns: Swift.Int + public var grid: [[DouShouQiModel.Cell]] { + get + } + public init?(withGrid grid: [[DouShouQiModel.Cell]]) + public func countPieces(of owner: DouShouQiModel.Owner) -> Swift.Int + public func countPieces() -> (nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int) + public mutating func insert(piece: DouShouQiModel.Piece, atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public mutating func removePiece(atRow row: Swift.Int, andColumn column: Swift.Int) -> DouShouQiModel.BoardResult + public static func == (a: DouShouQiModel.Board, b: DouShouQiModel.Board) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public struct Piece : Swift.CustomStringConvertible, Swift.Hashable { + public var description: Swift.String { + get + } + public let owner: DouShouQiModel.Owner + public let animal: DouShouQiModel.Animal + public init(withOwner owner: DouShouQiModel.Owner, andAnimal animal: DouShouQiModel.Animal) + public func hash(into hasher: inout Swift.Hasher) + public static func == (a: DouShouQiModel.Piece, b: DouShouQiModel.Piece) -> Swift.Bool + public var hashValue: Swift.Int { + get + } +} +public enum InvalidBoardError : Swift.Error, Swift.Equatable { + case unknownError + case badDimensions(nbRows: Swift.Int, nbColumns: Swift.Int) + case badCellType(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int) + case multipleOccurenceOfSamePiece(piece: DouShouQiModel.Piece) + case pieceWithNoOwner(piece: DouShouQiModel.Piece) + case pieceNotAllowedOnThisCell(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell) + public static func == (a: DouShouQiModel.InvalidBoardError, b: DouShouQiModel.InvalidBoardError) -> Swift.Bool +} +public enum Owner { + case noOne, player1, player2 + public var simpleDescription: Swift.String { + get + } + public static func == (a: DouShouQiModel.Owner, b: DouShouQiModel.Owner) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { + get + } +} +@_inheritsConvenienceInitializers public class IAPlayer : DouShouQiModel.Player { + override public init?(withName name: Swift.String, andId id: DouShouQiModel.Owner) + @objc deinit +} +public struct Move : Swift.CustomStringConvertible, Swift.Equatable { + public let owner: DouShouQiModel.Owner + public let rowOrigin: Swift.Int + public let columnOrigin: Swift.Int + public let rowDestination: Swift.Int + public let columnDestination: Swift.Int + public init(of owner: DouShouQiModel.Owner, fromRow rowOrigin: Swift.Int, andFromColumn colOrigin: Swift.Int, toRow rowDest: Swift.Int, andToColumn colDest: Swift.Int) + public var description: Swift.String { + get + } + public static func == (a: DouShouQiModel.Move, b: DouShouQiModel.Move) -> Swift.Bool +} +public enum Animal : Swift.Int { + case rat, cat, dog, wolf, leopard, tiger, lion, elephant + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +public class Game { + public var board: DouShouQiModel.Board { + get + } + public var rules: any DouShouQiModel.Rules { + get + } + final public let players: [DouShouQiModel.Owner : DouShouQiModel.Player] + public init(withRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public init(withBoard board: DouShouQiModel.Board, andRules rules: any DouShouQiModel.Rules, andPlayer1 player1: DouShouQiModel.Player, andPlayer2 player2: DouShouQiModel.Player) throws + public func addGameStartedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func addPlayerNotifiedListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Player) async throws -> Swift.Void) + #endif + #if compiler(>=5.3) && $AsyncAwait + public func addGameChangedListener(_ listener: @escaping (DouShouQiModel.Game) async -> Swift.Void) + #endif + public func addGameOverListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> Swift.Void) + public func addMoveChosenCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> Swift.Void) + public func addInvalidMoveCallbacksListener(_ listener: @escaping (DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> Swift.Void) + public func addBoardChangedListener(_ listener: @escaping (DouShouQiModel.Board) -> Swift.Void) + public func addPieceRemovedListener(_ listener: @escaping (Swift.Int, Swift.Int, DouShouQiModel.Piece) -> Swift.Void) + #if compiler(>=5.3) && $AsyncAwait + public func onPlayed(with move: DouShouQiModel.Move?, from player: DouShouQiModel.Player) async throws + #endif + public var isOver: Swift.Bool { + get + } + #if compiler(>=5.3) && $AsyncAwait + public func start() async throws + #endif + @objc deinit +} +extension DouShouQiModel.WinningReason : Swift.Equatable {} +extension DouShouQiModel.WinningReason : Swift.Hashable {} +extension DouShouQiModel.BoardFailingReason : Swift.Equatable {} +extension DouShouQiModel.BoardFailingReason : Swift.Hashable {} +extension DouShouQiModel.CellType : Swift.Equatable {} +extension DouShouQiModel.CellType : Swift.Hashable {} +extension DouShouQiModel.Owner : Swift.Equatable {} +extension DouShouQiModel.Owner : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.Equatable {} +extension DouShouQiModel.Animal : Swift.Hashable {} +extension DouShouQiModel.Animal : Swift.RawRepresentable {} diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/module.modulemap b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/module.modulemap new file mode 100644 index 0000000..e7aa10a --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Modules/module.modulemap @@ -0,0 +1,11 @@ +framework module DouShouQiModel { + umbrella header "DouShouQiModel.h" + export * + + module * { export * } +} + +module DouShouQiModel.Swift { + header "DouShouQiModel-Swift.h" + requires objc +} diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Resources/Info.plist b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000..7d58232 --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,46 @@ + + + + + BuildMachineOSBuild + 23E224 + CFBundleDevelopmentRegion + en + CFBundleExecutable + DouShouQiModel + CFBundleIdentifier + fr.uca.iut.DouShouQiModel + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + DouShouQiModel + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + + DTPlatformName + macosx + DTPlatformVersion + 14.2 + DTSDKBuild + 23C53 + DTSDKName + macosx14.2 + DTXcode + 1520 + DTXcodeBuild + 15C500b + LSMinimumSystemVersion + 13.0 + + diff --git a/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/Current b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/DouShouQi_App/DSQ.xcframework/macos-arm64_x86_64/DouShouQiModel.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/DouShouQi_App/DouShouQi_App.xcodeproj/project.pbxproj b/DouShouQi_App/DouShouQi_App.xcodeproj/project.pbxproj index 2d3a99b..07e1de1 100644 --- a/DouShouQi_App/DouShouQi_App.xcodeproj/project.pbxproj +++ b/DouShouQi_App/DouShouQi_App.xcodeproj/project.pbxproj @@ -7,8 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 643AB6932BFCEFD00018DA73 /* GameResumeFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 643AB6922BFCEFD00018DA73 /* GameResumeFrame.swift */; }; - 643AB69B2BFCFB5C0018DA73 /* HistoricView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 643AB69A2BFCFB5C0018DA73 /* HistoricView.swift */; }; 6458345C2BF5F92300E18321 /* DouShouQi_AppApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6458345B2BF5F92300E18321 /* DouShouQi_AppApp.swift */; }; 6458345E2BF5F92300E18321 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6458345D2BF5F92300E18321 /* ContentView.swift */; }; 645834602BF5F92500E18321 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6458345F2BF5F92500E18321 /* Assets.xcassets */; }; @@ -16,37 +14,49 @@ 6458346D2BF5F92600E18321 /* DouShouQi_AppTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6458346C2BF5F92600E18321 /* DouShouQi_AppTests.swift */; }; 645834772BF5F92600E18321 /* DouShouQi_AppUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645834762BF5F92600E18321 /* DouShouQi_AppUITests.swift */; }; 645834792BF5F92600E18321 /* DouShouQi_AppUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645834782BF5F92600E18321 /* DouShouQi_AppUITestsLaunchTests.swift */; }; - 645834882BF5FEA000E18321 /* DSQ.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 645834872BF5FEA000E18321 /* DSQ.xcframework */; }; - 645834892BF5FEA000E18321 /* DSQ.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 645834872BF5FEA000E18321 /* DSQ.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 645B4C202BFCCA0500FD658A /* PlayerResumeFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645B4C1F2BFCCA0500FD658A /* PlayerResumeFrame.swift */; }; + 645B4C202BFCCA0500FD658A /* PlayerScoreResumeFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645B4C1F2BFCCA0500FD658A /* PlayerScoreResumeFrame.swift */; }; 645B4C252BFCD3C600FD658A /* ScoreBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645B4C242BFCD3C600FD658A /* ScoreBoardView.swift */; }; 646FA83E2C072340001466BA /* GameVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 646FA83D2C072340001466BA /* GameVM.swift */; }; 646FA8432C0730D6001466BA /* HistoricVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 646FA8422C0730D6001466BA /* HistoricVM.swift */; }; + 647D565C2BFD0212008D02EA /* PlayerResumeFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 647D565B2BFD0212008D02EA /* PlayerResumeFrame.swift */; }; 6493C1C02C046BF900B5121D /* samurai.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6493C1BF2C046BF900B5121D /* samurai.ttf */; }; 6493C1C22C046E5E00B5121D /* Fonts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6493C1C12C046E5E00B5121D /* Fonts.swift */; }; - 649ABF5B2BF60D78002E8894 /* MainMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649ABF5A2BF60D78002E8894 /* MainMenuView.swift */; }; 649ABF602BF60F2D002E8894 /* MainMenuButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649ABF5F2BF60F2D002E8894 /* MainMenuButton.swift */; }; 649B59A42BF64574002BAE38 /* TitlePageFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59A32BF64574002BAE38 /* TitlePageFrame.swift */; }; 649B59A72BF64BA9002BAE38 /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 649B59A62BF64BA9002BAE38 /* Colors.xcassets */; }; 649B59A92BF64C6A002BAE38 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59A82BF64C6A002BAE38 /* Colors.swift */; }; - 649B59AC2BF64E12002BAE38 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 649B59AB2BF64E12002BAE38 /* Images.xcassets */; }; 649B59AE2BF64EAB002BAE38 /* AppImages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59AD2BF64EAB002BAE38 /* AppImages.swift */; }; 649B59B22BF65392002BAE38 /* TextStyles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59B12BF65392002BAE38 /* TextStyles.swift */; }; 649B59B42BF653E1002BAE38 /* ViewTitleTextStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59B32BF653E1002BAE38 /* ViewTitleTextStyle.swift */; }; 64D992722C06281B002ACBC6 /* SystemIcons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D992712C06281B002ACBC6 /* SystemIcons.swift */; }; 64E00BE32C08B1D500E90544 /* SettingsVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64E00BE22C08B1D500E90544 /* SettingsVM.swift */; }; + 64FC4D692C09C78000D08B8B /* SelectPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64FC4D682C09C78000D08B8B /* SelectPlayerView.swift */; }; + 64FC4D6B2C09C7C900D08B8B /* SelectPlayerButtonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64FC4D6A2C09C7C900D08B8B /* SelectPlayerButtonView.swift */; }; + EC0540C02C08A1040032E9EF /* HistoricView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0540BF2C08A1040032E9EF /* HistoricView.swift */; }; + EC0540C42C08A13E0032E9EF /* GameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0540C32C08A13E0032E9EF /* GameView.swift */; }; + EC0540C62C08A1F40032E9EF /* TopGameBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0540C52C08A1F40032E9EF /* TopGameBoard.swift */; }; + EC0540CA2C08BD8D0032E9EF /* GameMusic.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC0540C92C08BD8D0032E9EF /* GameMusic.mp3 */; }; EC05BFC42C04C3C4000F7B19 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC05BFC32C04C3C4000F7B19 /* SettingsView.swift */; }; EC05BFC82C04D832000F7B19 /* CustomSwitchButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC05BFC72C04D832000F7B19 /* CustomSwitchButton.swift */; }; - EC62C4F92C0371660048CD0B /* MusicPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C4F82C0371660048CD0B /* MusicPlayer.swift */; }; + EC05BFCB2C05F470000F7B19 /* GameScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC05BFCA2C05F470000F7B19 /* GameScene.swift */; }; + EC2DD03B2C0CDE7C00FC55C0 /* DSQ.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = EC2DD03A2C0CDE7C00FC55C0 /* DSQ.xcframework */; }; + EC2DD03F2C0CDF0C00FC55C0 /* MainMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2DD03E2C0CDF0C00FC55C0 /* MainMenuView.swift */; }; + EC3EE4B12C0CD46000710153 /* ButtonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3EE4B02C0CD46000710153 /* ButtonView.swift */; }; + EC3EE4B32C0CD47000710153 /* MainButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3EE4B22C0CD47000710153 /* MainButton.swift */; }; EC62C4FB2C038BD20048CD0B /* PlayersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C4FA2C038BD20048CD0B /* PlayersView.swift */; }; EC62C4FD2C0391D30048CD0B /* PlayerRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C4FC2C0391D30048CD0B /* PlayerRow.swift */; }; EC62C4FF2C0457AD0048CD0B /* TitleScreenMusic.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C4FE2C0457AD0048CD0B /* TitleScreenMusic.mp3 */; }; - EC62C5012C045B590048CD0B /* SoundPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C5002C045B590048CD0B /* SoundPlayer.swift */; }; EC62C5062C045C1A0048CD0B /* TitleScreenButtonSound.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C5052C045C1A0048CD0B /* TitleScreenButtonSound.mp3 */; }; EC62C5092C0467240048CD0B /* SplashScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C5082C0467240048CD0B /* SplashScreenView.swift */; }; EC62C50D2C046D9E0048CD0B /* SplashScreenSound.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C50C2C046D9E0048CD0B /* SplashScreenSound.mp3 */; }; EC62C50F2C05D06A0048CD0B /* AddPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C50E2C05D06A0048CD0B /* AddPlayerView.swift */; }; EC62C5172C0620C00048CD0B /* rap.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C5162C0620C00048CD0B /* rap.mp3 */; }; + EC62C51B2C09D1790048CD0B /* PlayerStatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C51A2C09D1790048CD0B /* PlayerStatView.swift */; }; + EC99D5C12C089F6B00731B62 /* GameResumeFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC99D5C02C089F6B00731B62 /* GameResumeFrame.swift */; }; + ECB6364E2C04628E007CD5E2 /* SpriteMeeple.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB6364D2C04628E007CD5E2 /* SpriteMeeple.swift */; }; + ECB636512C046379007CD5E2 /* MusicPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB636502C046379007CD5E2 /* MusicPlayer.swift */; }; + ECB636532C0463A9007CD5E2 /* SoundPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB636522C0463A9007CD5E2 /* SoundPlayer.swift */; }; + ECB636552C047992007CD5E2 /* Image.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ECB636542C047992007CD5E2 /* Image.xcassets */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -66,23 +76,7 @@ }; /* End PBXContainerItemProxy section */ -/* Begin PBXCopyFilesBuildPhase section */ - 6458348A2BF5FEA000E18321 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 645834892BF5FEA000E18321 /* DSQ.xcframework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ - 643AB6922BFCEFD00018DA73 /* GameResumeFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameResumeFrame.swift; sourceTree = ""; }; - 643AB69A2BFCFB5C0018DA73 /* HistoricView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoricView.swift; sourceTree = ""; }; 645834582BF5F92300E18321 /* DouShouQi_App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DouShouQi_App.app; sourceTree = BUILT_PRODUCTS_DIR; }; 6458345B2BF5F92300E18321 /* DouShouQi_AppApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DouShouQi_AppApp.swift; sourceTree = ""; }; 6458345D2BF5F92300E18321 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; @@ -94,36 +88,49 @@ 645834762BF5F92600E18321 /* DouShouQi_AppUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DouShouQi_AppUITests.swift; sourceTree = ""; }; 645834782BF5F92600E18321 /* DouShouQi_AppUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DouShouQi_AppUITestsLaunchTests.swift; sourceTree = ""; }; 645834852BF5FE1400E18321 /* DouShouQi-App-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "DouShouQi-App-Info.plist"; sourceTree = SOURCE_ROOT; }; - 645834872BF5FEA000E18321 /* DSQ.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = DSQ.xcframework; sourceTree = ""; }; - 645B4C1F2BFCCA0500FD658A /* PlayerResumeFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerResumeFrame.swift; sourceTree = ""; }; + 645B4C1F2BFCCA0500FD658A /* PlayerScoreResumeFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerScoreResumeFrame.swift; sourceTree = ""; }; 645B4C242BFCD3C600FD658A /* ScoreBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScoreBoardView.swift; sourceTree = ""; }; 646FA83D2C072340001466BA /* GameVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameVM.swift; sourceTree = ""; }; 646FA8422C0730D6001466BA /* HistoricVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoricVM.swift; sourceTree = ""; }; + 647D565B2BFD0212008D02EA /* PlayerResumeFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerResumeFrame.swift; sourceTree = ""; }; 6493C1BF2C046BF900B5121D /* samurai.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = samurai.ttf; sourceTree = ""; }; 6493C1C12C046E5E00B5121D /* Fonts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Fonts.swift; sourceTree = ""; }; - 649ABF5A2BF60D78002E8894 /* MainMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuView.swift; sourceTree = ""; }; 649ABF5F2BF60F2D002E8894 /* MainMenuButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuButton.swift; sourceTree = ""; }; 649B59A32BF64574002BAE38 /* TitlePageFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TitlePageFrame.swift; sourceTree = ""; }; 649B59A62BF64BA9002BAE38 /* Colors.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Colors.xcassets; sourceTree = ""; }; 649B59A82BF64C6A002BAE38 /* Colors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = ""; }; - 649B59AB2BF64E12002BAE38 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 649B59AD2BF64EAB002BAE38 /* AppImages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppImages.swift; sourceTree = ""; }; 649B59B12BF65392002BAE38 /* TextStyles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextStyles.swift; sourceTree = ""; }; 649B59B32BF653E1002BAE38 /* ViewTitleTextStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewTitleTextStyle.swift; sourceTree = ""; }; 64D992712C06281B002ACBC6 /* SystemIcons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemIcons.swift; sourceTree = ""; }; 64E00BE22C08B1D500E90544 /* SettingsVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsVM.swift; sourceTree = ""; }; + 64FC4D682C09C78000D08B8B /* SelectPlayerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectPlayerView.swift; sourceTree = ""; }; + 64FC4D6A2C09C7C900D08B8B /* SelectPlayerButtonView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectPlayerButtonView.swift; sourceTree = ""; }; + EC0540BF2C08A1040032E9EF /* HistoricView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HistoricView.swift; sourceTree = ""; }; + EC0540C32C08A13E0032E9EF /* GameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GameView.swift; sourceTree = ""; }; + EC0540C52C08A1F40032E9EF /* TopGameBoard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TopGameBoard.swift; sourceTree = ""; }; + EC0540C92C08BD8D0032E9EF /* GameMusic.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = GameMusic.mp3; sourceTree = ""; }; EC05BFC32C04C3C4000F7B19 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; EC05BFC72C04D832000F7B19 /* CustomSwitchButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSwitchButton.swift; sourceTree = ""; }; - EC62C4F82C0371660048CD0B /* MusicPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicPlayer.swift; sourceTree = ""; }; + EC05BFCA2C05F470000F7B19 /* GameScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameScene.swift; sourceTree = ""; }; + EC2DD03A2C0CDE7C00FC55C0 /* DSQ.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = DSQ.xcframework; path = ../Dependencies/DSQ.xcframework; sourceTree = ""; }; + EC2DD03E2C0CDF0C00FC55C0 /* MainMenuView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainMenuView.swift; sourceTree = ""; }; + EC3EE4B02C0CD46000710153 /* ButtonView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonView.swift; sourceTree = ""; }; + EC3EE4B22C0CD47000710153 /* MainButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainButton.swift; sourceTree = ""; }; EC62C4FA2C038BD20048CD0B /* PlayersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayersView.swift; sourceTree = ""; }; EC62C4FC2C0391D30048CD0B /* PlayerRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerRow.swift; sourceTree = ""; }; EC62C4FE2C0457AD0048CD0B /* TitleScreenMusic.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = TitleScreenMusic.mp3; sourceTree = ""; }; - EC62C5002C045B590048CD0B /* SoundPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoundPlayer.swift; sourceTree = ""; }; EC62C5052C045C1A0048CD0B /* TitleScreenButtonSound.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = TitleScreenButtonSound.mp3; sourceTree = ""; }; EC62C5082C0467240048CD0B /* SplashScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplashScreenView.swift; sourceTree = ""; }; EC62C50C2C046D9E0048CD0B /* SplashScreenSound.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = SplashScreenSound.mp3; sourceTree = ""; }; EC62C50E2C05D06A0048CD0B /* AddPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddPlayerView.swift; sourceTree = ""; }; EC62C5162C0620C00048CD0B /* rap.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = rap.mp3; sourceTree = ""; }; + EC62C51A2C09D1790048CD0B /* PlayerStatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerStatView.swift; sourceTree = ""; }; + EC99D5C02C089F6B00731B62 /* GameResumeFrame.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GameResumeFrame.swift; sourceTree = ""; }; + ECB6364D2C04628E007CD5E2 /* SpriteMeeple.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpriteMeeple.swift; sourceTree = ""; }; + ECB636502C046379007CD5E2 /* MusicPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicPlayer.swift; sourceTree = ""; }; + ECB636522C0463A9007CD5E2 /* SoundPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoundPlayer.swift; sourceTree = ""; }; + ECB636542C047992007CD5E2 /* Image.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Image.xcassets; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -131,21 +138,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 645834882BF5FEA000E18321 /* DSQ.xcframework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 645834652BF5F92600E18321 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 6458346F2BF5F92600E18321 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( + EC2DD03B2C0CDE7C00FC55C0 /* DSQ.xcframework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -155,7 +148,8 @@ 643AB6912BFCEFB70018DA73 /* Game */ = { isa = PBXGroup; children = ( - 643AB6922BFCEFD00018DA73 /* GameResumeFrame.swift */, + EC0540C52C08A1F40032E9EF /* TopGameBoard.swift */, + EC99D5C02C089F6B00731B62 /* GameResumeFrame.swift */, ); path = Game; sourceTree = ""; @@ -163,7 +157,8 @@ 643AB6992BFCFB480018DA73 /* Game */ = { isa = PBXGroup; children = ( - 643AB69A2BFCFB5C0018DA73 /* HistoricView.swift */, + EC0540C32C08A13E0032E9EF /* GameView.swift */, + EC0540BF2C08A1040032E9EF /* HistoricView.swift */, ); path = Game; sourceTree = ""; @@ -174,8 +169,7 @@ 6458345A2BF5F92300E18321 /* DouShouQi_App */, 6458346B2BF5F92600E18321 /* DouShouQi_AppTests */, 645834752BF5F92600E18321 /* DouShouQi_AppUITests */, - 645834592BF5F92300E18321 /* Products */, - 645834862BF5FE9F00E18321 /* Frameworks */, + 64C87E222C09D52600CCD451 /* Frameworks */, ); sourceTree = ""; }; @@ -194,6 +188,7 @@ children = ( 646FA83C2C072284001466BA /* ViewModel */, EC62C5022C045BB90048CD0B /* SoundPlayerClass */, + ECB6364F2C04635D007CD5E2 /* SoundPlayerClass */, 649B59A52BF64B1B002BAE38 /* Assets */, 649ABF5E2BF60ED5002E8894 /* Components */, 649ABF592BF60D13002E8894 /* Views */, @@ -231,20 +226,15 @@ path = DouShouQi_AppUITests; sourceTree = ""; }; - 645834862BF5FE9F00E18321 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 645834872BF5FEA000E18321 /* DSQ.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; 645B4C1C2BFCC95000FD658A /* Player */ = { isa = PBXGroup; children = ( - 645B4C1F2BFCCA0500FD658A /* PlayerResumeFrame.swift */, + 64FC4D6A2C09C7C900D08B8B /* SelectPlayerButtonView.swift */, + 645B4C1F2BFCCA0500FD658A /* PlayerScoreResumeFrame.swift */, + 647D565B2BFD0212008D02EA /* PlayerResumeFrame.swift */, EC62C4FC2C0391D30048CD0B /* PlayerRow.swift */, EC62C50E2C05D06A0048CD0B /* AddPlayerView.swift */, + EC62C51A2C09D1790048CD0B /* PlayerStatView.swift */, ); path = Player; sourceTree = ""; @@ -252,6 +242,7 @@ 645B4C232BFCD39A00FD658A /* Player */ = { isa = PBXGroup; children = ( + 64FC4D682C09C78000D08B8B /* SelectPlayerView.swift */, 645B4C242BFCD3C600FD658A /* ScoreBoardView.swift */, EC62C4FA2C038BD20048CD0B /* PlayersView.swift */, ); @@ -279,7 +270,7 @@ 6493C1BE2C04650200B5121D /* Menu */ = { isa = PBXGroup; children = ( - 649ABF5A2BF60D78002E8894 /* MainMenuView.swift */, + EC2DD03E2C0CDF0C00FC55C0 /* MainMenuView.swift */, EC62C5082C0467240048CD0B /* SplashScreenView.swift */, EC05BFC32C04C3C4000F7B19 /* SettingsView.swift */, ); @@ -299,6 +290,9 @@ 649ABF5E2BF60ED5002E8894 /* Components */ = { isa = PBXGroup; children = ( + EC3EE4B22C0CD47000710153 /* MainButton.swift */, + EC3EE4B02C0CD46000710153 /* ButtonView.swift */, + EC05BFC92C05ECC6000F7B19 /* Scene */, EC05BFC62C04D7C2000F7B19 /* Settings */, 643AB6912BFCEFB70018DA73 /* Game */, 645B4C1C2BFCC95000FD658A /* Player */, @@ -323,9 +317,9 @@ 649B59AA2BF64DF1002BAE38 /* Images */ = { isa = PBXGroup; children = ( - 649B59AB2BF64E12002BAE38 /* Images.xcassets */, 649B59AD2BF64EAB002BAE38 /* AppImages.swift */, 64D992712C06281B002ACBC6 /* SystemIcons.swift */, + ECB636542C047992007CD5E2 /* Image.xcassets */, ); path = Images; sourceTree = ""; @@ -350,12 +344,12 @@ path = TextStyles; sourceTree = ""; }; - 64E00BE12C08B1BF00E90544 /* Settings */ = { + 64C87E222C09D52600CCD451 /* Frameworks */ = { isa = PBXGroup; children = ( - 64E00BE22C08B1D500E90544 /* SettingsVM.swift */, + EC2DD03A2C0CDE7C00FC55C0 /* DSQ.xcframework */, ); - path = Settings; + name = Frameworks; sourceTree = ""; }; EC05BFC62C04D7C2000F7B19 /* Settings */ = { @@ -366,13 +360,13 @@ path = Settings; sourceTree = ""; }; - EC62C5022C045BB90048CD0B /* SoundPlayerClass */ = { + EC05BFC92C05ECC6000F7B19 /* Scene */ = { isa = PBXGroup; children = ( - EC62C5002C045B590048CD0B /* SoundPlayer.swift */, - EC62C4F82C0371660048CD0B /* MusicPlayer.swift */, + ECB6364D2C04628E007CD5E2 /* SpriteMeeple.swift */, + EC05BFCA2C05F470000F7B19 /* GameScene.swift */, ); - path = SoundPlayerClass; + path = Scene; sourceTree = ""; }; EC62C5032C045BD30048CD0B /* Sounds */ = { @@ -387,12 +381,22 @@ EC62C5042C045BE00048CD0B /* Musics */ = { isa = PBXGroup; children = ( + EC0540C92C08BD8D0032E9EF /* GameMusic.mp3 */, EC62C5162C0620C00048CD0B /* rap.mp3 */, EC62C4FE2C0457AD0048CD0B /* TitleScreenMusic.mp3 */, ); path = Musics; sourceTree = ""; }; + ECB6364F2C04635D007CD5E2 /* SoundPlayerClass */ = { + isa = PBXGroup; + children = ( + ECB636502C046379007CD5E2 /* MusicPlayer.swift */, + ECB636522C0463A9007CD5E2 /* SoundPlayer.swift */, + ); + path = SoundPlayerClass; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -403,7 +407,6 @@ 645834542BF5F92300E18321 /* Sources */, 645834552BF5F92300E18321 /* Frameworks */, 645834562BF5F92300E18321 /* Resources */, - 6458348A2BF5FEA000E18321 /* Embed Frameworks */, ); buildRules = ( ); @@ -419,7 +422,6 @@ buildConfigurationList = 6458347F2BF5F92600E18321 /* Build configuration list for PBXNativeTarget "DouShouQi_AppTests" */; buildPhases = ( 645834642BF5F92600E18321 /* Sources */, - 645834652BF5F92600E18321 /* Frameworks */, 645834662BF5F92600E18321 /* Resources */, ); buildRules = ( @@ -437,7 +439,6 @@ buildConfigurationList = 645834822BF5F92600E18321 /* Build configuration list for PBXNativeTarget "DouShouQi_AppUITests" */; buildPhases = ( 6458346E2BF5F92600E18321 /* Sources */, - 6458346F2BF5F92600E18321 /* Frameworks */, 645834702BF5F92600E18321 /* Resources */, ); buildRules = ( @@ -498,14 +499,15 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + EC0540CA2C08BD8D0032E9EF /* GameMusic.mp3 in Resources */, 649B59A72BF64BA9002BAE38 /* Colors.xcassets in Resources */, 6493C1C02C046BF900B5121D /* samurai.ttf in Resources */, EC62C5062C045C1A0048CD0B /* TitleScreenButtonSound.mp3 in Resources */, EC62C5172C0620C00048CD0B /* rap.mp3 in Resources */, - 649B59AC2BF64E12002BAE38 /* Images.xcassets in Resources */, EC62C50D2C046D9E0048CD0B /* SplashScreenSound.mp3 in Resources */, 645834632BF5F92500E18321 /* Preview Assets.xcassets in Resources */, 645834602BF5F92500E18321 /* Assets.xcassets in Resources */, + ECB636552C047992007CD5E2 /* Image.xcassets in Resources */, EC62C4FF2C0457AD0048CD0B /* TitleScreenMusic.mp3 in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -531,30 +533,44 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - EC05BFC42C04C3C4000F7B19 /* SettingsView.swift in Sources */, - 643AB69B2BFCFB5C0018DA73 /* HistoricView.swift in Sources */, - EC62C50F2C05D06A0048CD0B /* AddPlayerView.swift in Sources */, 6458345E2BF5F92300E18321 /* ContentView.swift in Sources */, 646FA83E2C072340001466BA /* GameVM.swift in Sources */, 649B59A92BF64C6A002BAE38 /* Colors.swift in Sources */, 646FA8432C0730D6001466BA /* HistoricVM.swift in Sources */, + EC3EE4B12C0CD46000710153 /* ButtonView.swift in Sources */, 649B59B42BF653E1002BAE38 /* ViewTitleTextStyle.swift in Sources */, - EC62C5012C045B590048CD0B /* SoundPlayer.swift in Sources */, + 649B59AE2BF64EAB002BAE38 /* AppImages.swift in Sources */, + ECB636532C0463A9007CD5E2 /* SoundPlayer.swift in Sources */, + EC0540C02C08A1040032E9EF /* HistoricView.swift in Sources */, + EC0540C62C08A1F40032E9EF /* TopGameBoard.swift in Sources */, + 649B59B22BF65392002BAE38 /* TextStyles.swift in Sources */, + EC99D5C12C089F6B00731B62 /* GameResumeFrame.swift in Sources */, + EC05BFCB2C05F470000F7B19 /* GameScene.swift in Sources */, + 6458345C2BF5F92300E18321 /* DouShouQi_AppApp.swift in Sources */, + ECB636512C046379007CD5E2 /* MusicPlayer.swift in Sources */, + ECB6364E2C04628E007CD5E2 /* SpriteMeeple.swift in Sources */, + 649B59A42BF64574002BAE38 /* TitlePageFrame.swift in Sources */, + EC0540C42C08A13E0032E9EF /* GameView.swift in Sources */, + EC05BFC42C04C3C4000F7B19 /* SettingsView.swift in Sources */, + EC62C50F2C05D06A0048CD0B /* AddPlayerView.swift in Sources */, + 64FC4D6B2C09C7C900D08B8B /* SelectPlayerButtonView.swift in Sources */, EC05BFC82C04D832000F7B19 /* CustomSwitchButton.swift in Sources */, 64D992722C06281B002ACBC6 /* SystemIcons.swift in Sources */, 64E00BE32C08B1D500E90544 /* SettingsVM.swift in Sources */, 645B4C252BFCD3C600FD658A /* ScoreBoardView.swift in Sources */, - 649B59AE2BF64EAB002BAE38 /* AppImages.swift in Sources */, 649ABF602BF60F2D002E8894 /* MainMenuButton.swift in Sources */, + EC62C51B2C09D1790048CD0B /* PlayerStatView.swift in Sources */, 643AB6932BFCEFD00018DA73 /* GameResumeFrame.swift in Sources */, 649B59B22BF65392002BAE38 /* TextStyles.swift in Sources */, EC62C5092C0467240048CD0B /* SplashScreenView.swift in Sources */, - EC62C4F92C0371660048CD0B /* MusicPlayer.swift in Sources */, + EC2DD03F2C0CDF0C00FC55C0 /* MainMenuView.swift in Sources */, + 64FC4D692C09C78000D08B8B /* SelectPlayerView.swift in Sources */, EC62C4FD2C0391D30048CD0B /* PlayerRow.swift in Sources */, EC62C4FB2C038BD20048CD0B /* PlayersView.swift in Sources */, 6458345C2BF5F92300E18321 /* DouShouQi_AppApp.swift in Sources */, - 645B4C202BFCCA0500FD658A /* PlayerResumeFrame.swift in Sources */, - 649ABF5B2BF60D78002E8894 /* MainMenuView.swift in Sources */, + 645B4C202BFCCA0500FD658A /* PlayerScoreResumeFrame.swift in Sources */, + EC3EE4B32C0CD47000710153 /* MainButton.swift in Sources */, + 647D565C2BFD0212008D02EA /* PlayerResumeFrame.swift in Sources */, 6493C1C22C046E5E00B5121D /* Fonts.swift in Sources */, 649B59A42BF64574002BAE38 /* TitlePageFrame.swift in Sources */, ); diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiLion.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets.xcassets/gameBoard.imageset/Contents.json similarity index 86% rename from DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiLion.imageset/Contents.json rename to DouShouQi_App/DouShouQi_App/Assets.xcassets/gameBoard.imageset/Contents.json index 29853d4..79a7d31 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiLion.imageset/Contents.json +++ b/DouShouQi_App/DouShouQi_App/Assets.xcassets/gameBoard.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "doushouqi-lion 1.png", + "filename" : "board.svg", "idiom" : "universal", "scale" : "1x" }, diff --git a/DouShouQi_App/DouShouQi_App/Assets.xcassets/gameBoard.imageset/board.svg b/DouShouQi_App/DouShouQi_App/Assets.xcassets/gameBoard.imageset/board.svg new file mode 100644 index 0000000..b91c80d --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets.xcassets/gameBoard.imageset/board.svg @@ -0,0 +1,1931 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DouShouQi_App/DouShouQi_App/Assets.xcassets/title-background.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets.xcassets/title-background.imageset/Contents.json new file mode 100644 index 0000000..4576384 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets.xcassets/title-background.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "title-background.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets.xcassets/title-background.imageset/title-background.png b/DouShouQi_App/DouShouQi_App/Assets.xcassets/title-background.imageset/title-background.png new file mode 100644 index 0000000..dcd3220 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets.xcassets/title-background.imageset/title-background.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets.xcassets/vs-custom.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets.xcassets/vs-custom.imageset/Contents.json new file mode 100644 index 0000000..fc0328b --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets.xcassets/vs-custom.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "Vs_Red.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets.xcassets/vs-custom.imageset/Vs_Red.png b/DouShouQi_App/DouShouQi_App/Assets.xcassets/vs-custom.imageset/Vs_Red.png new file mode 100644 index 0000000..bf6d094 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets.xcassets/vs-custom.imageset/Vs_Red.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.swift b/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.swift index bc9baf0..33e70ff 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.swift +++ b/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.swift @@ -11,5 +11,6 @@ import SwiftUI public struct Colors { static let TitleText = Color("TitleTextColor") static let Button = Color("ButtonColor") + static let MeepleP1 = UIColor(named: "MeepleP1") static let TextButton = Color("ButtonTextColor") } diff --git a/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.xcassets/MeepleP1.colorset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.xcassets/MeepleP1.colorset/Contents.json new file mode 100644 index 0000000..d1b0235 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.xcassets/MeepleP1.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.765", + "green" : "0.855", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/AppImages.swift b/DouShouQi_App/DouShouQi_App/Assets/Images/AppImages.swift index 1a06ad9..4ba2009 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/AppImages.swift +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/AppImages.swift @@ -9,13 +9,21 @@ import Foundation import SwiftUI public struct AppImages { - static let TitleImage = "TitlePageImage" + static let TitleImage = "Title" static let SemiLion = "SemiLion" + static let boardGame = "boardGame" + static let SemiDog = "SemiDog" + static let SemiElephant = "SemiElephant" + static let SemiCat = "SemiCat" + static let SemiRat = "SemiRat" + static let SemiLeopard = "SemiLeopard" + static let SemiWolf = "SemiWolf" static let Lion = "Lion" static let Rat = "Rat" static let Elephant = "Elephant" static let Cat = "Cat" static let Dog = "Dog" static let Leopard = "Leopard" + static let Tigger = "Tigger" static let Wolf = "Wolf" } diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Cat.imageset/Cat.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Cat.imageset/Cat.png new file mode 100644 index 0000000..cb616d2 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Cat.imageset/Cat.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Cat.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Cat.imageset/Contents.json new file mode 100644 index 0000000..f61fd8e --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Cat.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "Cat.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Contents.json similarity index 100% rename from DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Contents.json rename to DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Contents.json diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Dog.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Dog.imageset/Contents.json new file mode 100644 index 0000000..8d46c23 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Dog.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "Dog.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Dog.imageset/Dog.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Dog.imageset/Dog.png new file mode 100644 index 0000000..572eb8e Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Dog.imageset/Dog.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Elephant.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Elephant.imageset/Contents.json new file mode 100644 index 0000000..030f089 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Elephant.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "Elephant.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Elephant.imageset/Elephant.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Elephant.imageset/Elephant.png new file mode 100644 index 0000000..8ab1e42 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Elephant.imageset/Elephant.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Leopard.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Leopard.imageset/Contents.json new file mode 100644 index 0000000..cf11d83 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Leopard.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "Leopard.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Leopard.imageset/Leopard.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Leopard.imageset/Leopard.png new file mode 100644 index 0000000..0ec06e5 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Leopard.imageset/Leopard.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Lion.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Lion.imageset/Contents.json new file mode 100644 index 0000000..82f0db1 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Lion.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "Lion.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Lion.imageset/Lion.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Lion.imageset/Lion.png new file mode 100644 index 0000000..c446ff8 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Lion.imageset/Lion.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Rat.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Rat.imageset/Contents.json new file mode 100644 index 0000000..735b7bb --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Rat.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "Rat.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Rat.imageset/Rat.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Rat.imageset/Rat.png new file mode 100644 index 0000000..d3acf74 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Rat.imageset/Rat.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiCat.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiCat.imageset/Contents.json new file mode 100644 index 0000000..0fd38f6 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiCat.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiCat.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiCat.imageset/SemiCat.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiCat.imageset/SemiCat.png new file mode 100644 index 0000000..eeb278e Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiCat.imageset/SemiCat.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiDog.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiDog.imageset/Contents.json new file mode 100644 index 0000000..7847b7f --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiDog.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "layer1(6)(1).png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiDog.imageset/layer1(6)(1).png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiDog.imageset/layer1(6)(1).png new file mode 100644 index 0000000..b597ee1 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiDog.imageset/layer1(6)(1).png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiElephant.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiElephant.imageset/Contents.json new file mode 100644 index 0000000..42d393a --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiElephant.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiElephant.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiElephant.imageset/SemiElephant.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiElephant.imageset/SemiElephant.png new file mode 100644 index 0000000..1c10540 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiElephant.imageset/SemiElephant.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiLeopard.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiLeopard.imageset/Contents.json new file mode 100644 index 0000000..362d6c2 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiLeopard.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiLeopard.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiLeopard.imageset/SemiLeopard.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiLeopard.imageset/SemiLeopard.png new file mode 100644 index 0000000..07ffa2a Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiLeopard.imageset/SemiLeopard.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiLion.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiLion.imageset/Contents.json new file mode 100644 index 0000000..077e986 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiLion.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "doushouqi-semilion.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiLion.imageset/doushouqi-semilion.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiLion.imageset/doushouqi-semilion.png new file mode 100644 index 0000000..f306b56 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiLion.imageset/doushouqi-semilion.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiRat.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiRat.imageset/Contents.json new file mode 100644 index 0000000..f275ddd --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiRat.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiRat.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiRat.imageset/SemiRat.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiRat.imageset/SemiRat.png new file mode 100644 index 0000000..a2bd6c8 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiRat.imageset/SemiRat.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiTiger.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiTiger.imageset/Contents.json new file mode 100644 index 0000000..dfafd53 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiTiger.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiTiger.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiTiger.imageset/SemiTiger.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiTiger.imageset/SemiTiger.png new file mode 100644 index 0000000..4ecf88e Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiTiger.imageset/SemiTiger.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiWolf.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiWolf.imageset/Contents.json new file mode 100644 index 0000000..6b8435c --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiWolf.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiWolf.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiWolf.imageset/SemiWolf.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiWolf.imageset/SemiWolf.png new file mode 100644 index 0000000..5b282ef Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/SemiWolf.imageset/SemiWolf.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Tigger.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Tigger.imageset/Contents.json new file mode 100644 index 0000000..8b532e6 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Tigger.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "Tigger.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Tigger.imageset/Tigger.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Tigger.imageset/Tigger.png new file mode 100644 index 0000000..c742847 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Tigger.imageset/Tigger.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/TitlePageImage.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Title.imageset/Contents.json similarity index 74% rename from DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/TitlePageImage.imageset/Contents.json rename to DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Title.imageset/Contents.json index a8e9c51..ec5d305 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/TitlePageImage.imageset/Contents.json +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Title.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "-16-05-2024.svg", + "filename" : "title-background.svg", "idiom" : "universal" } ], diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/TitlePageImage.imageset/-16-05-2024.svg b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Title.imageset/title-background.svg similarity index 100% rename from DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/TitlePageImage.imageset/-16-05-2024.svg rename to DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Title.imageset/title-background.svg diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Wolf.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Wolf.imageset/Contents.json new file mode 100644 index 0000000..0ca5b48 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Wolf.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "Wolf.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Wolf.imageset/Wolf.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Wolf.imageset/Wolf.png new file mode 100644 index 0000000..5d42722 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Wolf.imageset/Wolf.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/boardGame.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/boardGame.imageset/Contents.json new file mode 100644 index 0000000..79a7d31 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/boardGame.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "board.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/boardGame.imageset/board.svg b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/boardGame.imageset/board.svg new file mode 100644 index 0000000..b2e1c27 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/boardGame.imageset/board.svg @@ -0,0 +1,1148 @@ + + board-svg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Cat.imageset/Cat.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Cat.imageset/Cat.png new file mode 100644 index 0000000..cb616d2 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Cat.imageset/Cat.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Cat.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Cat.imageset/Contents.json index cf9e340..f61fd8e 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Cat.imageset/Contents.json +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Cat.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "doushouqi-cat.svg", + "filename" : "Cat.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Cat.imageset/doushouqi-cat.svg b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Cat.imageset/doushouqi-cat.svg deleted file mode 100644 index efbcb8b..0000000 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Cat.imageset/doushouqi-cat.svg +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Openclipart - - - - - - - - - - - diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Dog.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Dog.imageset/Contents.json index d18d976..8d46c23 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Dog.imageset/Contents.json +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Dog.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "doushouqi-dog.svg", + "filename" : "Dog.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Dog.imageset/Dog.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Dog.imageset/Dog.png new file mode 100644 index 0000000..572eb8e Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Dog.imageset/Dog.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Dog.imageset/doushouqi-dog.svg b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Dog.imageset/doushouqi-dog.svg deleted file mode 100644 index c19368b..0000000 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Dog.imageset/doushouqi-dog.svg +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Openclipart - - - - - - - - - - - diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Elephant.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Elephant.imageset/Contents.json index 7326d74..030f089 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Elephant.imageset/Contents.json +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Elephant.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "doushouqi-elephant.svg", + "filename" : "Elephant.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Elephant.imageset/Elephant.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Elephant.imageset/Elephant.png new file mode 100644 index 0000000..8ab1e42 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Elephant.imageset/Elephant.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Elephant.imageset/doushouqi-elephant.svg b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Elephant.imageset/doushouqi-elephant.svg deleted file mode 100644 index fd7e877..0000000 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Elephant.imageset/doushouqi-elephant.svg +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Openclipart - - - - - - - - - - - diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Leopard.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Leopard.imageset/Contents.json index 0a3aa08..cf11d83 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Leopard.imageset/Contents.json +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Leopard.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "doushouqi-leopard.svg", + "filename" : "Leopard.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Leopard.imageset/Leopard.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Leopard.imageset/Leopard.png new file mode 100644 index 0000000..0ec06e5 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Leopard.imageset/Leopard.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Leopard.imageset/doushouqi-leopard.svg b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Leopard.imageset/doushouqi-leopard.svg deleted file mode 100644 index 477b3f0..0000000 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Leopard.imageset/doushouqi-leopard.svg +++ /dev/null @@ -1,442 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Openclipart - - - - - - - - - - - diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Lion.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Lion.imageset/Contents.json index f123ff0..82f0db1 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Lion.imageset/Contents.json +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Lion.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "doushouqi-lion.svg", + "filename" : "Lion.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Lion.imageset/Lion.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Lion.imageset/Lion.png new file mode 100644 index 0000000..c446ff8 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Lion.imageset/Lion.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Lion.imageset/doushouqi-lion.svg b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Lion.imageset/doushouqi-lion.svg deleted file mode 100644 index 2bf2e5d..0000000 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Lion.imageset/doushouqi-lion.svg +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Openclipart - - - - - - - - - - - diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Rat.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Rat.imageset/Contents.json index 7250ab4..735b7bb 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Rat.imageset/Contents.json +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Rat.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "doushouqi-rat.svg", + "filename" : "Rat.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Rat.imageset/Rat.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Rat.imageset/Rat.png new file mode 100644 index 0000000..d3acf74 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Rat.imageset/Rat.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Rat.imageset/doushouqi-rat.svg b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Rat.imageset/doushouqi-rat.svg deleted file mode 100644 index 7cb8da0..0000000 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Rat.imageset/doushouqi-rat.svg +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Openclipart - - - - - - - - - - - diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiCat.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiCat.imageset/Contents.json new file mode 100644 index 0000000..0fd38f6 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiCat.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiCat.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiCat.imageset/SemiCat.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiCat.imageset/SemiCat.png new file mode 100644 index 0000000..eeb278e Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiCat.imageset/SemiCat.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiDog.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiDog.imageset/Contents.json new file mode 100644 index 0000000..0c7dbb7 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiDog.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiDog.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiDog.imageset/SemiDog.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiDog.imageset/SemiDog.png new file mode 100644 index 0000000..90b7caa Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiDog.imageset/SemiDog.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiElephant.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiElephant.imageset/Contents.json new file mode 100644 index 0000000..42d393a --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiElephant.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiElephant.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiElephant.imageset/SemiElephant.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiElephant.imageset/SemiElephant.png new file mode 100644 index 0000000..1c10540 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiElephant.imageset/SemiElephant.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiLeopard.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiLeopard.imageset/Contents.json new file mode 100644 index 0000000..362d6c2 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiLeopard.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiLeopard.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiLeopard.imageset/SemiLeopard.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiLeopard.imageset/SemiLeopard.png new file mode 100644 index 0000000..07ffa2a Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiLeopard.imageset/SemiLeopard.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiRat.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiRat.imageset/Contents.json new file mode 100644 index 0000000..f275ddd --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiRat.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiRat.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiRat.imageset/SemiRat.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiRat.imageset/SemiRat.png new file mode 100644 index 0000000..a2bd6c8 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiRat.imageset/SemiRat.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiTiger.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiTiger.imageset/Contents.json new file mode 100644 index 0000000..dfafd53 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiTiger.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiTiger.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiTiger.imageset/SemiTiger.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiTiger.imageset/SemiTiger.png new file mode 100644 index 0000000..4ecf88e Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiTiger.imageset/SemiTiger.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiWolf.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiWolf.imageset/Contents.json new file mode 100644 index 0000000..6b8435c --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiWolf.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "SemiWolf.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiWolf.imageset/SemiWolf.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiWolf.imageset/SemiWolf.png new file mode 100644 index 0000000..5b282ef Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/SemiWolf.imageset/SemiWolf.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Tigger.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Tigger.imageset/Contents.json new file mode 100644 index 0000000..8b532e6 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Tigger.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "Tigger.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Tigger.imageset/Tigger.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Tigger.imageset/Tigger.png new file mode 100644 index 0000000..c742847 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Tigger.imageset/Tigger.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Wolf.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Wolf.imageset/Contents.json index b9d1c0a..0ca5b48 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Wolf.imageset/Contents.json +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Wolf.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "doushouqi-wolf.svg", + "filename" : "Wolf.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Wolf.imageset/Wolf.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Wolf.imageset/Wolf.png new file mode 100644 index 0000000..5d42722 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Wolf.imageset/Wolf.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Wolf.imageset/doushouqi-wolf.svg b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Wolf.imageset/doushouqi-wolf.svg deleted file mode 100644 index ea28a01..0000000 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/Wolf.imageset/doushouqi-wolf.svg +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Openclipart - - - - - - - - - - - diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/boardGame.imageset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/boardGame.imageset/Contents.json new file mode 100644 index 0000000..79a7d31 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/boardGame.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "board.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/boardGame.imageset/board.svg b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/boardGame.imageset/board.svg new file mode 100644 index 0000000..b2e1c27 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Images.xcassets/boardGame.imageset/board.svg @@ -0,0 +1,1148 @@ + + board-svg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Cat.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Cat.png new file mode 100644 index 0000000..cb616d2 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Cat.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Dog.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Dog.png new file mode 100644 index 0000000..572eb8e Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Dog.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Elephant.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Elephant.png new file mode 100644 index 0000000..8ab1e42 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Elephant.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Leopard.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Leopard.png new file mode 100644 index 0000000..0ec06e5 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Leopard.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Lion.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Lion.png new file mode 100644 index 0000000..c446ff8 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Lion.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Rat.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Rat.png new file mode 100644 index 0000000..d3acf74 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Rat.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Tigger.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Tigger.png new file mode 100644 index 0000000..c742847 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Tigger.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Wolf.png b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Wolf.png new file mode 100644 index 0000000..5d42722 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Images/Meeples/Wolf.png differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Musics/GameMusic.mp3 b/DouShouQi_App/DouShouQi_App/Assets/Musics/GameMusic.mp3 new file mode 100644 index 0000000..a078ac7 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Musics/GameMusic.mp3 differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Musique/AppMusic.swift b/DouShouQi_App/DouShouQi_App/Assets/Musique/AppMusic.swift deleted file mode 100644 index 0357b84..0000000 --- a/DouShouQi_App/DouShouQi_App/Assets/Musique/AppMusic.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// AppMusic.swift -// DouShouQi_App -// -// Created by étudiant on 26/05/2024. -// - -import Foundation -import SwiftUI - -public struct AppMusic { - static let ScreenTitleMusic = "ScreenTitleMusique" - -} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Musique/Musique.xcassets/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Musique/Musique.xcassets/Contents.json deleted file mode 100644 index 73c0059..0000000 --- a/DouShouQi_App/DouShouQi_App/Assets/Musique/Musique.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Musique/Musique.xcassets/ScreenTitleMusique.dataset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Musique/Musique.xcassets/ScreenTitleMusique.dataset/Contents.json deleted file mode 100644 index dafdbb1..0000000 --- a/DouShouQi_App/DouShouQi_App/Assets/Musique/Musique.xcassets/ScreenTitleMusique.dataset/Contents.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "data" : [ - { - "filename" : "ytmp3free.cc_1-a-o-t-2-main-theme-attack-on-titan-2-soundtrack-youtubemp3free.org.mp3", - "idiom" : "universal", - "universal-type-identifier" : "public.mp3" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/DouShouQi_App/DouShouQi_App/Components/ButtonView.swift b/DouShouQi_App/DouShouQi_App/Components/ButtonView.swift new file mode 100644 index 0000000..0a03795 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Components/ButtonView.swift @@ -0,0 +1,26 @@ +import SwiftUI + +struct ButtonView: View { + var button1Title: String + + var body: some View { + VStack { + Button(action: { + print("\(button1Title) pressé!") + }) { + Text(button1Title) + .frame(width: 200) + .padding() + .background(Color.red) + .foregroundColor(.white) + .cornerRadius(10) + } + } + } +} + +struct ButtonsViewPreviews: PreviewProvider { + static var previews: some View { + ButtonView(button1Title: "Button") + } +} diff --git a/DouShouQi_App/DouShouQi_App/Components/Game/TopGameBoard.swift b/DouShouQi_App/DouShouQi_App/Components/Game/TopGameBoard.swift new file mode 100644 index 0000000..284b3cf --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Components/Game/TopGameBoard.swift @@ -0,0 +1,67 @@ +// +// TitlePageFrame.swift +// DouShouQi_App +// +// Created by Nathan Verdier on 26/05/2024. +// + +import SwiftUI + +struct TopGameBoard: View { + var body: some View { + VStack { + HStack { + Circle() + .fill(Color.white) + .frame(width: 40, height: 40) + Text("Player 1 Turn") + .font(.title) + .foregroundColor(.white) + } + .padding() + .background(Color.red) + .cornerRadius(10) + + Spacer().frame(height: 20) + + HStack { + HStack { + Image(systemName: "clock") + .resizable() + .frame(width: 30, height: 30) + Text("4:11") + .font(.title) + .foregroundColor(.black) + } + + Spacer() + + HStack { + Text("Last moove :") + .font(.title2) + .foregroundColor(.black) + /*Image(systemName: "cheetah") + .resizable() + .frame(width: 30, height: 30)*/ + Text("🦁") + Text("2.3") + .font(.title2) + .foregroundColor(.black) + } + } + .padding() + .background(Color.white) + .cornerRadius(10) + + Spacer() + } + .padding() + .background(Color.red.opacity(0.5)) + } +} + +struct TopGameBoard_Previews: PreviewProvider { + static var previews: some View { + TopGameBoard() + } +} diff --git a/DouShouQi_App/DouShouQi_App/Components/MainButton.swift b/DouShouQi_App/DouShouQi_App/Components/MainButton.swift new file mode 100644 index 0000000..bdb58f0 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Components/MainButton.swift @@ -0,0 +1,30 @@ +// +// MainButton.swift +// DouShouQi_App +// +// Created by etudiant on 16/05/2024. +// + +import SwiftUI + +struct MainButton: View { + var body: some View { + Button(action: { + // Code à exécuter lorsque l'utilisateur appuie sur le bouton + print("Bouton appuyé !") + }) { + // Label pour le bouton (par exemple, du texte ou une icône) + Text("Appuyez ici") + .padding() // Ajoute un peu d'espace autour du texte + .background(Color.blue) // Couleur de fond du bouton + .foregroundColor(.white) // Couleur du texte + .cornerRadius(10) // Coins arrondis + } + } +} + +struct MainButton_Previews: PreviewProvider { + static var previews: some View { + MainButton() + } +} diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerResumeFrame.swift b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerResumeFrame.swift index 201bffb..0d11cbd 100644 --- a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerResumeFrame.swift +++ b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerResumeFrame.swift @@ -8,38 +8,13 @@ import SwiftUI struct PlayerResumeFrame: View { - - // Player Params - let Name: String - let Rank: Int - let Wins: Int - let Looses: Int - var body: some View { - VStack { - HStack { - Text("\(Rank)") - .font(.headline) - .frame(width: 50, alignment: .trailing) - - Text(Name) - - Spacer() - - Text("\(Wins)") - .frame(width: 55, alignment: .trailing) - - Text("\(Looses)") - .frame(width: 55, alignment: .trailing) - - } - .padding(10) - } + Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) } } struct PlayerResumeFrame_Previews: PreviewProvider { static var previews: some View { - PlayerResumeFrame(Name: "Michel Polnaref", Rank: 178, Wins: 0, Looses: 296) + PlayerResumeFrame() } } diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerRow.swift b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerRow.swift index b8acb4e..d93ed30 100644 --- a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerRow.swift +++ b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerRow.swift @@ -12,6 +12,8 @@ struct PlayerRow: View { var player: Player @Binding var players: [Player] + @State private var showDetailView = false + var body: some View { HStack { if let image = UIImage(contentsOfFile: player.photo) { @@ -35,16 +37,13 @@ struct PlayerRow: View { } Spacer() Button(action: { - // Action pour éditer le joueur + showDetailView.toggle() }) { - Image(systemName: "pencil") - .foregroundColor(.black) + Image(systemName: "info.circle") + .foregroundColor(.blue) } - Button(action: { - - }) { - Image(systemName: "trash") - .foregroundColor(.red) + .sheet(isPresented: $showDetailView) { + PlayerStatView(player: player) } } .padding() @@ -53,5 +52,3 @@ struct PlayerRow: View { .shadow(radius: 1) } } - - diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerScoreResumeFrame.swift b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerScoreResumeFrame.swift new file mode 100644 index 0000000..51f946b --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerScoreResumeFrame.swift @@ -0,0 +1,45 @@ +// +// PlayerScoreResumeFrame.swift +// DouShouQi_App +// +// Created by Rémi REGNAULT on 21/05/2024. +// + +import SwiftUI + +struct PlayerScoreResumeFrame: View { + + // Player Params + let Name: String + let Rank: Int + let Wins: Int + let Looses: Int + + var body: some View { + VStack { + HStack { + Text("\(Rank)") + .font(.headline) + .frame(width: 50, alignment: .trailing) + + Text(Name) + + Spacer() + + Text("\(Wins)") + .frame(width: 55, alignment: .trailing) + + Text("\(Looses)") + .frame(width: 55, alignment: .trailing) + + } + .padding(10) + } + } +} + +struct PlayerScoreResumeFrame_Previews: PreviewProvider { + static var previews: some View { + PlayerScoreResumeFrame(Name: "Michel Polnaref", Rank: 178, Wins: 0, Looses: 296) + } +} diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerStatView.swift b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerStatView.swift new file mode 100644 index 0000000..c223c26 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerStatView.swift @@ -0,0 +1,61 @@ +// +// PlayerStatView.swift +// DouShouQi_App +// +// Created by étudiant on 31/05/2024. +// + +import SwiftUI + +struct PlayerStatView: View { + var player: Player + + var body: some View { + VStack { + if let image = UIImage(contentsOfFile: player.photo) { + Image(uiImage: image) + .resizable() + .frame(width: 100, height: 100) + .clipShape(Circle()) + .padding(.top, 10) + } else { + Image(systemName: "person.circle.fill") + .resizable() + .frame(width: 100, height: 100) + .clipShape(Circle()) + .foregroundColor(.gray) + .padding(.top, 10) + } + + Text(player.name) + .font(.largeTitle) + .foregroundColor(.black) + .padding(.top, 10) + + VStack(alignment: .leading, spacing: 10) { + HStack { + Image(systemName: "trophy.fill") + Text("Win : \(player.wins)") + .font(.title2) + } + HStack { + Image(systemName: "xmark.circle.fill") + Text("Loose : \(player.losses)") + .font(.title2) + } + HStack { + Image(systemName: "chart.line.uptrend.xyaxis") + Text("Win Rate : \(String(format: "%.2f", Double(player.wins) / Double(player.wins + player.losses) * 100))%") + .font(.title2) + } + HStack { + Image(systemName: "list.number") + Text("Rank : 3") + .font(.title2) + } + } + .padding() + Spacer() + } + } +} diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/SelectPlayerButtonView.swift b/DouShouQi_App/DouShouQi_App/Components/Player/SelectPlayerButtonView.swift new file mode 100644 index 0000000..93bf37b --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Components/Player/SelectPlayerButtonView.swift @@ -0,0 +1,105 @@ +// +// SelectPlayerButtonView.swift +// DouShouQi_App +// +// Created by etudiant on 23/05/2024. +// + +import SwiftUI + +struct CustomShapeLeftButton: Shape { + func path(in rect: CGRect) -> Path { + var path = Path() + path.move(to: CGPoint(x: rect.minX, y: rect.minY)) // coin supérieur gauche + path.addLine(to: CGPoint(x: rect.maxX - 60, y: rect.minY)) // un peu avant le coin supérieur droit + path.addLine(to: CGPoint(x: rect.maxX, y: rect.minY + 60)) // un peu en dessous du coin supérieur droit + path.addLine(to: CGPoint(x: rect.maxX, y: rect.maxY)) // coin inférieur droit + path.addLine(to: CGPoint(x: rect.minX, y: rect.maxY)) // coin inférieur gauche + path.closeSubpath() + return path + } +} + +struct CustomShapeRightButton: Shape { + func path(in rect: CGRect) -> Path { + var path = Path() + path.move(to: CGPoint(x: rect.minX + 60, y: rect.minY)) // un peu à droite du coin supérieur gauche + path.addLine(to: CGPoint(x: rect.maxX, y: rect.minY)) // coin supérieur droit + path.addLine(to: CGPoint(x: rect.maxX, y: rect.maxY)) // coin inférieur droit + path.addLine(to: CGPoint(x: rect.minX, y: rect.maxY)) // coin inférieur gauche + path.addLine(to: CGPoint(x: rect.minX, y: rect.minY + 60)) // un peu en dessous du coin supérieur gauche + path.closeSubpath() + return path + } +} + + +struct SelectPlayerButtonView: View { + var player1:String = "IA" + var player2:String = "IA" + var body: some View { + ZStack{ + Image("vs-custom") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(width: 100, height: 100) + .offset(y: -60) + HStack{ + VStack (alignment: .leading) { + Text(player1) + .font(.title) + .padding(3) + Button(action: { + print("Button j1 pressé!") + }) { + VStack { + Text("+") + .font(.largeTitle) + .bold() + Text("Add a player") + .font(.body) + .bold() + } + .frame(width: 150, height: 150) + .padding() + .border(/*@START_MENU_TOKEN@*/Color.black/*@END_MENU_TOKEN@*/, width: 4) + .foregroundColor(.black) + .foregroundColor(.white) + .cornerRadius(10) + .clipShape(CustomShapeLeftButton()) + } + } + VStack (alignment: .trailing) { + Text(player2) + .font(.title) + .padding(3) + + Button(action: { + print("Button j2 pressé!") + }) { + VStack { + Text("+") + .font(.largeTitle) + .bold() + Text("Add a player") + .font(.body) + .bold() + } .frame(width: 150, height: 150) + .padding() + .foregroundColor(.black) + .border(/*@START_MENU_TOKEN@*/Color.black/*@END_MENU_TOKEN@*/, width: 4) + .foregroundColor(.white) + .cornerRadius(10) + .clipShape(CustomShapeRightButton()) + } + } + } + } + } +} + +struct SelectPlayerButtonView_Previews: PreviewProvider { + static var previews: some View { + SelectPlayerButtonView() + } +} diff --git a/DouShouQi_App/DouShouQi_App/Components/Scene/GameScene.swift b/DouShouQi_App/DouShouQi_App/Components/Scene/GameScene.swift new file mode 100644 index 0000000..474c9a5 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Components/Scene/GameScene.swift @@ -0,0 +1,72 @@ +// +// GameScene.swift +// DouShouQi_App +// +// Created by Nathan Verdier on 28/05/2024. +// + +import Foundation +import SpriteKit +import DouShouQiModel + +class GameScene : SKScene { + var game: Game = try! Game(withRules: ClassicRules(), andPlayer1: RandomPlayer(withName: "Rayhan", andId: .player1)!, andPlayer2: RandomPlayer(withName: "Rémi", andId: .player2)!) + + let pieces: [Owner : [Animal:SpriteMeeple]] = [ + .player1: [ + .rat: SpriteMeeple(imageNamed: AppImages.Rat, size: CGSize(width: 100, height: 100), backgroundColor: Colors.MeepleP1!), + .cat: SpriteMeeple(imageNamed: AppImages.Cat, size: CGSize(width: 100, height: 100), backgroundColor: Colors.MeepleP1!), + .dog: SpriteMeeple(imageNamed: AppImages.Dog, size: CGSize(width: 100, height: 100), backgroundColor: Colors.MeepleP1!), + .wolf: SpriteMeeple(imageNamed: AppImages.Wolf, size: CGSize(width: 100, height: 100), backgroundColor: Colors.MeepleP1!), + .leopard: SpriteMeeple(imageNamed: AppImages.Leopard, size: CGSize(width: 100, height: 100), backgroundColor: Colors.MeepleP1!), + .lion: SpriteMeeple(imageNamed: AppImages.Lion, size: CGSize(width: 100, height: 100), backgroundColor: Colors.MeepleP1!), + .tiger: SpriteMeeple(imageNamed: AppImages.Tigger, size: CGSize(width: 100, height: 100), backgroundColor: Colors.MeepleP1!), + .elephant: SpriteMeeple(imageNamed: AppImages.Elephant, size: CGSize(width: 100, height: 100), backgroundColor: Colors.MeepleP1!), + ], + .player2: [ + .rat: SpriteMeeple(imageNamed: AppImages.Rat, size: CGSize(width: 100, height: 100), backgroundColor: .blue, imageRotation: 180), + .cat: SpriteMeeple(imageNamed: AppImages.Cat, size: CGSize(width: 100, height: 100), backgroundColor: .blue, imageRotation: 180), + .dog: SpriteMeeple(imageNamed: AppImages.Dog, size: CGSize(width: 100, height: 100), backgroundColor: .blue, imageRotation: 180), + .wolf: SpriteMeeple(imageNamed: AppImages.Wolf, size: CGSize(width: 100, height: 100), backgroundColor: .blue, imageRotation: 180), + .leopard: SpriteMeeple(imageNamed: AppImages.Leopard, size: CGSize(width: 100, height: 100), backgroundColor: .blue, imageRotation: 180), + .lion: SpriteMeeple(imageNamed: AppImages.Lion, size: CGSize(width: 100, height: 100), backgroundColor: .blue, imageRotation: 180), + .tiger: SpriteMeeple(imageNamed: AppImages.Tigger, size: CGSize(width: 100, height: 100), backgroundColor: .blue, imageRotation: 180), + .elephant: SpriteMeeple(imageNamed: AppImages.Elephant, size: CGSize(width: 100, height: 100), backgroundColor: .blue, imageRotation: 180), + ], + ] + + let imageBoard: SKSpriteNode = SKSpriteNode(imageNamed: AppImages.boardGame) + + override init(size: CGSize) { + super.init(size: size) + imageBoard.size = size + //self.scaleMode = .aspectFit + self.anchorPoint = CGPoint(x: 0.5, y: 0.5) + self.backgroundColor = .white + + self.addChild(imageBoard) + + for piece in pieces.flatMap({owner, pieces in pieces.values}) { + self.addChild(piece) + } + + initializeBoard(game.board) + } + + func initializeBoard(_ board: Board) { + + for (lineIndex, currentLine) in game.board.grid.enumerated() { + for (cellIndex, currentCell) in currentLine.enumerated() { + if let piece = currentCell.piece { + pieces[piece.owner]?[piece.animal]?.cellPosition = CGPoint(x: cellIndex-3, y: lineIndex-4) + pieces[piece.owner]?[piece.animal]?.cellPosition = CGPoint(x: 0, y: 0) + print("line :", lineIndex, " cologne: ", cellIndex) + } + } + } + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder); + } +} diff --git a/DouShouQi_App/DouShouQi_App/Components/Scene/SpriteMeeple.swift b/DouShouQi_App/DouShouQi_App/Components/Scene/SpriteMeeple.swift new file mode 100644 index 0000000..f9e74c4 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Components/Scene/SpriteMeeple.swift @@ -0,0 +1,94 @@ +// +// SpriteMeeple.swift +// DouShouQi_App +// +// Created by Nathan Verdier on 27/05/2024. +// + +import Foundation +import SpriteKit + +class SpriteMeeple : SKNode { + + static let offset = CGPoint(x: 0, y: 0) + static let direction = CGVector(dx: 100, dy: 100) + + let imageNode : SKSpriteNode + var ellipseNode : SKShapeNode + + var originalSize: CGSize + var originalEllipseSize: CGSize + + var cellPosition: CGPoint{ + didSet(cellPosition){ + self.position.x = SpriteMeeple.offset.x + SpriteMeeple.direction.dx*cellPosition.x + self.position.y = SpriteMeeple.offset.y + SpriteMeeple.direction.dx*cellPosition.y + } + } + + init(imageNamed imageName: String, size: CGSize, backgroundColor: UIColor, imageRotation : Double = 0){ + imageNode = SKSpriteNode(imageNamed: imageName) + originalSize = CGSize(width: 80, height: 65) + imageNode.size = originalSize + + + originalEllipseSize = CGSize(width: 90, height: 90) + ellipseNode = SKShapeNode(ellipseOf: originalEllipseSize) + ellipseNode.fillColor = backgroundColor + + cellPosition = CGPoint(x: 0, y: 0) + + super.init() + + let radians = CGFloat(imageRotation * Double.pi / 180.0) + imageNode.zRotation = radians + + //ellipseNode = SKShapeNode(ellipseOf: CGSize(width: imageNode.size.width, height: imageNode.size.height)) + self.addChild(ellipseNode) + self.addChild(imageNode) + } + + required init?(coder aDecoder:NSCoder){ + imageNode = SKSpriteNode(imageNamed: "rat") + ellipseNode = SKShapeNode(ellipseOf: CGSize(width: 0, height: 0)) + cellPosition = CGPoint(x: 0, y: 0) + originalSize = CGSize(width: 0, height: 0) + originalEllipseSize = CGSize(width: 0, height: 0) + super.init(coder: aDecoder) + } + + override var isUserInteractionEnabled: Bool{ + set { } + get { true } + } + + override func touchesBegan(_ touches: Set, with event: UIEvent?){ + imageNode.size = CGSize(width: imageNode.size.width * 1.1, height: imageNode.size.height * 1.1) + ellipseNode.path = SKShapeNode(ellipseOf: CGSize(width: originalEllipseSize.width*1.1, height: originalEllipseSize.height*1.1)).path + self.zPosition = 1 + } + + override func touchesEnded(_ touches: Set, with event: UIEvent?) { + if let parent = parent, let position = touches.first?.location(in: parent) { + // Arrondir à la case la plus proche pour x et y + let x = round(position.x / 100) * 100 + let y = round(position.y / 100) * 100 + + // Assurer que les coordonnées sont dans les limites + let clampedX = min(max(x, -300), 300) + let clampedY = min(max(y, -400), 400) + + self.position = CGPoint(x: clampedX, y: clampedY) + } + + imageNode.size = originalSize + ellipseNode.path = SKShapeNode(ellipseOf: originalEllipseSize).path + + self.zPosition = 0 + } + + + override func touchesMoved(_ touches: Set, with event: UIEvent?){ + self.position = touches.first?.location(in: parent!) ?? CGPoint(x: 0, y: 0) + } +} diff --git a/DouShouQi_App/DouShouQi_App/Components/TitlePageFrame.swift b/DouShouQi_App/DouShouQi_App/Components/TitlePageFrame.swift index 5346fe0..f4b4194 100644 --- a/DouShouQi_App/DouShouQi_App/Components/TitlePageFrame.swift +++ b/DouShouQi_App/DouShouQi_App/Components/TitlePageFrame.swift @@ -23,7 +23,7 @@ struct TitlePageFrame: View { .resizable() .aspectRatio(contentMode: .fit) .frame(width: ImageWidth, height: ImageHeight) - + SwiftUI.Text(self.Text) .textStyle(CustomTextStyles.Title) diff --git a/DouShouQi_App/DouShouQi_App/ContentView.swift b/DouShouQi_App/DouShouQi_App/ContentView.swift index 9923c70..a6027c0 100644 --- a/DouShouQi_App/DouShouQi_App/ContentView.swift +++ b/DouShouQi_App/DouShouQi_App/ContentView.swift @@ -6,8 +6,10 @@ // import SwiftUI +import DouShouQiModel struct ContentView: View { + var body: some View { VStack { Image(systemName: "globe") diff --git a/DouShouQi_App/DouShouQi_App/SoundPlayerClass/MusicPlayer.swift b/DouShouQi_App/DouShouQi_App/SoundPlayerClass/MusicPlayer.swift index d4faadc..197be35 100644 --- a/DouShouQi_App/DouShouQi_App/SoundPlayerClass/MusicPlayer.swift +++ b/DouShouQi_App/DouShouQi_App/SoundPlayerClass/MusicPlayer.swift @@ -1,8 +1,8 @@ // -// MusicPlayer.swift +// MusicPlayer.swift // DouShouQi_App // -// Created by étudiant on 26/05/2024. +// Created by Nathan Verdier on 27/05/2024. // import Foundation @@ -18,7 +18,7 @@ class MusicPlayer { do { audioPlayer = try AVAudioPlayer(contentsOf: backgroundMusic as URL) guard let audioPlayer = audioPlayer else { return } - audioPlayer.numberOfLoops = -1 // Loop indefinitely + audioPlayer.numberOfLoops = -1 audioPlayer.prepareToPlay() audioPlayer.play() } catch { @@ -31,4 +31,3 @@ class MusicPlayer { audioPlayer?.stop() } } - diff --git a/DouShouQi_App/DouShouQi_App/SoundPlayerClass/SoundPlayer.swift b/DouShouQi_App/DouShouQi_App/SoundPlayerClass/SoundPlayer.swift index 2378b8a..1bd8a1d 100644 --- a/DouShouQi_App/DouShouQi_App/SoundPlayerClass/SoundPlayer.swift +++ b/DouShouQi_App/DouShouQi_App/SoundPlayerClass/SoundPlayer.swift @@ -1,8 +1,8 @@ // -// SoundPlayer.swift +// SoundPlayer.swift // DouShouQi_App // -// Created by étudiant on 27/05/2024. +// Created by Nathan Verdier on 27/05/2024. // import Foundation diff --git a/DouShouQi_App/DouShouQi_App/Views/Game/GameView.swift b/DouShouQi_App/DouShouQi_App/Views/Game/GameView.swift new file mode 100644 index 0000000..45ad8f4 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Views/Game/GameView.swift @@ -0,0 +1,31 @@ +// +// MainMenuView.swift +// DouShouQi_App +// +// Created by Nathan Verdier on 26/05/2024. +// + +import SwiftUI +import SpriteKit + +struct GameView: View { + var gameScene : GameScene = GameScene(size: CGSize(width: 700, height: 900)) + var body: some View { + VStack { + TopGameBoard().frame(maxHeight: 200) + SpriteView(scene: gameScene) + } + .onAppear { + MusicPlayer.shared.playBackgroundMusic(music: "GameMusic") + } + .onDisappear { + MusicPlayer.shared.stopBackgroundMusic() + } + } +} + +struct GameView_Previews: PreviewProvider { + static var previews: some View { + GameView() + } +} diff --git a/DouShouQi_App/DouShouQi_App/Views/Menu/MainMenuView.swift b/DouShouQi_App/DouShouQi_App/Views/Menu/MainMenuView.swift index 133218e..483afce 100644 --- a/DouShouQi_App/DouShouQi_App/Views/Menu/MainMenuView.swift +++ b/DouShouQi_App/DouShouQi_App/Views/Menu/MainMenuView.swift @@ -10,6 +10,10 @@ import SwiftUI struct MainMenuView: View { @State private var showSplash = true + @State private var currentImage: String? + @State private var timer: Timer? + @State private var showImage = false + let images: [String] = [AppImages.SemiLion, AppImages.SemiDog, AppImages.SemiRat, AppImages.SemiWolf, AppImages.SemiLeopard, AppImages.SemiElephant, AppImages.SemiCat] // Add your image names here var body: some View { NavigationView { @@ -38,10 +42,19 @@ struct MainMenuView: View { MainMenuButton(text: "Players", destination: PlayersView(), sound: "TitleScreenButtonSound", topRightCorner: 10, bottomRightCorner: 10) MainMenuButton(text: "Settings", destination: SettingsView(), sound: "TitleScreenButtonSound", topRightCorner: 10, bottomRightCorner: 10) } - Image(AppImages.SemiLion) - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: 200, height: 500) + if let currentImage = currentImage { + Image(currentImage) + .resizable() + .aspectRatio(contentMode: .fit) + .frame(width: 200, height: 500) + .transition(.opacity) + .animation(.easeInOut(duration: 1), value: showImage) + .onAppear { + withAnimation { + showImage = true + } + } + } } } Spacer() @@ -66,15 +79,35 @@ struct MainMenuView: View { Spacer() .onAppear { + startTimer() MusicPlayer.shared.playBackgroundMusic(music: "TitleScreenMusic") } .onDisappear { + stopTimer() MusicPlayer.shared.stopBackgroundMusic() } } } } } + + private func startTimer() { + timer = Timer.scheduledTimer(withTimeInterval: 2.0, repeats: true) { _ in + changeImage() + } + changeImage() // Immediately change the image on appear + } + + private func stopTimer() { + timer?.invalidate() + timer = nil + } + + private func changeImage() { + DispatchQueue.main.async { + currentImage = images.randomElement() + } + } } struct MainMenuView_Previews: PreviewProvider { diff --git a/DouShouQi_App/DouShouQi_App/Views/Player/ScoreBoardView.swift b/DouShouQi_App/DouShouQi_App/Views/Player/ScoreBoardView.swift index 53c3e1a..6752547 100644 --- a/DouShouQi_App/DouShouQi_App/Views/Player/ScoreBoardView.swift +++ b/DouShouQi_App/DouShouQi_App/Views/Player/ScoreBoardView.swift @@ -39,12 +39,12 @@ struct ScoreBoardView: View { .frame(height: 2) } - PlayerResumeFrame(Name: "Nathan Verdier", Rank: 1, Wins: 19, Looses: 15) - PlayerResumeFrame(Name: "Rayhan Hassou", Rank: 2, Wins: 17, Looses: 17) - PlayerResumeFrame(Name: "Rémi Regnault", Rank: 3, Wins: 15, Looses: 19) - - Spacer() + PlayerScoreResumeFrame(Name: "Nathan Verdier", Rank: 1, Wins: 19, Looses: 15) + PlayerScoreResumeFrame(Name: "Rayhan Hassou", Rank: 2, Wins: 17, Looses: 17) + PlayerScoreResumeFrame(Name: "Rémi Regnault", Rank: 3, Wins: 15, Looses: 19) } + + Spacer() } .padding(10) } diff --git a/DouShouQi_App/DouShouQi_App/Views/Player/SelectPlayerView.swift b/DouShouQi_App/DouShouQi_App/Views/Player/SelectPlayerView.swift new file mode 100644 index 0000000..26b6bc3 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Views/Player/SelectPlayerView.swift @@ -0,0 +1,38 @@ +// +// SelectPlayerView.swift +// DouShouQi_App +// +// Created by nathan on 23/05/2024. +// + +import SwiftUI + +struct SelectPlayerView: View { + var body: some View { + VStack { + TitlePageFrame(Text: "select players") + + Spacer() + + SelectPlayerButtonView() + + Spacer() + + HStack { + VStack(alignment: .trailing) + { + MainMenuButton(text: "Start", destination: ContentView(), sound: "TitleScreenButtonSound", horizontalAlignment: .trailing, topLeftCorner: 10, bottomLeftCorner: 10) + MainMenuButton(text: "Settings", destination: ContentView(), sound: "TitleScreenButtonSound", horizontalAlignment: .trailing, topLeftCorner: 10, bottomLeftCorner: 10) + } + } + + Spacer() + } + } +} + +struct SelectPlayerViewPreviews: PreviewProvider { + static var previews: some View { + SelectPlayerView() + } +} diff --git a/README.md b/README.md index de83e03..08f4601 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,120 @@ -# DouShouQi_App +
+ + + + +--- + + +  ![IOS](https://img.shields.io/badge/iOS-000000?&logo=ios&logoColor=white) +  ![XCode](https://img.shields.io/badge/Xcode-007ACC?logo=Xcode&logoColor=white) +  ![Swift](https://img.shields.io/badge/Swift-F54A2A?logo=swift&logoColor=white) + + +--- + + +[Présentation](#présentation) | [Répartion](#répartition-du-gitlab) | [Fonctionnement](#fonctionnement) | [Deploiement](#deploiement) + + + + +
+ + +## Présentation + + +**Nom de l'application** : Dou Shou Qi + + +**Contexte** : + + +Dou Shou Qi, ou "Jeu de la Jungle", est un jeu de société chinois où deux joueurs déplacent des pièces représentant des animaux sur un plateau de 7x9 cases. Chaque animal a une force différente et peut capturer d'autres animaux selon une hiérarchie spécifique, sauf le Rat qui peut capturer l'Éléphant. Le but est de déplacer une de ses pièces dans la tanière de l'adversaire, tout en utilisant les rivières et les capacités spéciales des animaux pour capturer les pièces adverses et défendre sa propre tanière. + + +**Récapitulation du Projet**: 👇 + + +Ce projet à pour but de crée une application pour permettre de jouer à Dou Shou Qi sur des appareils Apple. Le but est de nous apprendre à utiliser Swift UI. + + +## Répartition du Gitlab + + +La racine de notre gitlab est composé de deux dossier : + + +[**DouShouQi_App**](DouShouQi_App) : **Code de l'application** + + +[**Documentation**](Documentation) : **Regroupe l'entièreté de la documentation** + + +
+ + +:warning: Code de l'application en cours! + + +## Fonctionnement + + +
+ + +
+ + +### Accueil + + + + + +### Sélection des joueurs + + + + +### Partie + + +### Historique + + + + +### Meilleurs scores + + + + +### Joueurs + + + +## Déploiement + + +- [x]   ![IOS](https://img.shields.io/badge/IOS-000?style=for-the-badge&logo=apple&logoColor=black&color=white) + + +## Techniciens + + + + + + + + + + + +
+
+ + diff --git a/Vs_Red.png b/Vs_Red.png new file mode 100644 index 0000000..bf6d094 Binary files /dev/null and b/Vs_Red.png differ