ChatGPT来了,必须紧跟时代潮流!

news2024/11/15 6:00:37

大家好,我是瓜叔。


正如标题所示,最近几周令人难以置信的兴奋。几乎每天都有surprise的新AI产品发布,特别是ChatGPT-4和AI绘画。这是一种科幻即将成为现实的感觉。例如,看看下面的网络图像,它是由AI生成的。当我看到它的时候,我简直不敢相信自己的眼睛,我的第一反应是:“我的天哪! amazing!”(从此走上设计师的不归路,不会设计小姐姐的程序员不是一个好的AI绘图师🐶)


我身边的朋友们也都在谈论AI技术。有学编程的朋友用ChatGPT修复了错误、学设计的朋友用AI制作了头像、甚至有人用ChatGPT创作了一部连载小说。我身边的创业者们也纷纷涉足ChatGPT相关的领域。
还记得当初web3和元宇宙的概念刚出现时,它们的潜力被吹得天花乱坠。然而现在,这些概念距离我们仍然相当遥远。
试问大家:你了解web3吗?
然而,ChatGPT让我们真切地感受到了科技进步带来的“变革”。


以往遇到Bug,我们会去百度寻求解答,如今我们可以问ChatGPT:


过去需要自己编写代码,现在ChatGPT会为你编写代码!


下图是我让ChatGPT帮我编写的一个贪吃蛇游戏:


生成代码如下:


跑起来看看。样子虽然丑了点,但是还能玩它一下子。后续有待慢慢调教了。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>贪吃蛇游戏</title>
    <style>
      canvas {
        border: 1px solid black;
      }
    </style>
  </head>
  <body>
    <canvas id="game" width="400" height="400"></canvas>
    <script>
      const canvas = document.getElementById('game');
      const ctx = canvas.getContext('2d');
      const scale = 20;
      const rows = canvas.height / scale;
      const columns = canvas.width / scale;

      var snake;
      var food;

      (function setup() {
        snake = new Snake();
        food = new Food();

        food.randomLocation();

        window.setInterval(() => {
          ctx.clearRect(0, 0, canvas.width, canvas.height);
          food.draw();
          snake.update();
          snake.draw();

          if (snake.eat(food)) {
            food.randomLocation();
          }

          snake.checkCollision();
        }, 100);
      })();

      window.addEventListener('keydown', ((evt) => {
        const direction = evt.key.replace('Arrow', '');
        snake.changeDirection(direction);
      }));

      function Snake() {
        this.x = canvas.width / 2;
        this.y = canvas.height / 2;
        this.xSpeed = scale;
        this.ySpeed = 0;
        this.total = 0;
        this.tail = [];

        this.draw = function() {
          ctx.fillStyle = '#32CD32';

          for (let i = 0; i < this.tail.length; i++) {
            ctx.beginPath();
            ctx.arc(this.tail[i].x + scale / 2, this.tail[i].y + scale / 2, scale / 2, 0, 2 * Math.PI);
            ctx.fill();
          }

          ctx.beginPath();
          ctx.arc(this.x + scale / 2, this.y + scale / 2, scale / 2, 0, 2 * Math.PI);
          ctx.fill();
        }

        this.update = function() {
          for (let i = 0; i < this.tail.length - 1; i++) {
            this.tail[i] = this.tail[i + 1];
          }

          if (this.total >= 1) {
            this.tail[this.total - 1] = { x: this.x, y: this.y };
          }

          this.x += this.xSpeed;
          this.y += this.ySpeed;

          if (this.x >= canvas.width) {
            this.x = 0;
          }
          if (this.y >= canvas.height) {
            this.y = 0;
          }
          if (this.x < 0) {
            this.x = canvas.width;
          }
          if (this.y < 0) {
            this.y = canvas.height;
          }
        }

        this.changeDirection = function(direction) {
          switch (direction) {
            case 'Up':
              if (this.ySpeed === 0) {
                this.xSpeed = 0;
                this.ySpeed = -scale;
              }
              break;
            case 'Down':
              if (this.ySpeed === 0) {
                this.xSpeed = 0;
                this.ySpeed = scale;
              }
              break;
            case 'Left':
              if (this.xSpeed === 0) {
                this.xSpeed = -scale;
                this.ySpeed = 0;
              }
              break;
            case 'Right':
              if (this.xSpeed === 0) {
                this.xSpeed = scale;
                this.ySpeed = 0;
              }
              break;
          }
        }

        this.eat = function(food) {
          if (this.x === food.x && this.y === food.y) {
            this.total++;
            return true;
          }

          return false;
        }

        this.checkCollision = function() {
          for (let i = 0; i < this.tail.length; i++) {
          if (this.x === this.tail[i].x && this.y === this.tail[i].y) {
          this.total = 0;
          this.tail = [];
          }
          }
          }
          }

          function Food() {
          this.x = 0;
          this.y = 0;

          this.randomLocation = function() {
          this.x = (Math.floor(Math.random() * columns)) * scale;
          this.y = (Math.floor(Math.random() * rows)) * scale;
          }

          this.draw = function() {
          ctx.fillStyle = 'red';
          ctx.beginPath();
          ctx.ellipse(this.x + scale / 2, this.y + scale / 2, scale / 4, scale / 2, 0, 0, 2 * Math.PI);
          ctx.fill();
          }
          }
          </script>

          </body>
          </html>



向ChatGPT请教技术学习路线或方法:


太强了。

ChatGPT不仅可以帮助我们学习编程,还能提高我们的工作效率,如创作内容、自动编写PPT和报表等。熟练掌握ChatGPT就像雇佣了一个高效的团队,以最低的成本实现你的想法。
近期,百度发布了“文心一言”、Google推出了“Bard”,各种ChatGPT应用层出不穷,这预示着:
ChatGPT是新一轮科技革命,一场AI的变革!
那么在这场变革中,我们普通人应该如何行动?
有人问我:“既然ChatGPT能编写代码、修复Bug,那么它会替代程序员吗?”
我的回答是:“短期内程序员不用担心被取代,但掌握这个工具无疑会让你成为更难被替代的程序员。”

学会驾驶ChatGPT,让它为我们所用,这是我们必须要做的事。
不必觉得这很难,尝试注册一个账号、向ChatGPT提问几个问题、利用ChatGPT解决一个Bug、在自己的程序中调用ChatGPT的API。完成这些任务,你基本上就掌握了入门技巧,有空的话可以进一步探索。
我对ChatGPT的发展非常看好,认为这是一个难得的机遇和红利。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/458974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我的HackerOne漏洞赏金平台漏洞挖掘流程

简介 高强度在hackerone平台挖了一周的漏洞&#xff0c;在这里分享一下经验 选定目标 hackerone有两种src&#xff0c;一种是给钱的&#xff0c;一种是免费的&#xff0c;我一般都是选的有钱的去挖 假如我选择了这个作为今天的挖洞目标 首先需要往下滑&#xff0c;看他不收…

银行系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设&#xff01;&#xff01;&#xff01; 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 ​​​​​​​ 本系统源码地址&#xff1a;​​​​​​​https://download.csdn.net/download/qq_50…

科大讯飞的2022:夯实“根据地”业务,以技术创新点燃大模型产业落地的“星星之火”...

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 4月20日晚&#xff0c;科大讯飞正式公布2022年度及2023年度第一季度业绩报告。财报数据显示&#xff0c;公司2022年度实现营业收入188.20亿元&#xff0c;同比增长2.77%&#xff0c;实现毛利76.84亿元&#xff0c;较上年增长…

局域网 - CSMA/CD

文章目录 1 概述1.1 局域网的拓扑结构 2 CSMA/CD2.1 三种监听算法2.2 冲突检测原理2.3 二进制指数后退算法 3 扩展3.1 网工软考真题 1 概述 1.1 局域网的拓扑结构 2 CSMA/CD 对 总线型、星型 和 树型 拓扑访问控制协议是 CSMA/CD&#xff08;Carrier Sense Multiple Access/ …

Android硬件通信之 WIFI通信

一&#xff0c;简介 1.1 随着网络的普及和通信技术的发展&#xff0c;网络的传输速度也越来越快&#xff0c;wifi技术也还成为手机设备最基本的配置。我们可以通过wifi实现手机与手机之前的信息传输&#xff0c;当然也可以与任意一台有wifi模块的其它设备传输。 1.2 wifi与蓝…

mysql 命令集

数据库操作 查看库命令 show databases; 使用某个库&#xff08;可以不用分号 &#xff1b;&#xff09; use 库名 查看库下所有的表 show tables; 显示一个表下的所有字段和类型 desc user(表名); 查看一个表的建表语句 show create table user\G 创建数据库db1 cre…

gitee教程精简版

$ git config --global user.name "Your Name" $ git config --global user.email "emailexample.com" 设置名字和邮箱 初始化 git init git add test.txt 将文件预先添加到git仓库 git commit -m "刚刚我创建了一个文本"提交给git仓库&#x…

Android硬件通信之 蓝牙Mesh通信

一&#xff0c;简介 蓝牙4.0以下称为传统蓝牙&#xff0c;4.0以上是低功耗蓝牙&#xff0c;5.0开始主打物联网 5.0协议蓝牙最重要的技术就是Mesh组网&#xff0c;实现1对多&#xff0c;多对多的无线通信。即从点对点传输发展为网络拓扑结构&#xff0c;主要领域如灯光控制等&…

物联仓储系统ZigBee组网原理

在嵌入式项目物联仓储系统中&#xff0c;使用cortexM0模拟仓库&#xff0c;cortex-A9模拟服务器&#xff0c;两块开发板之间使用ZigBee技术实现数据接收和发送&#xff0c;本文就介绍一下ZigBee组网的原理和相关步骤。 1.组网概述 组建一个完整的zigbee网状网络包括两个步骤&am…

VSCode连接远程服务器调试代码详细流程

文章目录 1.远程连接服务器2. 打开项目文件目录3. 配置调试环境 在研究人工智能项目时&#xff0c;很多时候本地机器性能不够&#xff0c;只能把代码拉倒服务器上&#xff0c;然后利用服务器资源来运行代码。遇到问题时需要调试&#xff0c;本文详细介绍利用VScode来调试远程服…

简述docker镜像制作:阿里云私服使用说明

阿里云私服使用说明 使用阿里云容器镜像服务 在使用docker时&#xff0c;为了方便管理docker镜像和版本迭代&#xff0c;咱们推荐有一个镜像服务器。这里我们比较推荐使用服务商提供的容器镜像服务&#xff0c;一来不用自己搭建私服&#xff0c;节省维护成本&#xff0c;二来带…

【算法学习】—n皇后问题(回溯法)

【算法学习】—n皇后问题(回溯法) 1. 什么是回溯法&#xff1f; 相信"迷宫"是许多人儿时的回忆&#xff0c;大家小时候一定都玩过迷宫游戏。我们从不用别人教&#xff0c;都知道走迷宫的策略是&#xff1a; 当遇到一个岔路口&#xff0c;会有以下两种情况&#xf…

vue组件之间的数据共享

1.组件之间的关系 在项目开发中&#xff0c;组件之间的最常见的关系分为如下两种: ① 父子关系 ② 兄弟关系 1.父向子传值---使用自定义属性 父组件向子组件共享数据需要使用自定义属性。示例代码如下: 父组件&#xff1a; <Son :msg"message" :user"…

使用AI优化慢SQL,开发秒变DBA

“AI不会替代他们&#xff0c;但善用AI的人会” 慢 SQL 经常会让应用程序响应变慢&#xff0c;轻者影响用户体验&#xff0c;严重的时候可能会导致服务不可用。如果&#xff0c;每次遇到慢 SQL 都求助于 DBA&#xff0c;一方面效率很低&#xff0c;另一方面也会很没面子。所以…

PowerShell批量修改、替换大量文件的文件名

本文介绍基于PowerShell语言&#xff0c;对文件夹中全部文件的名称加以批量替换、修改的方法。 在之前的文章基于Python一次性批量修改多个文件的文件名&#xff08;https://blog.csdn.net/zhebushibiaoshifu/article/details/115869725&#xff09;中&#xff0c;我们介绍了基…

为什么重写equals时必须重写hashCode()

不重写equals和不重写 hashCode()之前&#xff1a;equals()比较的是对象的内存地址&#xff0c;hashCode()比较的其实也是内存地址(内存地址输入到哈希函数中得到的整数) 重写了之后&#xff0c;equals()比较的是对象的内容值&#xff0c;如果hashCode()不重写&#xff0c;还是…

log是什么文件可以删除吗?log文件被删怎么恢复?

在工作和生活中&#xff0c;我们难免会遇到因操作失误、软件崩溃或病毒攻击等原因导致重要文件被误删的情况&#xff0c;这其中包括log文件。如果您不幸遇到log文件被误删的情况&#xff0c;不要过于担心&#xff0c;本文将为您介绍几种方法&#xff0c;帮助您找回被误删除的lo…

【hello Linux】动静态库

目录 1. 了解动静态库 1. ldd 命令的使用 2. C语言库与C语言库 3. 库的分类 4. 库的命名 5. 库的内容 2. 静态库的制作和使用 1. 静态库的制作 2. 静态库的使用 3.动态库的制作和使用 1. 动态库的制作 2. 动态库的使用 Linux&#x1f337; 1. 了解动静态库 1. ldd 命令的使用 …

JavaScript 鼠标事件监听触发时机触发顺序

有时间整理下鼠标的监听事件&#xff0c;目前汇总到的鼠标监听事件以下10个&#xff1a; 目录 1. click 2. dblclick 3.contextmenu 4.mousedown 5.mouseup 6.mouseenter 7.mouseleave 8.mouseover 9.mouseout 10.mousemove 先说下触发时机和作用键&#xff08;左键…

九州云出席全球分布式云大会,基于5G MEC的车路协同创新引关注

4月20日&#xff0c;以“云智相生”为主题的2023全球分布式云大会北京站在北京成功召开。本次大会作为AIGC数智中国科技周的重要组成部分&#xff0c;聚焦分布式云和人工智能&#xff0c;探讨分布式云如何更好地支持人工智能发展&#xff0c;打造MaaS&#xff08;模型即服务&am…