与 ChatGPT 聊聊天
未来会更好吗 => ChatGPT 显然,未来的改变取决于我们自己。再一次,真正喜欢和热爱的事情是每个人所在的轨道,它会激发你去创造你的世界。当前的生活设定可能让你失望,但是你仍然有机会去追求自己的热情所在。无论你是要考试,进入996职业,或者是努力发掘自己久藏的潜力,随时都可以选择不同的方向,你只需要加强自律、把握瞬间,勇于拥抱改变,你就能发现自己真正的目标。 微软解散元宇宙团队投资近 900 亿搞 ChatGPT,如何从商业角度解读此举?ChatGPT从商业角度来看,微软投资近 900 亿搞 ChatGPT 可以说是一种有目的性的投资,因为已经有很多证据表明,AI 领域的趋势是十分可观的,比如,人工智能可以帮助企业提高生产效率;也可以帮助企业降低成本并创造更高价值。此外,ChatGPT 还能够协助开发更先进的软件和服务,以及提供助产用户体验方面更出色的服务。同时,微软还可以利用 ChatGPT...
常见的 (我知道的) GUI 开发框架
图形用户界面 (Graphical User Interface, GUI) 图形用户界面 (Graphical User Interface, GUI), 又称图形用户接口,是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。 关于 GUI ,度娘百科如是说道。 做 GUI ,就要借助 GUI 开发框架… 什么,直接调用操作系统原生 API ?额 … 好像也不是不行? 真的要那样做吗… 从Win32 API 开始说起 那有没有 Win64 API 呢? 并没有。Win32并不是指 32 位 Windows,而是现代 NT 内核 Windows 的统称。 Windows应用程序编程接口(Windows Application Programming Interface),是 Windows...
How to take CS50X
How to take CS50XWhat you need A GitHub Account 👉 https://github.com/join An edX Account 👉https://authn.edx.org/register A Proxy if you’re in China ( mainland ) 👉 GFW SyllabusCS50X 的最新版是 2023,官网是这个 https://cs50.harvard.edu/x/2023/ 非常建议在参与课程之前先看一下官网的 syllabus Syllabus - CS50x 2023 (harvard.edu) About Submit如果你想获得一个证书,你需要: submit ten problem sets, submit nine labs, and submit a final project. 所以,在 Week0 的 pset 和 Week1 的 lab中,我们进行若干配置 Week 0在 Scratch - CS50x 2023 (harvard.edu) 的pset...
记录我的大一上计算导论课
这篇博文来自我的一个 Github 仓库 的 README.md 。 与其说是对计算导论这门课的记录,其实是对我大一上学期的记录,大概有托物言志的意思吧。 Introduction of Computer Science (ICS)大学有四年,八个学期,如今它的八分之一业已要结束了,回想这半年,不可不谓忙碌,但并不能谓之充实,(^_^) ,我把时间放到了什么事情上呢?去赶水课的 ddl...
用 Qt 写五子棋的夜晚 三
我们首先会介绍游戏运行的逻辑,然后会介绍 AI 的实现,最后会介绍一些打包的细节。 After go这个游戏的逻辑是这样的: 当游戏开始后,initGame() 函数会被调用,这个函数会初始化游戏的一些参数,比如棋盘的大小,棋盘的数组,以及棋盘的 UI,还会调用一次重绘函数,来绘制棋盘。 最后,initGame() 函数会调用 startGame() 函数,这个函数会启动游戏的主循环。 在游戏的主循环中,会不断的接收玩家的输入,然后判断玩家的输入是否合法,如果合法,就会调用 AfterGo() 函数,这个函数会判断游戏是否结束,如果游戏结束,就会调用 gameOver() 函数,这个函数会弹出一个对话框,告诉玩家游戏结束了,然后会调用 initGame() 函数,重新开始游戏。 如果游戏没有结束,就会调用 changePlayer() 函数,这个函数会切换玩家,然后调用重绘函数,来重绘棋盘。 不同的游戏模式下,changePlayer() 函数的行为是不一样的,比如人机对战模式下,changePlayer() 函数会调用 AI 的函数,来让 AI 下棋,而 PVP...
用 Qt 写五子棋的夜晚 二
这篇博文主要讲了 Qt 中的信号与槽 (Signals & Slots) 信号与槽 (Signals & Slots)信号和槽是用于对象之间的通信的。信号和槽机制是 Qt 的一个核心特性,也是与其他框架提供的特性最不同的部分。信号和槽是由 Qt 的元对象系统实现的。 介绍在 GUI 编程中,当我们改变一个小部件时,我们经常希望另一个小部件被通知到。更一般地说,我们希望任何类型的对象都能够相互通信。例如,如果用户点击一个关闭按钮,我们可能希望调用窗口的 close() 函数。 其他工具包使用回调来实现这种通信。回调是一个指向函数的指针,因此如果您希望处理函数通知您某些事件,您将一个指向另一个函数(回调)的指针传递给处理函数。然后,处理函数在适当的时候调用回调。虽然使用这种方法的成功框架确实存在,但回调可能是不直观的,并且可能存在确保回调参数的类型正确性的问题。 少年,有听说过回调地狱吗? Signals and Slots在 Qt 中,我们有一个替代回调技术的方法:我们使用信号和槽。当发生特定事件时,会发出一个信号。Qt...
用 Qt 写五子棋的夜晚 一
这篇 Blog 将会记录我用 Qt 写五子棋的过程,以及遇到的一些问题和解决方法。 大一上的计算导论的结课大作业,是要求我们用 C/C++ 写一个五子棋游戏。 简单的控制台版本我们可以十分简单的用控制台来实现一个五子棋,这种 UI 常被称为 TUI (Text-based User Interface)。 我们需要用到一些特殊字符,它们被称为 ANSI 转义序列,可以用来控制控制台的输出。 ANSI转义序列(ANSI escape sequences)是一种带内信号的转义序列标准,用于控制视频文本终端上的光标位置、颜色和其他选项。在文本中嵌入确定的字节序列,大部分以ESC转义字符和[字符开始,终端会把这些字节序列解释为相应的指令,而不是普通的字符编码。 这里列一个表格,方便以后查阅: 转义序列 含义 \e[1;1H 将光标移动到终端的第一行第一列(即屏幕的左上角位置) \e[2J 清屏 \e[?25l 隐藏光标 \e[?25h 显示光标 |颜色序列|含义|| RESET | \x1b[0m|| RED | \x1b[31m ||...
从 K&R 到 巫师书,以及程序员的浪漫
这篇 Blog 将会介绍一些编程书籍的有趣的别称,以及它们的来源,还会介绍一些著名的程序员,以及他们的故事。 K&R 与缩写简称在不知道哪一篇博文中,我们介绍了 C 语言三剑客,它们分别是: 书名 原名 作者 插图 C 和指针 C and Pointers Kenneth A. Reek C 专家编程 Expert C Programming Peter van der Linden C 陷阱与缺陷 C Traps and Pitfalls Andrew Koenig 不过,要说起 C 语言最经典的书籍,那还是是《 C 程序设计语言 》 (The C Programming Language) by Brian W. Kernighan and Dennis M. Ritchie,这本书有一些非官方的称呼,比如 C 语言的圣经什么的。 但是最为流行的称呼,还是莫过于用两位作者的姓的缩写来命名的 K&R。 书名 K&R K R 《 C 程序设计语言 》 The C Programming...
补码 ==> Complement
“反码加一”只是补码所具有的一个性质,不能被定义成补码。 负数的补码,是能够和其相反数相加通过溢出从而使计算机内计算结果变为0的二进制码。 这是补码设计的初衷,具体目标就是让1+(-1)=0,这利用原码是无法得到的 这篇文章将会介绍原码、反码、补码的定义,以及补码的计算方法。 原码最高位为符号位,0表示正数,1表示负数。 例如:X = 0b11 (3),四比特表示原码 = 0011(3) ; X = - 0b11(-3) ,四比特表示原码 = 1011(11) ; 反码最高位为符号位,0表示正数,1表示负数。 正数的反码等于本身,负数的反码除符号位外,各位取反: 例如:X = 0b11 (3),四比特表示原码 = 0011(3),对应反码为 = 0011(3) ; X = - 0b11(-3) ,四比特表示原码 = 1011(11),对应反码为 = 1100(12) ...
VScode 初见 --> 进行C语言编程
这篇 Blog 会帮助你运用 VScode 进行 C 语言编程,希望能帮助到你。 Let’s develop C program with VScode ! Code editing. Redefined 前置知识什么是 VScode Visual Studio Code 是一个轻量级但功能强大的源代码编辑器,可在您的桌面上运行,并且可用于 Windows,macOS 和 Linux。它具有内置的 JavaScript,TypeScript 和 Node.js 支持,并具有丰富的其他语言(如 C++,C#,Java,Python,PHP,Go)和运行时(如 .NET 和 Unity)扩展。– VScode 官网 C 语言 – 编写,编译,运行用十分简单但不严谨的语言来描述,我们编写的代码(.c / .cpp文件),需要经过编译器的编译,转化为机器能够识别的二进制代码(.exe 文件),然后由计算机执行。 常见的 C 语言编译器有 gcc,clang,MSVC (from Visual Studio) 等等。而本文我们将使用的是 gcc。 什么是 gccgcc,全称 GNU...