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 @@
-
-
-
+
\ 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 = "