jeremyjia / Games

Home Page Link:
https://jeremyjia.github.io/Games/
2 stars 7 forks source link

Agenda 7/29 & 7/22 & 7/15 & 7/8 & 6/30 & 6/24 & 6/17 & 6/10 & 6/3 2023 #950

Open jeremyjia opened 1 year ago

jeremyjia commented 1 year ago

近期的会议记录及研究成果

jeremyjia commented 1 year ago

闭包概念

  1. 如果一个函数访问了此函数的父级及父级以上的作用域变量,那么这个函数就是一个闭包
  2. 实现闭包最常见的方式就是函数嵌套, 函数里面return了一个函数,return的这个内层函数就是闭包函数

闭包的用途

  1. 访问函数内部的变量
  2. 让变量始终保持在内存中

闭包的优点

  1. 可以减少全局变量的定义,避免全局变量的污染
  2. 能够读取函数内部的变量
  3. 在内存中维护一个变量,可以用做缓存
jeremyjia commented 1 year ago

使用闭包模拟面向对象的代码风格 function person(name) { function say(content) { console.log(name + ':' + content) } return say //此处的say函数就是一个闭包,当然也可以写成匿名函数的样子 }

a = person("张三") b = person("李四") a("在干啥?") b("没干啥。") a("出去玩吗?") b("去哪啊?")

============================== 张三:在干啥? 李四:没干啥。 张三:出去玩吗? 李四:去哪啊?

jeremyjia commented 1 year ago

function a() { var i = '初始值'; i = i + "—_执行a" // 此处的函数b访问了父级函数a中的局部变量i,成为了一个闭包 function b() { i = i + "_执行b" console.log(i) } return b; } var c = a(); // 此时 i 的值为 :初始值—_执行a c() // 此时 i 的值为 :初始值—_执行a_执行b c() // 此时 i 的值为 :初始值—_执行a_执行b_执行b

jeremyjia commented 1 year ago

var elements = document.getElementsByTagName('li'); var length = elements.length; for (var i = 0; i < length; i++) { elements[i].onclick = function (num) { return function () { alert(num); }; }(i); }

jeremyjia commented 1 year ago

闭包技术文档 https://blog.csdn.net/weixin_41192489/article/details/124312822

jeremyjia commented 1 year ago

#控制台诗词填空小程序,挺有技巧的 import random

唐诗列表

poetry = [ '天生我{}必有用,千金散尽还复来', '朝辞白帝{},千里{}一日还', '{}日依山尽,黄河入{}流' ]

通过random.choice()从上述poetry列表随机调取一首诗

chosen_poetry_index = random.choice(range(len(poetry))) print( '今天的唐诗是:'+ str(chosen_poetry_index) ) print(poetry[chosen_poetry_index])

根据随机调取的唐诗有没有{}来判断是否需要填空

while '{}' in poetry[chosen_poetry_index]: print('请填写:') answer = input() #输入诗句涉及的名词来补充唐诗句子

将答案插入到被选中的唐诗句子中

poetry[chosen_poetry_index] = poetry[chosen_poetry_index].replace('{}', answer, 1)

打印出最终完整的填空唐诗

print('最终填写后的唐诗是:') print(poetry[chosen_poetry_index])

jeremyjia commented 1 year ago

6/3/2023 会议记录

  1. 展示插件管理器的更新v1.0.13
  2. Python古诗词程序,easyGUI用法
  3. https://waynexw.github.io/waynexw/index.html (Wangxu Canvas学习成果展示)
  4. https://waynexw.github.io/waynexw/index_test.html
  5. littleflute音乐可以在全民K歌上找到,e.g关于学院路

Todo:

  1. 将钟表及碰撞小游戏制作成插件(wangxu)
  2. 制作说明文档的页面,效果参考https://easygui.readthedocs.io/en/master/ (all)
jeremyjia commented 1 year ago

C++处理数据库存储过程返回多结果集: https://jeffpar.github.io/kbarchive/kb/183/Q183297/

jeremyjia commented 1 year ago

PKCE认证参考 https://identityserver4.readthedocs.io/en/latest/intro/terminology.html https://christianlydemann.com/creating-an-openid-connect-system-with-angular-8-and-identityserver4-oidc-part-1/

jeremyjia commented 1 year ago

6/10/2023 会议记录

  1. 解决JS插件问题,原因:Github comment拷贝字符丢失(非编辑状态下)
  2. 插件之间不应该相互影响(怀疑context全局变量引起)
  3. 突然发现搜狗API文本转语音,失效了

todo:

  1. 调研卡拉OK字幕特效(Java or canvas... Jeremjia & Wangxu)
  2. 将时钟或动画插件制作成视频(wangxu)
  3. 学习React技术
jeremyjia commented 1 year ago

6/17/2023 会议记录

  1. 953 基于Canvas实现的 (Wangxu)

  2. endpoint设计注意事项,多人同时调用时,应该提示服务器繁忙 (Jeremyjia曾经做过一些验证:e.g, http://localhost:8080/api/v1/test
  3. 目前的chatGPT接口失效 (可能是token过期了,请Wangxu帮忙申请,进一步排查时发现是429错误,被限流) 我们应该有一个机制监测到这种问题,例如测试用例的设计、日志机制,类似Btn-8记录用户的行为到comment中
  4. 漂泊者社团建设大学校园

Todo:

  1. 验证ChatGPT的session问题 (all)
  2. 字幕制作成插件(jeremyjia)
  3. 日志检测机制实现 (all)
  4. 目前的语音API失效,研究新的解决方案 (all, 目前我感觉gTTS可用,需要进一步调查)
jeremyjia commented 1 year ago

You exceeded your current quota, please check your plan and billing details

jeremyjia commented 1 year ago

curl https://api.openai.com/v1/completions -H "Content-Type: application/json" -H "Authorization: Bearer sk-ye........." -d '{ "model": "text-davinci-003", "prompt": "Say this is a test", "max_tokens": 7, "temperature": 0 }'

{ "error": { "message": "You exceeded your current quota, please check your plan and billing details.", "type": "insufficient_quota", "param": null, "code": null } }

jeremyjia commented 1 year ago

GPT API调用错误原因查询:

jeremyjia commented 1 year ago

6/24/2023 会议记录

  1. 设计中国象棋语音库(驱动底层的字体库的设计等)
  2. 利用寻路程序设计音乐曲谱的输出, 颜色表示音阶,方格表示时间长度等
  3. 剧本的协议设计(插件支持:Python,Javascript)
jeremyjia commented 1 year ago

from gtts import gTTS import os

language = 'zh' # 或 zh-tw

slow=False时,语速为Normal

output = gTTS(text="这是中文", lang=language, slow=False) output.save(filename)

Play the converted file

os.system(f"start {filename}")

jeremyjia commented 1 year ago

OK的文本转语音API http://translate.google.com/translate_tts?ie=UTF-8&total=1&idx=0&textlen=32&client=tw-ob&q=Hello+world&tl=en http://translate.google.com/translate_tts?ie=UTF-8&total=1&idx=0&textlen=32&client=tw-ob&q=漂泊者乐园&tl=zh-CN

jeremyjia commented 1 year ago

https://blog.csdn.net/zhongzih/article/details/111638024

jeremyjia commented 1 year ago

6/30/2023 会议记录

  1. wang xu帮助下,申请成功ChatGPT账户
  2. 展示语音API的集成设计, 剧本20,21
  3. 评审剧本插件参数传递的协议设计 #961
  4. 测试当同一个插件多次引用的时候,在相同的frameRange的时候,期望应该出现叠加效果,但实际效果并未叠加

TODO

  1. 黄老师申请GPT
  2. 案例制作,插件的最佳实现方式是小范围功能,如一棵树,一滴水,然后剧本去实现一片森林,一场雨等。当然插件做一片森林和一场雨也是可以的
jeremyjia commented 1 year ago

上面的插件调用问题经调查,即使是两个不同的插件在同样的frameRange设置,也没有出现叠加效果, 原因是如下代码引起的,每个插件都设置下面这句话 ctx.clearRect(0, 0, w, h); 这句话在Java的代码中,会清除之前的绘制 public void clearRect(int x, int y, int width, int height) { graphics.clearRect(x, y, width, height); } Graphics2D graphics

jeremyjia commented 1 year ago

7/8/2023 会议记录

  1. 微信小程序实现乒乓球会员管理系统 (kickoff meeting)
  2. 多插件调用叠加效果问题原因及解决办法 #965
  3. 对比文欣一言与GPT实现正弦曲线的效果(同样有问题)
  4. 插件管理器实现紫色插件的编辑保存新建等功能(TODO,最好能用比较智能一点的编辑框)
jeremyjia commented 1 year ago

7/15/2023 会议记录

  1. 微信小程序,helloworld版本说明,继续调研企业账号与个人账号的支付问题
  2. 实现commentID方式在剧本中使用JS插件,案例展示,这样方便开发调试,例如 a. ChatGPT开发一个Canvas小程序 b. 插件管理器页面实现它,用comment源码方式 c. 编写视频剧本用commentID引用这个插件,并制作视频
  3. 旋转函数问题调研(TODO: https://docs.oracle.com/javase%2F7%2Fdocs%2Fapi%2F%2F/java/awt/Graphics2D.html
jeremyjia commented 1 year ago

Canvas旋转 rotate(angle)说明 这个方法只接受一个参数:旋转的角度(angle),它是顺时针方向的,以弧度为单位的值 旋转的中心始终是canvas的原点,如果要改变它,则需要用到translate()方法,这两个函数配合使用的时候要注意

https://blog.csdn.net/huangpin815/article/details/69487052 rotate函数的角度具有累计叠加效果,这是一个特点

ctx.translate(100, 100); //新的坐标原点 ctx.fillRect(100,100,100,50); //这是针对新的坐标原点的 ctx.rotate(30*Math.PI/180); //设置顺时针30度 ctx.fillRect(100,100,100,50); //此时,该矩形针对新的坐标原点,旋转30度 ctx.translate(-100, -100); //还原坐标原点

以上代码如果多次调用,这两个矩形会一直进行30度的累积旋转

jeremyjia commented 1 year ago

Java实现的垂直文本特效vertical text,可以做成超级对象,效果应该不错 https://kodejava.org/how-do-i-draw-a-vertical-text-in-java-2d/

jeremyjia commented 1 year ago

This appears to be an undocumented little gem that’s mentioned on a few blogs, like [here]

var source = https://translate.google.com/translate_tts?tl=ja-JP&q= ${encodeURIComponent('konnichiwa')}&client=tw-ob; var audio = new Audio(source); audio.play();

jeremyjia commented 1 year ago

7/22/2023 会议记录

  1. 剧本引用commentID案例分享 http://localhost:8080/videodocs/findAll?issueId=528
  2. 总结目前的剧本引用插件的方式:Python,Javascript,SVG,Java默认的对象
  3. 对比chatGPT与文新一言关于中国象棋棋盘的生成,以及之前正弦曲线的BUG,感觉文新极有可能是抄袭的 (它们都把棋盘画成了国际象棋的期盼,曲线绘制出同样的BUG%与/)
jeremyjia commented 12 months ago

TODO: 学习SQL课程 https://www.w3schools.com/sql/default.asp

jeremyjia commented 12 months ago

能否启动libgdx重新开发视频制作程序?(littleflute: 技术角度有意义,市场角度意义不大)

jeremyjia commented 11 months ago

实现功能:https://github.com/jeremyjia/Games/issues/538 https://api.github.com/repos/jeremyjia/Games/issues/comments/1648975968

jeremyjia commented 11 months ago

以下曲线可以做成插件 http://www.360doc.com/content/21/1004/08/65840191_998180515.shtml https://www.runoob.com/w3cnote/html5-canvas-intro.html

jeremyjia commented 11 months ago

7/29/2023 会议记录 演示超级对象的任意轨迹设计,详见 #538 ,ScriptEngineManager是Java JDK6引入的

针对目前的剧本及插件黄老师提了一些建议:

  1. 实现超级对象显示运动的轨迹即轨迹的脚印(Done)
  2. 帧穿越对象实现”若隐若现“功能(1,100)关键是怎么定义规则,ffmpeg有这个功能可以参考 (TBD)
  3. 实现自由落体动画插件 (Done)
  4. 插件实现叶子功能,从而组装成一棵树,一滴水->一场雨 (TODO)
  5. 一条绳子抖动形成波动画 (TBD,正弦曲线插件类似)
  6. Cars插件的剧本实现(验证可以,无需改代码Done)
  7. 插件编辑生成器(这个功能是面向终端用户的,比较复杂,需要做详细的需求分析, TBD)
  8. 小人运动由小变大,改变衣服颜色等 (Done)
  9. 微信小程序团队协作的讨论 (TBD)
jeremyjia commented 11 months ago

想到一个比较综合的一点的需求: 根据文案,文案类似几个人的聊天记录,生成动画视频,视频内容是几个人交替的聊天,就像圆桌会议一样,大家交替发言

  1. 解析文案生成剧本
  2. 生成视频