Add copyright statement

This commit is contained in:
2402_87729496 2026-04-26 11:36:12 +08:00
parent 95ca0b342f
commit 0637373af2
69 changed files with 1156 additions and 11913 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -6061,3 +6061,187 @@ Require stack:
[2026-01-03T12:08:59.205] [DEBUG] debug-file - worker[1] exits with exit code 1.
[2026-01-03T12:08:59.210] [DEBUG] debug-file - worker[14] exits with exit code 1.
[2026-01-03T12:08:59.244] [DEBUG] debug-file - worker[4] exits with exit code 1.
[2026-04-25T15:19:41.139] [DEBUG] debug-file - env: nodejsVersion=v18.20.1
[2026-04-25T15:19:41.704] [DEBUG] debug-file - Hvigor init with startParameters:{
hvigorfileTypeCheck: false,
parallelExecution: true,
incrementalExecution: true,
printStackTrace: false,
daemon: false,
analyze: 0,
logLevel: Level { level: 20000, levelStr: 'INFO', colour: 'green' },
optimizationStrategy: 'memory',
hotCompile: undefined,
hotReloadBuild: undefined,
customizedParam: undefined
}
[2026-04-25T15:19:44.246] [DEBUG] debug-file - hvigorfile, require result: { default: { system: [Function: appTasks], plugins: [] } }
[2026-04-25T15:19:44.250] [DEBUG] debug-file - Starting plugin build process
[2026-04-25T15:19:44.394] [DEBUG] debug-file - App plugin register hook start...
[2026-04-25T15:19:44.395] [DEBUG] debug-file - Start initialize project's product build option map with build mode debug.
[2026-04-25T15:19:44.399] [DEBUG] debug-file - Obtain build option for product 'default'in this build.
[2026-04-25T15:19:41.142] [DEBUG] debug-file - env: hvigor-config.json5 content = {
modelVersion: '5.1.1',
dependencies: {},
execution: {},
logging: {},
debugging: {}
}
[2026-04-25T15:19:44.695] [DEBUG] debug-file - Create resident worker with id: 0.
[2026-04-25T15:19:41.705] [DEBUG] debug-file - Since current hvigor version 6.22.3 differs from last hvigor version
5.19.8, delete file-cache.json and task-cache.json.
[2026-04-25T15:19:44.247] [DEBUG] debug-file - hvigorfile, binding system plugins [Function: appTasks]
[2026-04-25T15:19:44.394] [DEBUG] debug-file - App plugin register hook end...
[2026-04-25T15:19:44.250] [DEBUG] debug-file - App plugin prepare start...
[2026-04-25T15:19:44.396] [DEBUG] debug-file - Picking option from product 'default' with build mode 'debug'.
[2026-04-25T15:19:44.402] [DEBUG] debug-file - E:\HarmonyOS_Project_Pratice\OpenHamony_RISC\fenxingshuing\fenxingshu\build\cache\default\remote_hsp\remoteHspCache.json not exists.
[2026-04-25T15:19:41.147] [DEBUG] debug-file - env: daemon=false
[2026-04-25T15:19:44.699] [DEBUG] debug-file - Create resident worker with id: 1.
[2026-04-25T15:19:41.707] [DEBUG] debug-file - Cache service initialization finished in 3 ms
[2026-04-25T15:19:44.394] [DEBUG] debug-file - Plugin build process completed
[2026-04-25T15:19:44.396] [DEBUG] debug-file - Product 'default' build option initialized
[2026-04-25T15:19:44.250] [DEBUG] debug-file - App plugin prepare end...
[2026-04-25T15:19:44.654] [DEBUG] debug-file - hvigor build process will be closed with an error.
[2026-04-25T15:19:44.704] [DEBUG] debug-file - Current worker pool is stopped or closed.
[2026-04-25T15:19:41.147] [DEBUG] debug-file - no-daemon, use the parent process.execArgv --max-old-space-size=8192,--max-semi-space-size=16,--expose-gc
[2026-04-25T15:19:41.708] [DEBUG] debug-file - hvigorfile, resolving E:\HarmonyOS_Project_Pratice\OpenHamony_RISC\fenxingshuing\fenxingshu\hvigorfile.ts
[2026-04-25T15:19:44.250] [DEBUG] debug-file - App plugin creating...
[2026-04-25T15:19:44.396] [DEBUG] debug-file - End initialize project's product build option map with build mode 'debug'.
[2026-04-25T15:19:44.704] [DEBUG] debug-file - Clear worker 0.
[2026-04-25T15:19:44.658] [DEBUG] debug-file - ERROR: stacktrace = Error: EPERM: operation not permitted, scandir 'C:\Users\Acer\AppData\Local\Temp\WFWE723.tmp.dir'
at Object.readdirSync (node:fs:1525:3)
at OhLocalComponentLoader.findPotentialSdks (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\node_modules\@ohos\sdkmanager-common\build\src\core\loader\abstract-local-component-loader.js:58:47)
at OhLocalComponentLoader.load (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\node_modules\@ohos\sdkmanager-common\build\src\core\loader\abstract-local-component-loader.js:27:43)
at OhSdkInfoHandler.getOrDownload (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\node_modules\@ohos\sdkmanager-common\build\src\ohos\api\oh-sdk-info-handler.js:22:83)
at OhosSdkLoader.getOhosSdkComponents (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\sdk\ohos-sdk-loader.js:1:1805)
at OhosSdkInfo.setup (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\sdk\info\ohos-sdk-info.js:1:1277)
at ProjectTaskService.setup (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\tasks\service\project-task-service.js:1:2525)
at ProjectImpl.<anonymous> (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\plugin\builder\app-plugin-builder.js:1:2236)
at ProjectImpl.executeAfterBindSystemPluginsHook (D:\deveco\DevEco Studio\tools\hvigor\hvigor\src\base\internal\lifecycle\hvigor-node-impl\default-node-impl.js:1:5526)
at evaluateNodeVigorFile (D:\deveco\DevEco Studio\tools\hvigor\hvigor\src\base\internal\lifecycle\configuration.js:1:9214)
[2026-04-25T15:19:44.705] [DEBUG] debug-file - Worker 0 has been cleared.
[2026-04-25T15:19:44.658] [ERROR] debug-file - Error: EPERM: operation not permitted, scandir 'C:\Users\Acer\AppData\Local\Temp\WFWE723.tmp.dir'
at Object.readdirSync (node:fs:1525:3)
at OhLocalComponentLoader.findPotentialSdks (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\node_modules\@ohos\sdkmanager-common\build\src\core\loader\abstract-local-component-loader.js:58:47)
at OhLocalComponentLoader.load (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\node_modules\@ohos\sdkmanager-common\build\src\core\loader\abstract-local-component-loader.js:27:43)
at OhSdkInfoHandler.getOrDownload (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\node_modules\@ohos\sdkmanager-common\build\src\ohos\api\oh-sdk-info-handler.js:22:83)
at OhosSdkLoader.getOhosSdkComponents (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\sdk\ohos-sdk-loader.js:1:1805)
at OhosSdkInfo.setup (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\sdk\info\ohos-sdk-info.js:1:1277)
at ProjectTaskService.setup (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\tasks\service\project-task-service.js:1:2525)
at ProjectImpl.<anonymous> (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\plugin\builder\app-plugin-builder.js:1:2236)
at ProjectImpl.executeAfterBindSystemPluginsHook (D:\deveco\DevEco Studio\tools\hvigor\hvigor\src\base\internal\lifecycle\hvigor-node-impl\default-node-impl.js:1:5526)
at evaluateNodeVigorFile (D:\deveco\DevEco Studio\tools\hvigor\hvigor\src\base\internal\lifecycle\configuration.js:1:9214)
[2026-04-25T15:19:44.705] [DEBUG] debug-file - Current idle worker size: 1.
[2026-04-25T15:19:44.667] [ERROR] debug-file - BUILD FAILED in 2 s 973 ms
[2026-04-25T15:19:44.705] [DEBUG] debug-file - Current busy worker size: 0.
[2026-04-25T15:19:44.690] [DEBUG] debug-file - Since there is no instance or instance is terminated, create a new worker pool.
[2026-04-25T15:19:44.705] [DEBUG] debug-file - Clear worker 1.
[2026-04-25T15:19:44.691] [DEBUG] debug-file - Worker pool is initialized with config: {
minPoolNum: 2,
maxPoolNum: undefined,
maxCoreSize: undefined,
cacheCapacity: undefined,
cacheTtl: undefined
}
[2026-04-25T15:19:44.705] [DEBUG] debug-file - Worker 1 has been cleared.
[2026-04-25T15:19:44.705] [DEBUG] debug-file - Current idle worker size: 0.
[2026-04-25T15:19:44.705] [DEBUG] debug-file - Current busy worker size: 0.
[2026-04-25T15:19:44.723] [DEBUG] debug-file - hvigor build process will be closed.
[2026-04-25T15:19:44.731] [DEBUG] debug-file - worker[0] exits with exit code 0.
[2026-04-25T15:19:44.731] [DEBUG] debug-file - worker[1] exits with exit code 0.
[2026-04-25T15:19:44.732] [DEBUG] debug-file - Current worker pool is terminated.
[2026-04-26T11:35:26.963] [DEBUG] debug-file - env: nodejsVersion=v18.20.1
[2026-04-26T11:35:27.048] [DEBUG] debug-file - env: daemon=true
[2026-04-26T11:35:26.966] [DEBUG] debug-file - env: hvigor-config.json5 content = {
modelVersion: '5.1.1',
dependencies: {},
execution: {},
logging: {},
debugging: {}
}
[2026-04-26T11:35:27.956] [DEBUG] debug-file - java daemon tryConnect failed Error: connect ECONNREFUSED 127.0.0.1:45050
[2026-04-26T11:35:27.979] [DEBUG] debug-file - java daemon started at port 45050 pid 37200
[2026-04-26T11:35:28.022] [DEBUG] debug-file - session manager: set active socket. socketId=Wyv8TpuRDLPnIfibAAAB
[2026-04-26T11:35:28.878] [DEBUG] debug-file - watch worker: worker id should be larger than 0. Nothing will be sent to any worker thread.
[2026-04-26T11:35:28.882] [DEBUG] debug-file - Since there is no instance or instance is terminated, create a new worker pool.
[2026-04-26T11:35:28.883] [DEBUG] debug-file - Worker pool is initialized with config: {
minPoolNum: 2,
maxPoolNum: undefined,
maxCoreSize: undefined,
cacheCapacity: undefined,
cacheTtl: undefined
}
[2026-04-26T11:35:28.883] [DEBUG] debug-file - Create resident worker with id: 0.
[2026-04-26T11:35:28.886] [DEBUG] debug-file - Create resident worker with id: 1.
[2026-04-26T11:35:28.888] [DEBUG] debug-file - Workers' log level updated to INFO
[2026-04-26T11:35:28.898] [DEBUG] debug-file - Hvigor init with startParameters:{
hvigorfileTypeCheck: false,
parallelExecution: true,
incrementalExecution: true,
printStackTrace: false,
daemon: true,
analyze: 0,
logLevel: Level { level: 20000, levelStr: 'INFO', colour: 'green' },
optimizationStrategy: 'memory',
hotCompile: undefined,
hotReloadBuild: undefined,
customizedParam: undefined
}
[2026-04-26T11:35:28.899] [DEBUG] debug-file - Since current hvigor version 6.22.3 differs from last hvigor version
5.19.8, delete file-cache.json and task-cache.json.
[2026-04-26T11:35:28.903] [DEBUG] debug-file - Cache service initialization finished in 5 ms
[2026-04-26T11:35:28.906] [DEBUG] debug-file - hvigorfile, resolving E:\HarmonyOS_Project_Pratice\OpenHamony_RISC\fenxingshuing\fenxingshu\hvigorfile.ts
[2026-04-26T11:35:31.012] [DEBUG] debug-file - hvigorfile, require result: { default: { plugins: [] } }
[2026-04-26T11:35:31.012] [DEBUG] debug-file - hvigorfile, binding system plugins null
[2026-04-26T11:35:31.012] [DEBUG] debug-file - Starting plugin build process
[2026-04-26T11:35:31.012] [DEBUG] debug-file - App plugin prepare start...
[2026-04-26T11:35:31.012] [DEBUG] debug-file - App plugin prepare end...
[2026-04-26T11:35:31.013] [DEBUG] debug-file - App plugin creating...
[2026-04-26T11:35:31.146] [DEBUG] debug-file - App plugin register hook start...
[2026-04-26T11:35:31.147] [DEBUG] debug-file - App plugin register hook end...
[2026-04-26T11:35:31.147] [DEBUG] debug-file - Plugin build process completed
[2026-04-26T11:35:31.148] [DEBUG] debug-file - Start initialize project's product build option map with build mode debug.
[2026-04-26T11:35:31.148] [DEBUG] debug-file - Picking option from product 'default' with build mode 'debug'.
[2026-04-26T11:35:31.148] [DEBUG] debug-file - Product 'default' build option initialized
[2026-04-26T11:35:31.149] [DEBUG] debug-file - End initialize project's product build option map with build mode 'debug'.
[2026-04-26T11:35:31.153] [DEBUG] debug-file - Obtain build option for product 'default'in this build.
[2026-04-26T11:35:31.156] [DEBUG] debug-file - E:\HarmonyOS_Project_Pratice\OpenHamony_RISC\fenxingshuing\fenxingshu\build\cache\default\remote_hsp\remoteHspCache.json not exists.
[2026-04-26T11:35:31.411] [DEBUG] debug-file - hvigor build process will be closed with an error.
[2026-04-26T11:35:31.412] [DEBUG] debug-file - ERROR: stacktrace = Error: EPERM: operation not permitted, scandir 'C:\Users\Acer\AppData\Local\Temp\WFWE723.tmp.dir'
at Object.readdirSync (node:fs:1525:3)
at OhLocalComponentLoader.findPotentialSdks (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\node_modules\@ohos\sdkmanager-common\build\src\core\loader\abstract-local-component-loader.js:58:47)
at OhLocalComponentLoader.load (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\node_modules\@ohos\sdkmanager-common\build\src\core\loader\abstract-local-component-loader.js:27:43)
at OhSdkInfoHandler.getOrDownload (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\node_modules\@ohos\sdkmanager-common\build\src\ohos\api\oh-sdk-info-handler.js:22:83)
at OhosSdkLoader.getOhosSdkComponents (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\sdk\ohos-sdk-loader.js:1:1805)
at OhosSdkInfo.setup (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\sdk\info\ohos-sdk-info.js:1:1277)
at ProjectTaskService.setup (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\tasks\service\project-task-service.js:1:2525)
at ProjectImpl.<anonymous> (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\plugin\builder\app-plugin-builder.js:1:2236)
at ProjectImpl.executeAfterBindSystemPluginsHook (D:\deveco\DevEco Studio\tools\hvigor\hvigor\src\base\internal\lifecycle\hvigor-node-impl\default-node-impl.js:1:5526)
at evaluateNodeVigorFile (D:\deveco\DevEco Studio\tools\hvigor\hvigor\src\base\internal\lifecycle\configuration.js:1:9214)
[2026-04-26T11:35:31.413] [ERROR] debug-file - Error: EPERM: operation not permitted, scandir 'C:\Users\Acer\AppData\Local\Temp\WFWE723.tmp.dir'
at Object.readdirSync (node:fs:1525:3)
at OhLocalComponentLoader.findPotentialSdks (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\node_modules\@ohos\sdkmanager-common\build\src\core\loader\abstract-local-component-loader.js:58:47)
at OhLocalComponentLoader.load (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\node_modules\@ohos\sdkmanager-common\build\src\core\loader\abstract-local-component-loader.js:27:43)
at OhSdkInfoHandler.getOrDownload (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\node_modules\@ohos\sdkmanager-common\build\src\ohos\api\oh-sdk-info-handler.js:22:83)
at OhosSdkLoader.getOhosSdkComponents (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\sdk\ohos-sdk-loader.js:1:1805)
at OhosSdkInfo.setup (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\sdk\info\ohos-sdk-info.js:1:1277)
at ProjectTaskService.setup (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\tasks\service\project-task-service.js:1:2525)
at ProjectImpl.<anonymous> (D:\deveco\DevEco Studio\tools\hvigor\hvigor-ohos-plugin\src\plugin\builder\app-plugin-builder.js:1:2236)
at ProjectImpl.executeAfterBindSystemPluginsHook (D:\deveco\DevEco Studio\tools\hvigor\hvigor\src\base\internal\lifecycle\hvigor-node-impl\default-node-impl.js:1:5526)
at evaluateNodeVigorFile (D:\deveco\DevEco Studio\tools\hvigor\hvigor\src\base\internal\lifecycle\configuration.js:1:9214)
[2026-04-26T11:35:31.423] [ERROR] debug-file - BUILD FAILED in 2 s 534 ms
[2026-04-26T11:35:31.442] [DEBUG] debug-file - Cleanup worker 0.
[2026-04-26T11:35:31.442] [DEBUG] debug-file - Worker 0 has been cleaned up.
[2026-04-26T11:35:31.442] [DEBUG] debug-file - Current idle worker size: 1.
[2026-04-26T11:35:31.442] [DEBUG] debug-file - Current resident worker size: 2.
[2026-04-26T11:35:31.442] [DEBUG] debug-file - Cleanup worker 1.
[2026-04-26T11:35:31.442] [DEBUG] debug-file - Worker 1 has been cleaned up.
[2026-04-26T11:35:31.442] [DEBUG] debug-file - Current idle worker size: 0.
[2026-04-26T11:35:31.442] [DEBUG] debug-file - Current resident worker size: 2.
[2026-04-26T11:35:31.447] [DEBUG] debug-file - session manager: send message to worker process.
[2026-04-26T11:35:31.448] [DEBUG] debug-file - session manager: send message to worker process.
[2026-04-26T11:35:31.455] [DEBUG] debug-file - hvigor build process will be closed.
[2026-04-26T11:35:31.456] [DEBUG] debug-file - worker[0] exits with exit code 1.
[2026-04-26T11:35:31.457] [DEBUG] debug-file - worker[1] exits with exit code 1.
[2026-04-26T11:35:31.458] [DEBUG] debug-file - watch worker: worker id should be larger than 0. Nothing will be sent to any worker thread.
[2026-04-26T11:35:31.458] [DEBUG] debug-file - watch worker: worker id should be larger than 0. Nothing will be sent to any worker thread.

View File

@ -1,68 +1,23 @@
{
"HVIGOR_OHOS_PLUGIN": {
"MODULES": [
{
"MODULE_NAME": "1043bfc77febe75fafec0c4309faccf1",
"API_TYPE": "stageMode",
"INCREMENTAL_TASKS": {
"COMPILE_ARKTS": true
}
}
],
"NATIVE_COMPILER": "Default",
"BUILD_MODE": "debug"
},
"HVIGOR": {
"IS_INCREMENTAL": true,
"IS_DAEMON": true,
"IS_PARALLEL": true,
"IS_HVIGORFILE_TYPE_CHECK": false,
"TASK_TIME": {
"1043bfc77febe75fafec0c4309faccf1": {
"CreateModuleInfo": 474900,
"ConfigureCmake": 323900,
"PreCheckSyscap": 396900,
"GeneratePkgContextInfo": 4343200,
"ProcessIntegratedHsp": 871300,
"BuildNativeWithCmake": 510700,
"ProcessStartupConfig": 1214600,
"BuildNativeWithNinja": 450500,
"GenerateLoaderJson": 8540100,
"BuildJS": 1649700,
"CompileArkTS": 4660388800,
"PackageHap": 43308000,
"SignHap": 167708900,
"CollectDebugSymbol": 981600,
"assembleHap": 212400
"TASK_TIME": {},
"APIS": [],
"CONFIG_EXPERIMENT": {
"ENABLE_MODULE_SKIP": false,
"ENABLE_CPP_FUNCTION_LEVEL_INCREMENTAL": false
},
"CONFIG_PROPERTIES": {},
"BUILD_ID": "202604261135288880",
"ERROR_MESSAGE": [
{
"CODE": "00000000",
"TIMESTAMP": "1777174531411"
}
},
"APIS": [
"getHvigorConfig",
"getRootNodeDescriptor",
"getChildNode",
"getNodeByName",
"getAllNodes",
"getRootNode",
"getNodeName",
"getNodePath",
"subNodes",
"getExtraOption",
"getExtParam",
"getExtParams",
"getProperty",
"getProperties",
"getProductName",
"nodesEvaluated",
"getParameter",
"getCommandEntryTask",
"getStartParams"
],
"CONFIG_PROPERTIES": {
"enableSignTask": true,
"skipNativeIncremental": false,
"hvigor_keepDependency": true
},
"TOTAL_TIME": 5172215400,
"BUILD_ID": "202601031208539900"
"TOTAL_TIME": 2533757600
}
}

View File

@ -1 +1 @@
{"CACHE_SYNC_FILE_HASH":{"E:\\jiaocai\\fenxingshu08\\hvigor\\hvigor-config.json5":"8f77c234a3222e791be60886a072e67d27814353b9d45d6ffb71ee585a97829c","E:\\jiaocai\\fenxingshu08\\build-profile.json5":"0200c8a82d67a8c7ad36ace1a9c47336c8b3fe276ddf0c666e4893a4d76abb6a","E:\\jiaocai\\fenxingshu08\\hvigorfile.ts":"a8a8401cf247331be7458fddfe71e962cb5eeb6fd74b815f2825cfc5c92cb045","E:\\jiaocai\\fenxingshu08\\oh-package.json5":"933ff4b50c4960648b4a4b609436babc08621a5d9498a4c247e7261d66d7333f","E:\\jiaocai\\fenxingshu08\\entry\\build-profile.json5":"a8338f28c84f3c0c7c24949c8a99c1a1411dc05eddfa5b7b6606649f0c12a79e","E:\\jiaocai\\fenxingshu08\\entry\\hvigorfile.ts":"a8a8401cf247331be7458fddfe71e962cb5eeb6fd74b815f2825cfc5c92cb045","E:\\jiaocai\\fenxingshu08\\entry\\oh-package.json5":"b27148b5c59846f055e1583ead65b794da1ebb67980b6e973403d6ed4c9ccd56","E:\\jiaocai\\fenxingshu08\\.hvigor\\outputs\\sync\\output.json":"330ff6a3da893e93fc949439a2952b193a12d261cef4c736458214c87985564d","SDK_LOCATION":"C:/Program Files/Huawei/DevEco Studio/sdk"},"OHPM_INSTALL_FILE_HASH":{"E:\\jiaocai\\fenxingshu08\\oh-package.json5":"933ff4b50c4960648b4a4b609436babc08621a5d9498a4c247e7261d66d7333f","E:\\jiaocai\\fenxingshu08\\oh_modules\\.ohpm\\lock.json5":"2cc59a21e70d92785a2399a4ca5893d49bbee3e5cf366d29e87d97e083992b5c","E:\\jiaocai\\fenxingshu08\\entry\\oh-package.json5":"b27148b5c59846f055e1583ead65b794da1ebb67980b6e973403d6ed4c9ccd56","E:\\jiaocai\\fenxingshu08\\oh_modules":true,"E:\\jiaocai\\fenxingshu08\\entry\\oh_modules":false}}
{"CACHE_SYNC_FILE_HASH":{"E:\\jiaocai\\fenxingshu08\\hvigor\\hvigor-config.json5":"8f77c234a3222e791be60886a072e67d27814353b9d45d6ffb71ee585a97829c","E:\\jiaocai\\fenxingshu08\\build-profile.json5":"0200c8a82d67a8c7ad36ace1a9c47336c8b3fe276ddf0c666e4893a4d76abb6a","E:\\jiaocai\\fenxingshu08\\hvigorfile.ts":"a8a8401cf247331be7458fddfe71e962cb5eeb6fd74b815f2825cfc5c92cb045","E:\\jiaocai\\fenxingshu08\\oh-package.json5":"933ff4b50c4960648b4a4b609436babc08621a5d9498a4c247e7261d66d7333f","E:\\jiaocai\\fenxingshu08\\entry\\build-profile.json5":"a8338f28c84f3c0c7c24949c8a99c1a1411dc05eddfa5b7b6606649f0c12a79e","E:\\jiaocai\\fenxingshu08\\entry\\hvigorfile.ts":"a8a8401cf247331be7458fddfe71e962cb5eeb6fd74b815f2825cfc5c92cb045","E:\\jiaocai\\fenxingshu08\\entry\\oh-package.json5":"b27148b5c59846f055e1583ead65b794da1ebb67980b6e973403d6ed4c9ccd56","E:\\jiaocai\\fenxingshu08\\.hvigor\\outputs\\sync\\output.json":"330ff6a3da893e93fc949439a2952b193a12d261cef4c736458214c87985564d","SDK_LOCATION":"C:/Program Files/Huawei/DevEco Studio/sdk"},"OHPM_INSTALL_FILE_HASH":{"E:\\HarmonyOS_Project_Pratice\\OpenHamony_RISC\\fenxingshuing\\fenxingshu\\oh-package.json5":"727248fc30a1b1842b45d6c8d62e9ea832b3c1c652f8e293dea343e1251f12eb","E:\\HarmonyOS_Project_Pratice\\OpenHamony_RISC\\fenxingshuing\\fenxingshu\\oh_modules\\.ohpm\\lock.json5":"812efa66698558378de94869f081e366e2581f03e0050919572a9b806f56ff72","E:\\HarmonyOS_Project_Pratice\\OpenHamony_RISC\\fenxingshuing\\fenxingshu\\oh_modules":true,"E:\\jiaocai\\fenxingshu08\\entry\\oh_modules":false}}

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
{
"CommonInfo":{
"crossplatform.projectType":"",
"project.ide.version":"5.1.1.850",
"project.ide.version":"6.0.2.642",
"current.select.product":"default",
"current.select.buildMode":""
},

View File

@ -2,8 +2,7 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/modules/entry/entry.iml" filepath="$PROJECT_DIR$/.idea/modules/entry/entry.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/fenxingshu08.iml" filepath="$PROJECT_DIR$/.idea/modules/fenxingshu08.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/fenxingshu.iml" filepath="$PROJECT_DIR$/.idea/modules/fenxingshu.iml" />
</modules>
</component>
</project>

View File

@ -2,5 +2,6 @@
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 矩形分形图类
export default class FractalRectangle {
@ -12,4 +28,4 @@ export default class FractalRectangle {
this.rightPoint = rp
this.initAngle = ia
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 三角形分形图类
export default class FractalTriangle {
@ -14,4 +30,4 @@ export default class FractalTriangle {
this.initAngle = ia
this.initLength = il
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Y形分形图类
export default class FractalY {
depth: number // 分形层数
@ -15,4 +31,4 @@ export default class FractalY {
this.rightAngle = ra
this.initPoint = ip
this.initAngle = ia
this.initLength = il}}
this.initLength = il}}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 画矩形分形图
import FractalRectangle from "../class/FractalRectangle"
@ -30,4 +46,4 @@ export default struct DrawFractalRectangle {
.fillOpacity(0).stroke(Color.Black).strokeWidth(1)
ForEach([[this.point2, this.point4], [this.point3, this.point2]], (points: number[][]) => {// 递归绘制两个子矩形
DrawFractalRectangle({ rectangle: new FractalRectangle(this.rectangle.depth - 1, points[0], points[1], this.rectangle.initAngle) })})}}}}
DrawFractalRectangle({ rectangle: new FractalRectangle(this.rectangle.depth - 1, points[0], points[1], this.rectangle.initAngle) })})}}}}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 画三角形分形图
import FractalTriangle from "../class/FractalTriangle"
@ -28,4 +44,4 @@ export default struct DrawFractalTriangle {
}
}
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 画Y形分形图
import FractalY from "../class/FractalY"
@Component
@ -13,4 +29,4 @@ export default struct DrawFractalY {
.stroke(Color.Black).strokeWidth(1)
ForEach([this.y.leftAngle, -this.y.rightAngle], (angle: number) => {// 递归绘制左右两个分支
DrawFractalY({ y: new FractalY(this.y.depth - 1, this.y.percent, this.y.leftAngle, this.y.rightAngle, this.endPoint, this.y.initAngle + angle, this.y.initLength * this.y.percent) }) // 创建新的分形对象深度减1长度按比例缩小
})}}}}
})}}}}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 画线
@Component
export default struct DrawLine {
@ -12,4 +28,4 @@ export default struct DrawLine {
.endPoint([this.ex, this.ey]) // 终点绝对坐标
.stroke(Color.Black) // 线条颜色为黑色
.strokeWidth(1) // 线条宽度为1像素
}}
}}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 画矩形
@Component
export default struct DrawRectangle {
@ -10,4 +26,4 @@ export default struct DrawRectangle {
width: this.length, height: this.length })
.position({ x: this.sx, y: this.sy })// 左上角固定位置,绝对坐标
.fillOpacity(0) // 填充透明度为0完全透明
.stroke(Color.Black).strokeWidth(1)}}
.stroke(Color.Black).strokeWidth(1)}}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 画菱形
@Component
export default struct DrawRhombus {
@ -9,4 +25,4 @@ export default struct DrawRhombus {
build() {
Polygon()
.width('100%').height('100%').points([this.first, this.second, this.third, this.fourth]) // 设置菱形的四个顶点坐标
.fillOpacity(0).stroke(Color.Black).strokeWidth(1)}}
.fillOpacity(0).stroke(Color.Black).strokeWidth(1)}}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 画三角形
@Component
export default struct DrawTriangle {
@ -8,4 +24,4 @@ export default struct DrawTriangle {
build() {
Polygon()
.width('100%').height('100%').points([this.first, this.second, this.third]) // 设置三角形的三个顶点坐标
.fillOpacity(0).stroke(Color.Black).strokeWidth(1)}}
.fillOpacity(0).stroke(Color.Black).strokeWidth(1)}}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 画Y形
@Component
export default struct DrawY {
@ -11,4 +27,4 @@ export default struct DrawY {
Line({ width: '100%', height: '100%' })
.startPoint([point[0], point[1]]) // 线条起始点坐标
.endPoint([point[2], point[3]]) // 线条终点坐标
.stroke(Color.Black).strokeWidth(1)})}}}
.stroke(Color.Black).strokeWidth(1)})}}}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 设置矩形分形图参数弹窗
@CustomDialog
@ -35,7 +51,7 @@ export default struct SetRectangle {
// 右下点设置
Row() {
TextInput({ placeholder: `右下点rightPoint=(280,280)` })
TextInput({ placeholder: `右下点rightPoint=(280,280)`})
.width('70%')
.margin({ right: '10%' })
.onChange((value) => { this.tempRightPoint = value })
@ -59,4 +75,4 @@ export default struct SetRectangle {
.height('100%')
.justifyContent(FlexAlign.SpaceEvenly) // 均匀分布子组件
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 设置三角形分形图参数弹窗
@CustomDialog
@ -75,4 +91,4 @@ export default struct SetTriangle {
.height('100%')
.justifyContent(FlexAlign.SpaceEvenly) // 均匀分布子组件
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 设置Y形分形图参数弹窗
@CustomDialog
@ -103,4 +119,4 @@ export default struct SetY {
.height('100%')
.justifyContent(FlexAlign.SpaceEvenly) // 均匀分布子组件
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
@Entry
@Component
struct Index {
@ -59,4 +75,4 @@ struct Index {
.width('100%')
.height('100%')
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 首页
import common from '@ohos.app.ability.common'
@ -525,4 +541,4 @@ struct first {
.alignItems(HorizontalAlign.Start)
}
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 基本图形
import line from "../conponents/DrawLine" // 画线条
@ -55,4 +71,4 @@ struct Index {
.width('100%')
.height('100%')
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import router from '@ohos.router'
@Entry
@ -137,4 +153,4 @@ struct Second {
.width('100%')
.height('100%')
}
}
}

View File

@ -5,6 +5,6 @@
# as it contains information specific to your local configuration.
#
# For customization when using a Version Control System, please read the header note.
sdk.dir=D:/Huawei/Sdk/openharmony
sdk.dir=C:/Users/Acer/AppData/Local
nodejs.dir=F:/Huawei/node
ohpm.dir=D:/computer_programing/Deveco_Studio/HuaWei/Ohpm

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//公共常量
export const boardNum: number = 11 // 行列数
export const gridSize: number = 19 // 格子大小

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import {initialize_simdisk,initialize_simfat,drawFatMessage,clearEmulation,draw_blocks,drawDiskText,clearFatMessage,clearBlock,clearDiskText,read_sim_fat,draw_blocks_emulation,
draw_files,
clearFiles

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//信息提示弹窗
import { InterfaceFile } from './InterfaceFile'

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 第五章
// 编程7.15
// 产生一个FAT表

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 第一章
// 编程7.1
// 定义文件块数组
@ -201,4 +217,4 @@ export function del_folder_item(item: any): any[] {
console.log("删除失败,元素不在目录项中")
}
return FOLDER_ITEM
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import hilog from '@ohos.hilog';
import UIAbility from '@ohos.app.ability.UIAbility';

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import *as CommonConstant from '../common/constants/CommonConstants'
import {drawFatLine,drawFatLabels,drawDiskLabels,draw_blocks_background} from '../utils/functions'
import {InterfaceFile} from '../components/InterfaceFile'
@ -465,4 +481,4 @@ struct Index {
.backgroundImage($r('app.media.bg2'))
.backgroundImageSize(ImageSize.Cover)
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 功能函数
import * as CommonConstant from '../common/constants/CommonConstants'

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import CPU from './CPU'
import {sleep} from '../utils/util'
import * as CommonConstants from '../common/constants/CommonConstants'
@ -545,4 +561,4 @@ export default class ALU {
cv.fillText('÷',55,115)
cv.closePath()
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import { Bin } from '../utils/util'
//CPU数据结构

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import CPU from './CPU'
//时钟数据结构
@ -72,4 +88,4 @@ export default class Clock {
//绘制时钟
await this.clo_mark(cpu,cv)
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import CPU from './CPU'
import Clock from './Clock'
import SIG from './SIG'

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import CPU from './CPU'
import Clock from './Clock'
import SIG from './SIG'

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import { sleep } from '../utils/util'
import * as CommonConstants from '../common/constants/CommonConstants'
@ -865,4 +881,4 @@ export default class Line {
cv.fill()
cv.closePath()
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import CPU from './CPU'
import {Bin} from '../utils/util'
import * as CommonConstants from '../common/constants/CommonConstants'
@ -99,4 +115,4 @@ export default class MEMORY {
}
},2000)
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import CPU from './CPU'
//SIG数据结构
@ -151,4 +167,4 @@ export default class SIG {
cv.closePath()
}
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
export default class ALU {// ALU数据结构
show(cpu: CPU,cv: CanvasRenderingContext2D){this.line_init(cv);this.init(cpu, cv);}//显示ALU状态
line_init(cv: CanvasRenderingContext2D) {this.ALU_R1(cv, 0); this.ALU_R2(cv, 0); this.ALU_R3(cv, 0);
@ -35,4 +51,4 @@ export default class ALU {// ALU数据结构
opd(cv: CanvasRenderingContext2D) { this.setOperatorHighlight('/', true, cv); }
no(cv: CanvasRenderingContext2D) { ['+', '-', '*', '/'].forEach(op=>this.setOperatorHighlight(op,false,cv)); }
finish(cv: CanvasRenderingContext2D) { /* 完成运算状态显示 */ } // 设置运算符高亮状态
private setOperatorHighlight(op: string, state: boolean, cv: CanvasRenderingContext2D) { cv.fillStyle = state ? '#ff0000' : '#c5c9c5';}// 绘制运算符图形
private setOperatorHighlight(op: string, state: boolean, cv: CanvasRenderingContext2D) { cv.fillStyle = state ? '#ff0000' : '#c5c9c5';}// 绘制运算符图形

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//绘制运算器
export const ALUSettings: RenderingContextSettings = new RenderingContextSettings(true);
export const ALUContext: CanvasRenderingContext2D = new CanvasRenderingContext2D(ALUSettings);
@ -16,4 +32,4 @@ export const LineContext: CanvasRenderingContext2D = new CanvasRenderingContext2
//绘制数据
export const ShowSettings: RenderingContextSettings = new RenderingContextSettings(true);
export const ShowContext: CanvasRenderingContext2D = new CanvasRenderingContext2D(ShowSettings);
export const ShowContext: CanvasRenderingContext2D = new CanvasRenderingContext2D(ShowSettings);

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import {Bin} from '../utils/util'
//程序装载弹窗

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//信息提示弹窗
@CustomDialog
export default struct MessageDialog {

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import ALU from '../classes/ALU'
import Clock from '../classes/Clock'
import SIG from '../classes/SIG'

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//头部标题
@Component
export default struct Title {
@ -14,4 +30,4 @@ export default struct Title {
.width('100%')
.height('100%')
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import * as CommonConstants from '../common/constants/CommonConstants'
import LoaderDialog from '../components/LoaderDialog'
import {drawALU,drawCPU,drawMEM,init} from '../utils/util'
@ -168,4 +184,4 @@ export default struct UI {
.width('100%')
.height('100%')
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import RightPanel from '../components/RightPanel'
import Title from '../components/Title'
import UI from '../components/UI'
@ -81,4 +97,4 @@ struct Index {
.width('100%')
.height('100%')
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import Clock from '../classes/Clock';
import MEMORY from '../classes/MEMORY';
import ALU from '../classes/ALU'

View File

@ -1,6 +1,7 @@
{
"meta": {
"stableOrder": true
"stableOrder": true,
"enableUnifiedLockfile": false
},
"lockfileVersion": 3,
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//数据结构
export class MineData {
boardRows:number//行数

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import socket from '@ohos.net.socket';
import wifi from '@ohos.wifiManager';
import {resolveIP} from '../utils/util'
@ -85,4 +101,4 @@ export default class TCPSocket{
}
}, 60 * 1000);
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//公共常量
export const boardNum: number = 15; //行列数
export const gridSize: number = 20; //格子大小

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import ModeSelect from './ModeSelect'
import {MineData} from '../classes/Mine'
import {alertDialog} from '../utils/util'
@ -61,4 +77,4 @@ export default struct Header {
.width('100%')
.height('100%')
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
@Component
export default struct Input {
//表示是否聚焦(通过焦点来判断)
@ -29,4 +45,4 @@ export default struct Input {
.width('100%')
.height(30)
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import * as CommonConstants from '../common/constants/CommonConstants'
import {drawBoard,deleteBrisk,drawFlag,deleteFlag,show_all_mines,show_game_window,win,clearAllTimers} from '../utils/util'
import { MineData } from '../classes/Mine'

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//信息提示弹窗
@CustomDialog
export default struct MessageDialog {

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//模式选择弹窗
import {MineData} from '../classes/Mine'
import {clearAllTimers} from '../utils/util'

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import Input from '../components/Input'
import TCPSocket from '../classes/TCPSocket'
import {MineData} from '../classes/Mine'

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import Header from '../components/Header'
import Main from '../components/Main'
import ToolBar from '../components/ToolBar'
@ -57,4 +73,4 @@ struct Index {
.backgroundImage($r('app.media.bg'))
.backgroundImageSize(ImageSize.Cover)
}
}
}

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import * as CommonConstants from '../common/constants/CommonConstants'
import {MineData} from '../classes/Mine'

View File

@ -1,6 +1,7 @@
{
"meta": {
"stableOrder": true
"stableOrder": true,
"enableUnifiedLockfile": false
},
"lockfileVersion": 3,
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 第一章 第1节内容 / 编程9.1
interface replaceableVar {
char: string,

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// 手动实现排列组合功能
import { Tree, TreeNode, MathExpressionParser} from '../components/TreeNode';
import {randomCard,openDialog,getCardValue,findOperatorPositions,arraysAreEqual, print_ast, build_ast,generateExpressions,

View File

@ -1,3 +1,19 @@
/*
Copyright 2026 LI Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import { MathExpressionParser, Tree, TreeNode } from '../components/TreeNode';
@ -298,4 +314,4 @@ export function buildExpression(numbers: number[], operators: string[], order: n
default:
return 'Invalid order array';
}
}
}