diff --git a/ArkitDoushiQi/Model/README.md b/ArkitDoushiQi/Model/README.md
new file mode 100644
index 0000000..669e04a
--- /dev/null
+++ b/ArkitDoushiQi/Model/README.md
@@ -0,0 +1,36 @@
+# SwiftUI_ARKit_2024
+
+## Evaluations
+
+- TP en groupe (2 ou 3)
+- évaluations orales individuelles (dernière semaine)
+
+## 2 ressources
+
+- SwiftUI (iOS)
+- ARKit
+
+## Sujet
+
+- Vues (1,5 semaine) -> 1 CM
+ - **CONSEIL**: sketchs (même si ce ne sont que dessins rapides pour valider)
+ - Menu
+ - Meilleurs scores (#victoires, #défaites)
+ - Parties enregistrées
+ - Jouer une partie (1 vs 1 sur le même périphérique)
+ - gestion des thèmes (light & dark)
+ - (bonus) app multilingue
+- liaison avec le modèle (2,5 semaines) -> 1 ou 2 CM
+ - jeu fonctionnel
+ - données stubbées ou API (si disponible ?)
+- jouer en RA (2 semaines) -> 1 ou 2 CM
+ - 1 vs 1 sur la tablette
+- quand on choisit les joueurs, photo recadrée autour de la tête (face pic)
+ - on peut aussi choisir les IA
+
+- Bonus :
+ - on peut jouer sur deux périphériques
+
+## Fourni
+
+**Je fournis la bibliothèque pour le modèle !!!**
\ No newline at end of file
diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/Info.plist b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/Info.plist
new file mode 100644
index 0000000..98089ee
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/Info.plist
@@ -0,0 +1,48 @@
+
+
+
+
+ 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
+
+
+ CFBundlePackageType
+ XFWK
+ XCFrameworkFormatVersion
+ 1.0
+
+
diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/DouShouQiModel b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/DouShouQiModel
new file mode 100755
index 0000000..5ff1fa8
Binary files /dev/null and b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/DouShouQiModel differ
diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Headers/DouShouQiModel-Swift.h b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Headers/DouShouQiModel-Swift.h
new file mode 100644
index 0000000..d7b3274
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Headers/DouShouQiModel.h b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Headers/DouShouQiModel.h
new file mode 100644
index 0000000..5bbf06a
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Info.plist b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Info.plist
new file mode 100644
index 0000000..e83fb5f
Binary files /dev/null and b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Info.plist differ
diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.abi.json b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.abi.json
new file mode 100644
index 0000000..5958bce
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.abi.json
@@ -0,0 +1,8487 @@
+{
+ "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": "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": 1477,
+ "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": 1748,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 2084,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 2576,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 3006,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 3410,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 3821,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 4255,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 4574,
+ "length": 2,
+ "value": "[]"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.private.swiftinterface b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.private.swiftinterface
new file mode 100644
index 0000000..e57e831
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.private.swiftinterface
@@ -0,0 +1,263 @@
+// 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
+ #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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftdoc b/ArkitDoushiQi/Model/XCFramework/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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftdoc differ
diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftinterface b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftinterface
new file mode 100644
index 0000000..e57e831
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios.swiftinterface
@@ -0,0 +1,263 @@
+// 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
+ #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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/module.modulemap b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64/DouShouQiModel.framework/Modules/module.modulemap
new file mode 100644
index 0000000..e7aa10a
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/DouShouQiModel b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/DouShouQiModel
new file mode 100755
index 0000000..eef86ed
Binary files /dev/null and b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/DouShouQiModel differ
diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Headers/DouShouQiModel-Swift.h b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Headers/DouShouQiModel-Swift.h
new file mode 100644
index 0000000..5e14e79
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Headers/DouShouQiModel.h b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Headers/DouShouQiModel.h
new file mode 100644
index 0000000..5bbf06a
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Info.plist b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Info.plist
new file mode 100644
index 0000000..33fe547
Binary files /dev/null and b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Info.plist differ
diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json
new file mode 100644
index 0000000..5958bce
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.abi.json
@@ -0,0 +1,8487 @@
+{
+ "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": "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": 1477,
+ "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": 1748,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 2084,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 2576,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 3006,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 3410,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 3821,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 4255,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 4574,
+ "length": 2,
+ "value": "[]"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface
new file mode 100644
index 0000000..c28ec0f
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface
@@ -0,0 +1,263 @@
+// 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
+ #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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc b/ArkitDoushiQi/Model/XCFramework/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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc differ
diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface
new file mode 100644
index 0000000..c28ec0f
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface
@@ -0,0 +1,263 @@
+// 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
+ #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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json b/ArkitDoushiQi/Model/XCFramework/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..5958bce
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json
@@ -0,0 +1,8487 @@
+{
+ "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": "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": 1477,
+ "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": 1748,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 2084,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 2576,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 3006,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 3410,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 3821,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 4255,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQi_ModelPackage\/DouShouQiModel\/Game.swift",
+ "kind": "Array",
+ "offset": 4574,
+ "length": 2,
+ "value": "[]"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface b/ArkitDoushiQi/Model/XCFramework/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..6f1dcba
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface
@@ -0,0 +1,263 @@
+// 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
+ #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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc b/ArkitDoushiQi/Model/XCFramework/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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc differ
diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
new file mode 100644
index 0000000..6f1dcba
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
@@ -0,0 +1,263 @@
+// 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
+ #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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/module.modulemap b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/Modules/module.modulemap
new file mode 100644
index 0000000..e7aa10a
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/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/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/_CodeSignature/CodeResources b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/ios-arm64_x86_64-simulator/DouShouQiModel.framework/_CodeSignature/CodeResources
new file mode 100644
index 0000000..56ba0b2
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/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
+
+ +cil+OvQa6f6Z8N6SPo0jjTBtHs=
+
+ Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface
+
+ HdyEr2FFoJC4V6jWwFYpYh2iheo=
+
+ Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc
+
+ uNDHcaRHf/ULIsVZEMiJY2HGm4c=
+
+ Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface
+
+ HdyEr2FFoJC4V6jWwFYpYh2iheo=
+
+ Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftmodule
+
+ SymfNK/AYRmastYMaA21hPyzdOc=
+
+ Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json
+
+ +cil+OvQa6f6Z8N6SPo0jjTBtHs=
+
+ Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface
+
+ +WWftOghKWd63vrkXPKBnuJOHwE=
+
+ Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
+
+ tkYnhquJQVCRsNSI7Hl83a7/uFk=
+
+ Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
+
+ +WWftOghKWd63vrkXPKBnuJOHwE=
+
+ Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
+
+ YoJTbMxImG3Eak5jItcrQKbWMFE=
+
+ 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
+
+ GiYRs1L94F2wuYb5eioTx92/kYQdn4yT7JhPK5AHTxU=
+
+
+ Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface
+
+ hash2
+
+ ytjiu1XZu6YAZkvwjwniJmEgXgBL5vRtNtfAyy+pZow=
+
+
+ Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftdoc
+
+ hash2
+
+ cpfiPzUVsQ9nZcmz7k/CLhMlNAa3hCWAVPNrKBhrKls=
+
+
+ Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftinterface
+
+ hash2
+
+ ytjiu1XZu6YAZkvwjwniJmEgXgBL5vRtNtfAyy+pZow=
+
+
+ Modules/DouShouQiModel.swiftmodule/arm64-apple-ios-simulator.swiftmodule
+
+ hash2
+
+ ZuRvy190qCUbdlu/cMfrXvj9Y0tdF6Dkw3FWd5I/A2Q=
+
+
+ Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.abi.json
+
+ hash2
+
+ GiYRs1L94F2wuYb5eioTx92/kYQdn4yT7JhPK5AHTxU=
+
+
+ Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface
+
+ hash2
+
+ EjXGpzyIimRu3pAcfzS/yVkUrPy2mPO58wjN+hAjXWs=
+
+
+ Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
+
+ hash2
+
+ SsJ/b3BHzQ9S5Wz5tzNZPeo8WQ4dX+hCQFo95fU45as=
+
+
+ Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
+
+ hash2
+
+ EjXGpzyIimRu3pAcfzS/yVkUrPy2mPO58wjN+hAjXWs=
+
+
+ Modules/DouShouQiModel.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
+
+ hash2
+
+ /0gPxbXk930g4m+FeiNXA2bM4M2Uzk8BrRdM3O+/j6U=
+
+
+ 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/ArkitDoushiQi/Model/XCFramework/capture.png b/ArkitDoushiQi/Model/XCFramework/capture.png
new file mode 100644
index 0000000..a4da54a
Binary files /dev/null and b/ArkitDoushiQi/Model/XCFramework/capture.png differ
diff --git a/ArkitDoushiQi/Model/XCFramework/howto.md b/ArkitDoushiQi/Model/XCFramework/howto.md
new file mode 100644
index 0000000..4778c7f
--- /dev/null
+++ b/ArkitDoushiQi/Model/XCFramework/howto.md
@@ -0,0 +1,12 @@
+# How to use the framework?
+
+Drag and drop the **_DSQ.xcframework_** folder in the *Frameworks, Libraries, and Embedded Content* of your XCode app settings.
+
+
+
+> Note:
+> This work only for iOS (iPhone/iPad devices and iPhone/iPad simulators).
+
+Do not forget to use the certificates provided in the [following repository](https://codefirst.iut.uca.fr/git/mchSamples_Apple/appleCertificates).
+
+This library has not been fully tested and may change over time. Do not hesitate to contact me if you find any bug.
\ No newline at end of file