interact
Table of Contents
这是什么: 一个娱乐空间,你可以玩简单的小游戏,我写网站也是玩,这里每个 HTML 都是从 0 写的。
一些富有创造力的趣味内容,将知道的知识用一用,比如 html css js ——用好了就可以放在博客里了。
一个没有小游戏互动的网站该多没意思
1. fitQuest 拟合小游戏
机器拟合函数表达式可以做的很好了,但人类定下的符号,人类自己能感知到什么程度呢?
快去玩 -> fitQuest/fitQ2.html
其中的规律难道不是很有趣,什么函数先快增再慢减?什么符合人口的规律?(完全体计划是有一个物理等学科中常见模型函数的探索,但…)
目前简单模式可玩,预备图像化选项。
下面这个结构流程图是利用 plantuml (AI辅助)代码渲染
@startuml start :Load MathJax; :Get DOM elements; :Set canvas parameters; :Initialize global variables; :Draw axes and grid; :Add event listeners; fork partition "Generate New Function" { :Click "Generate New Function" button; :Select difficulty level; if ("Difficulty level check") then (Beginner) :Generate a random function for beginner level; elseif (Intermediate) then :Generate a random function for intermediate level; elseif (Advanced) then :Generate a random function for advanced level; endif :Draw the target function curve; :Start the timer; } fork again partition "Add/Edit Function" { :Select function type and parameters; :Click "Add" / "Confirm" button; if ("Is in edit state?") then (Yes) :Update the corresponding function information in the functions array; else (No) :Add a new function to the functions array; endif :Render LaTeX expression; :Update plot and error; } fork again partition "Delete Function" { if ("Operation mode check") then (Double - click LaTeX expression) :Delete the corresponding function information; else (Click "Clear" / "Delete" button) if ("Is in edit state?") then (Yes) :Remove the currently edited function from the functions array; else (No) :Clear the functions array; endif endif :Render LaTeX expression; :Update plot and error; } fork again partition "Save State" { :Click "Save" button; if ("Are there target and user functions?") then (Yes) :Calculate the error; :Save state information to the savedStates array; :Generate a thumbnail; :Display saved information; else (No) :Prompt that functions are not generated; endif } fork again partition "Advanced Input Panel" { if ("Operation type check") then (Click insert button) :Insert symbol into the input box; else (Input expression) :Convert to LaTeX format; endif :Preview LaTeX in real - time; } fork again partition "Load Saved State" { :Click the saved thumbnail; :Find the corresponding state information from the savedStates array; :Update the target function and user - input function; :Redraw the function curves; :Update error display; } stop @enduml
2. mg 数字小交互尝试
这是一趟数学之旅,你和主人公一起思考探索
我用它练手 html 知道一些选择方块小知识。于是在我了解到基本内容之后,暂时放下,未来会考虑加入丰富内容,并且拓展到我一直想要做的抽象代数部分。
快去玩 -> mg/tapnum.html
一直希望让网页发挥互动的价值,碰巧发现很好的素材,于是尝试实现一下。
下面是之前的 demo ,现在做了第一部分完整版了。不过很快发现后面的实现很有挑战性…
快去玩 -> mg/21mg_choose.html
话说之后想用 org 直接导出,不过又感到也许 vscode 有些功能实在不忍割舍。
做到了:
- 选择判断改变;
- 触发下一显示;
- 中英切换显示;
- 保存重置进度:这个最有意思,是在之前语言切换学的(可以发现语言即使刷新重启依然会记得上次选择的是什么),本来想用 json 等等
- 阻止刷新页面。
美观度 0,仅仅给剧情对话换了楷体,本来想用方正兰亭宋,但还要授权,不敢不敢。
可以进一步完善: 文字出现动画、统一显示语言
3. pg 反复囚徒困境
重复囚徒困境的小游戏
这是一个(还在施工
)较为完整的内容希望做成可拓展自定义美观的交互游戏
快去玩 -> prisongame/prisongame.html
启发是看到《合作的进化》这本书,里面研究了重复囚徒困境的情况,给出了博弈模型。
我想要实现的核心是后面提到的领土变化,这个听上去很有意思
3.1. 开发笔记
现在实现了单轮和多轮游戏,自定义策略输入代码并执行还没想好,暂且先进一步做一些美化吧