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. + +![xcframework](capture.png) + +> 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