QT写的反应测试游戏源码

Qt C++游戏开发实战:从零构建跨平台桌面游戏 在桌面应用开发领域,C++因其高性能和硬件级控制能力,常被用于构建核心系统。其面向对象特性和内存直接管理,为复杂逻辑提供了坚实基础。然而,纯C++在图形界面和跨平台部署方面存在短板。Qt框架通过信号槽机制和丰富的GUI组件,完美弥补了这些不足,实现了高效的对象间通信和事件驱动架构。这种组合在需要精细控制且对性能有要求的应用场景中极具价值,例如工具软件、模拟器和2D游戏开发。本文以“兵器王者”项目为例,深入探讨如何利用Qt的QGraphicsView框架和定时器驱动循环,从零搭建一个结构清晰、可维护的游戏项目 阅读详情
#ifndef REACTIONGAME_H
#define REACTIONGAME_H

#include <QWidget>
#include <QPainter>
#include <QPixmap>
#include <QTimer>
#include <QLCDNumber>
//==================================================================================
//QT写的反应测试游戏.拖动本拉登头像,逃避美国大兵的追击。时间越长代表你的反应能力和智商就越高
//WGM约战平台游戏反应测试游戏.有利于提升你在CS中的反应能力和逻辑能力.
//程序编程人员:Jason's.Alex QQ:531401335 
//QT社区群:167304303
//日期:2012/2/10
//==================================================================================
class ReactionGame : public QWidget
{
    Q_OBJECT
public:
    explicit ReactionGame(QWidget *parent = 0);
    virtual ~ReactionGame();
    void LoadResources();//载入资源
    void ReleaseResources();//释放资源

    virtual void paintEvent(QPaintEvent *);
    virtual void mousePressEvent(QMouseEvent *);
    virtual void mouseMoveEvent(QMouseEvent *);
    virtual void mouseReleaseEvent(QMouseEvent *);

    struct BlockAttr
    {
        BlockAttr(const QPixmap &image):pixmap(image),xDecrease(false),yDecrease(false){}
        QPoint point;
        QPixmap pixmap;
        bool xDecrease;
        bool yDecrease;
    };

signals:
    void GameOver(const float &score,const QString&);//游戏结束
private:
    void CalculatePos(BlockAttr *block);//计算位置
    bool HasCollide(const BlockAttr *,const BlockAttr *);//计算时候碰撞
    bool CheckValidBound(const BlockAttr *);//检测有效边界
    void ResetGame();//重置游戏
    void inilizetionGame();//初始化游戏
    void NarrowValidRect(QRect *rect);//缩小有效矩形
    const QString GetIQHint(const float score);//获取IQ提示
private slots:
    void DrawEngine();//绘图引擎

private:
    QPainter *painter;
    BlockAttr *block1,*block2,*block3,*block4,*dropBlock;
    int factor,speed;//伸展因子.和速度
    QTimer *timer;
    QRect validRect;//有效的矩形区域
    int counter;
    float score;//分数
    QLCDNumber *lcd;//LCD显示计数器
};

#endif // REACTIONGAME_H
#include "reactiongame.h"
#include <QDebug>
#include <QResizeEvent>
#include <QFont>
//==================================================================================
//QT写的反应测试游戏.拖动本拉登头像,逃避美国大兵的追击。时间越长代表你的反应能力和智商就越高
//WGM约战平台游戏反应测试游戏.有利于提升你在CS中的反应能力和逻辑能力.
//程序编程人员:Jason's.Alex QQ:531401335 
//QT社区群:167304303
//日期:2012/2/10
//==================================================================================
ReactionGame::ReactionGame(QWidget *parent) :
    QWidget(parent)
{
    timer=new QTimer(this);
    connect(timer,SIGNAL(timeout()),SLOT(DrawEngine()));
    lcd=new QLCDNumber(this);
}


ReactionGame::~ReactionGame()
{

}

void ReactionGame::LoadResources()//载入资源
{

    block1=new BlockAttr(QPixmap(":/gamepix/game/1"));
    block2=new BlockAttr(QPixmap(":gamepix/game/2"));
    block3=new BlockAttr(QPixmap(":/gamepix/game/3"));
    block4=new BlockAttr(QPixmap(":/gamepix/game/4"));
    dropBlock=new BlockAttr(QPixmap(":/gamepix/game/drop"));
    this->inilizetionGame();
}

void ReactionGame::ReleaseResources()//释放资源
{
    delete block1;
    delete block2;
    delete block3;
    delete block4;
    delete dropBlock;
}


void ReactionGame::inilizetionGame()//初始化游戏
{
    block1->point.setX(this->width()/2);
    block1->point.setY(0);

    block2->point.setX(0);
    block2->point.setY(this->height()/2);

    block3->point.setX(this->width()/2);
    block3->point.setY(this->height()-block3->pixmap.height());

    block4->point.setX(this->width()-block4->pixmap.width());
    block4->point.setY(this->height()/2);

    dropBlock->point.setX(this->width()/2);
    dropBlock->point.setY(this->height()/2);

    validRect.setX(100);
    validRect.setY(100);
    validRect.setWidth(this->width()-200);
    validRect.setHeight(this->height()-200);

    counter=1;

    factor=1;
    speed=2;
    score=0;
}

void ReactionGame::paintEvent(QPaintEvent *)
{

    painter=new QPainter(this);
    painter->setRenderHint(QPainter::Antialiasing);
    painter->setPen(Qt::red);
    painter->setBrush(QColor(0xbe,0xbe,0xbe));
    painter->drawRect(this->rect());

    painter->setPen(Qt::yellow);
    painter->setBrush(QColor(0xff,0x9d-speed*5,0x6f));
    painter->drawRect(this->validRect);

    painter->setPen(Qt::blue);
    painter->setFont(QFont("Helvetica",12,QFont::Bold));
    painter->drawText(this->width()/4,20,tr("Reaction:")+QString::number(score));

    painter->drawPixmap(block1->point,block1->pixmap);
    painter->drawPixmap(block2->point,block2->pixmap);
    painter->drawPixmap(block3->point,block3->pixmap);
    painter->drawPixmap(block4->point,block4->pixmap);
    painter->drawPixmap(dropBlock->point,dropBlock->pixmap);

    if(counter==1)
    {
        painter->setPen(Qt::magenta);
        painter->drawText(validRect,tr("This game is to test the player an instant reaction and logical thinking ability\n"//这个游戏是测试玩家瞬间的反应和逻辑思维能力
                                       "Drag the picture of Osama bin Laden, to avoid the pursuit of American soldiers!\n"//拖动本拉登头像避开美国大兵的追击!
                                       "The longer you pursue on behalf of the higher IQ!"));//追击时间越久代表你智商越高
    }

    delete painter;

    this->update();

}


void ReactionGame::mouseMoveEvent(QMouseEvent *e)
{

    dropBlock->point.setX(e->pos().x()-dropBlock->pixmap.width()/2);
    dropBlock->point.setY(e->pos().y()-dropBlock->pixmap.height()/2);

}

void ReactionGame::mousePressEvent(QMouseEvent *e)
{
    if(e->type()==QMouseEvent::MouseButtonPress)
    {
        QPoint begin=dropBlock->point;
        QPoint end(dropBlock->point.x()+dropBlock->pixmap.size().width(),dropBlock->point.y()+dropBlock->pixmap.size().height());

        if(begin.x()<=e->pos().x()&&begin.y()<=e->pos().y()&&end.x()>=e->pos().x()&&end.y()>=e->pos().y())
        {
            timer->start(1);

        }
    }
}

void ReactionGame::mouseReleaseEvent(QMouseEvent *e)
{
    if(e->type()==QMouseEvent::MouseButtonRelease)
    {
        this->ResetGame();
    }
}

void ReactionGame::DrawEngine()//绘制引擎
{
    score=float(speed*counter)/350;//显示分数

    for(int i=0;i<speed;++i)
    {
      CalculatePos(block1);
      CalculatePos(block2);
      CalculatePos(block3);
      CalculatePos(block4);

      if(HasCollide(dropBlock,block1)||HasCollide(dropBlock,block2)||
        HasCollide(dropBlock,block3)||HasCollide(dropBlock,block4)||!this->CheckValidBound(dropBlock))//如果产生碰撞
      {
         emit GameOver(score,this->GetIQHint(score));
         this->ResetGame();
      }

    }


    counter++;
    lcd->display((double)counter/100);

    if(counter%500==0)//每五秒提升一次速度
    {
        speed+=1;
    }

    if(counter%1000==0)//每十秒缩小有效范围
    {
        NarrowValidRect(&this->validRect);
    }
}

void ReactionGame::ResetGame()//重置游戏
{
    timer->stop();
    this->inilizetionGame();
    this->update();
}

void ReactionGame::CalculatePos(BlockAttr *block)//计算位置
{
    int x=block->point.x();
    int y=block->point.y();

    if(x==0)
    {
        block->xDecrease=false;

    }else if(x+block->pixmap.width()==this->width())
    {
        block->xDecrease=true;
    }

    if(y==0)
    {
        block->yDecrease=false;

    }else if(y+block->pixmap.width()==this->height())
    {
        block->yDecrease=true;
    }

    if(block->xDecrease)
    {
         block->point.setX(x-factor);

    }else
    {
        block->point.setX(x+factor);
    }

    if(block->yDecrease)
    {
        block->point.setY(y-factor);

    }else
    {
        block->point.setY(y+factor);
    }
 }


const QString ReactionGame::GetIQHint(const float score)
{
    if(score<20)
        return tr("Haha, oh you only for fuck off!! As relatively cool *_*");//哈哈,你只适合打飞机哦!!那样比较爽..
    else if(score>20&&score<=30)
        return tr("Hey. Your life can only do a cannon fodder! -_-!");//哎...你的人生只能做炮灰了!
    else if(score>30&&score<=40)
        return tr("Wow! Is designed to play the pieces of the original idol Oh! :)");//哇!原来是专门打残局的偶像哦!:)
    else if(score>40)
        return tr("You'll never who they think are cheating! Or face it! :(");//你一辈子都被他们认为是作弊的!还是面对现实吧! :(

}

bool ReactionGame::HasCollide(const BlockAttr *staticBlock, const BlockAttr *dynamicBlock)//是否产生碰撞
{
    QPoint staticCenter(staticBlock->point.x()+staticBlock->pixmap.width()/2,staticBlock->point.y()+staticBlock->pixmap.height()/2);//计算中心点
    QPoint dynamicCenter(dynamicBlock->point.x()+dynamicBlock->pixmap.width()/2,dynamicBlock->point.y()+dynamicBlock->pixmap.height()/2);

    int staticWidth=staticBlock->pixmap.width();//计算矩形宽度和高度
    int staticHeiget=staticBlock->pixmap.height();

    int dynamicWidth=dynamicBlock->pixmap.width();
    int dynamicHeight=dynamicBlock->pixmap.height();

    int xDistance=abs(staticCenter.x()-dynamicCenter.x());//计算。两个矩形中心点的距离
    int yDistance=abs(staticCenter.y()-dynamicCenter.y());

    if((staticWidth+dynamicWidth)/2>=xDistance&&(staticHeiget+dynamicHeight)/2>=yDistance)//计算是否产生碰撞
    {
        return true;
    }

    return false;
}

bool ReactionGame::CheckValidBound(const BlockAttr *block)//验证是否在有效范围
{
    QPoint blockCenter(block->point.x()+block->pixmap.width()/2,block->point.y()+block->pixmap.height()/2);//计算中心点
    QPoint rectCenter(validRect.x()+validRect.width()/2,validRect.y()+validRect.height()/2);

    int xDistance=validRect.width()/2;//计算中心到无效区域的距离
    int yDistance=validRect.height()/2;

    if(abs(blockCenter.x()-rectCenter.x())+block->pixmap.width()/2-2>=xDistance||abs(blockCenter.y()-rectCenter.y())+block->pixmap.height()/2-2>=yDistance)
    {
        return false;
    }

    return true;
}

void ReactionGame::NarrowValidRect(QRect *rect)//缩小矩形
{
    int narrowFactor=10;
    rect->setX(rect->x()+narrowFactor);
    rect->setY(rect->y()+narrowFactor);
    rect->setWidth(rect->width()-narrowFactor);
    rect->setHeight(rect->height()-narrowFactor);
}


QT+C++打地鼠游戏源码解析:从编译到难度调整 在C++课程设计和毕业设计中,图形界面开发是常见需求,而QT框架凭借其信号与槽机制和丰富的绘图组件成为首选。通过QGraphicsScene和QGraphicsPixmapItem等类,开发者可以构建交互式2D游戏,实现事件处理、定时器控制和资源管理。这类技术不仅适用于小游戏开发,还能应用于桌面应用和嵌入式界面。本文以一份完整的QT打地鼠源码为例,详细讲解工程配置、核心类拆解、参数调整与避坑指南,帮助读者快速上手QT项目并完成课程设计。 阅读详情

相关推荐

Qt C++数独游戏全解析:从源码编译到部署发布

在Qt与C++的桌面应用开发中,掌握模型/视图架构、事件循环及资源管理是课设与工程实践的高频考点。一款基于Qt Widgets的数独游戏,恰好将二维数组算法、自定义委托绘制、qmake工程配置与windeployqt部署串联成完整链条。本文从构建入口出发,解析sudoku.pro依赖、棋盘数据校验、QTableView自定义绘制等核心原理,并针对编译期库版本混用、运行期DLL缺失、QPA平台插件报错等常见问题给出可直接复制的解决方案。随后介绍如何通过QRandomGenerator替换旧随机数、用QSS换肤

weixin_34110970的博客 215

QT json基本用法

目录json格式简介QJson模块介绍QJsonValue、QJsonObject、QJsonArrayQJson模块基本用法QJsonValue支持的类型构建QJsonObject构建注意取值、 查找、遍历、删除QJsonArray构建取值、删除、修改、遍历QJsonDocument之序列化和反序列化序列化反序列化总结 json格式简介 json可以理解为一种多级键值对的结构,例如: { "name" : "Xiao Ming", "age" : 10 } 上面这个简单结构表示一个学生信息,包含2个

weixin_42981623的博客 7284

Qt+C++宝可梦游戏源码解析:分层架构与信号槽实战

Qt 是广泛用于桌面 GUI 开发的跨平台 C++ 框架,其核心机制如信号槽、QObject 继承体系和 QGraphicsView 场景管理,常被初学者误用为‘控件堆砌工具’。本文从游戏开发这一典型工程场景切入,阐释如何通过清晰的分层设计(core 逻辑层 / ui 表现层)实现低耦合架构;深入剖析信号槽的真实边界——仅用于跨层通信,而非层内调用,从而保障单元测试可行性与运行时性能。结合 BattleSystem 与 BattleView 的继承策略对比,揭示 QObject 元对象系统在动画驱动、事件响

weixin_27960253的博客 48

Qt之JSON基础操作

这个json数据首先用{}来表示整个数据是一个对象,这个对象里面包括name,age,email,isStudent这些值,还包括了一个hobbies数组,以及一个address对象,这个对象还包括了一些street,city,country的值。它可以表示JSON的基本数据类型,如字符串、数字、布尔值,以及更复杂的数据结构,如对象和数组。值类型:JSON支持多种值类型,包括字符串(String)、数字(Number)、布尔值(Bool)、空值(Null)、对象和数组。toInt(): 将。

weixin_62370184的博客 6363

基于Qt C++的俄罗斯方块游戏设计与实现全流程解析

游戏开发中,如何高效管理界面与逻辑的分离、处理形状旋转与碰撞检测,是每一位学习C++与Qt框架的开发者都会遇到的经典课题。以俄罗斯方块为例,其核心数据结构常以矩阵形式表示,通过枚举管理7种标准形状,利用矩阵转置模拟旋转,并在虚拟摆放时逐格校验边界与堆叠状态。Qt的信号槽机制天然适合将积分变化、游戏结束等事件通知界面,而QTimer驱动下落节奏则保证了游戏循环的稳定。此类项目不仅是大学课程设计与毕业设计的高频选题,更是理解面向对象设计、事件驱动编程与基础算法的理想实践。本文从需求分析到算法实现,再到界面协同与

weixin_29015483的博客 234

C++/Qt飞机大战项目实战:从工程编译到游戏循环架构

C++作为系统级编程语言,常与Qt框架结合开发跨平台桌面应用。Qt提供的QGraphicsView场景-视图-图元模型,天然适合2D游戏与交互式界面的快速构建。通过事件循环与定时器驱动,开发者能够实现流畅的实时渲染与游戏逻辑。这类技术广泛应用于高校课程设计、Qt入门练手及原型验证场景。从工程复现角度出发,详解如何将一套C++/Qt飞机大战源码在本地编译运行,剖析其游戏循环、碰撞检测与核心类设计,并总结常见环境配置与部署陷阱,帮助开发者快速掌握Qt项目落地的完整路径,为后续独立开发小型游戏或工具软件打下坚实基

weixin_31236101的博客 96

QT中Json的使用方法

在QT5.0版本以后支持对Json的使用,直接使用QT提供的json类进行数据的组织和解析。 Json类 介绍 QJsonDoucument 它封装了一个完整的 JSON 文档,并且可以从 UTF-8 编码的基于文本的表示以及 Qt 自己的二进制格式读取和写入该文档。 QJsonArray JSON 数组是一个值列表。可以通过从数组中插入和删除 QJsonValue 来操作该列表。 QJsonObject JSON 对象是键值对的列表,其中键是唯一的字符串,值由 QJsonValue

qq_42317817的博客 1万+

2048qt小游戏C++初学.zip:从控制台到Qt图形界面的实战项目

C++初学者常面临从控制台到图形界面的跨越难题,而Qt框架结合小游戏项目是理想的练手途径。通过实现2048游戏,开发者能深入理解C++类设计、STL容器、随机数生成以及Qt信号槽、绘图事件和键盘响应机制。这类项目不仅强化了面向对象编程思想,还涵盖了事件驱动编程和图形渲染基础,技术价值在于将语法知识转化为可运行应用。典型应用场景包括课程设计、个人作品集或进一步学习Qt开发。本文以一份2048qt小游戏C++初学.zip为例,详细解析如何利用Qt Widgets构建完整游戏,涵盖棋盘绘制、合并逻辑、随机数优化及

weixin_33978044的博客 523

Qt小游戏之数字华容道(百行代码搭雏形,可玩;含源码+注释)

一、相信大家都知道华容道吧,这次做个数字华容道,样图如下 该游戏初始化如下所示: 下图为游戏通关的样图: 二、废话少说直接上代码 1、首先是代码文件分析 我的项目中包含内容如下所示: 其中CLabel.h、CLabel.cpp为继承QLabel的自定义类(在我的代码中使用的是Label作为文本显示的容器,因Label没有点击事件所以需要继承QLabel类自定义点击信号);然后CMainWindow.h、CMainWindow.cpp为调用CLabel的文件(具体看实现代码);ui文件中没有东西;mai

lw的博客 1万+

Qt翻金币游戏实战:QPainter动画与信号槽架构详解

图形界面开发中,绘制与动画是实现丰富交互的关键。Qt作为跨平台C++框架,提供了强大的QPainter绘图引擎和灵活的动画框架。文章从基础概念出发,剖析状态机在游戏逻辑中的应用,重点演示如何用QPainter自绘控件实现金币翻转视觉效果,并结合QVariantAnimation与定时器优化动画流畅度。同时探讨信号槽架构如何解耦界面与逻辑,以及计时、难度扩展和windeployqt打包发布等工程实践。通过这一完整项目,帮助开发者理解Qt核心机制,提升实战能力。

weixin_33462927的博客 347

C++与Qt实现2048小游戏:从环境配置到算法与界面实战

图形界面编程是C++学习中极具成就感的实践方向。Qt作为成熟跨平台框架,提供了从窗口绘制到事件响应的完整方案。2048小游戏作为经典练手项目,恰好串联起数组操作、随机数生成、键盘事件与自绘界面等技术点。文章从搭建Qt开发环境入手,梳理qmake工程配置与编译流程,并深入解析棋盘合并算法与QPainter绘制逻辑,同时针对初学常见编译错误给出排查思路。无论是理解事件驱动模型,还是掌握类封装与信号槽机制,这个项目都能带来直观认知。最终,你不仅能亲手运行一个可玩的2048游戏,还能将经验迁移到更复杂的Qt应用开发

weixin_29015899的博客 101

Qt中的JSON支持

Qt支持处理JSON数据。JSON是一种对源自Javascript的对象数据进行编码的格式,但现在被广泛用作互联网上的数据交换格式。Qt中的JSON支持提供了一个易于使用的C++API来解析、修改和保存JSON数据。它还支持以二进制格式保存数据,这种格式可以直接“mmap”,并且访问速度非常快。JSON数据格式的更多详细信息可以在JSON中找到。 https://www.json.org/json-en.html和RFC-4627 中https://www.rfc-editor.org/rfc/rfc462

weixin_43407577的博客 1858

基于C++与QT的扫雷游戏开发:面向对象编程与GUI实践

面向对象编程(OOP)是构建复杂软件系统的核心范式,它将数据和操作封装成对象,通过类、继承和多态等机制提高代码的可维护性和复用性。在桌面应用开发领域,图形用户界面(GUI)框架是实现人机交互的关键技术,其中QT凭借其信号与槽机制、丰富的控件库和跨平台特性,成为C++ GUI开发的主流选择。将OOP思想与QT框架结合,能够高效构建结构清晰、易于扩展的应用程序,在游戏开发、工具软件等场景中具有广泛的应用价值。本文以经典的扫雷游戏为例,深入探讨如何运用C++的类与对象对游戏核心逻辑(如雷区生成、数字计算和洪水填充

weixin_34378969的博客 351

打地鼠游戏 - QT版

打地鼠游戏 - QT版 【下载地址】打地鼠游戏-QT版 欢迎来到由QT编写的打地鼠小游戏仓库!这个游戏项目旨在提供一个轻松愉快的娱乐体验,同时对于初学者而言,也是一个学习QT框架和基本游戏编程的好例子。虽然代码可能略显杂乱,并且灵感来源于过去的B站教学视频(遗憾的是,原视频现已无法找到),但它依然完整保留了游戏的核心功能...

gitblog_09754的博客 320

QT小游戏《2048》源码(含大量注释)

开发版本:Qt 5.4.1 源码含有大量注释,思路比较简单,代码结构也比较清晰。后面没有花太多时间优化,有问题还望提出。

qt消消乐游戏源码.zip

qt消消乐游戏源码,可以学习和使用,可以正常运行,C++

QML网络游戏开发

QML简介QML简介QML(Qt Meta Language)是一种基于JavaScript的声明性语言,用于描述用户界面和应用程序的视图层。它是Qt框架的一部分,专门用于Qt Quick模块,使得开发人员能够以更简洁、直观的方式创建动态和富有交互性的用户界面。QML的基本概念元素(Elements)在QML中,所有的界面元素都是由不同的元素(Elements)构成的。

QT性能优化QT原理源码QT界面美化 3748

WSL2部署Cadence Virtuoso IC25.1:Ubuntu 26.04排障实录

WSL2以轻量虚拟机结合完整Linux内核,为Windows桌面环境提供了原生级Linux运行能力,解决了传统虚拟机资源开销大、双系统切换低效的问题。对于依赖X11图形协议、FlexNet许可服务和特定动态库的EDA工具链而言,利用WSL2部署Linux发行版需要关注系统集成、显示通路与许可连通性。从技术原理看,图形层X Server的配置、动态库依赖的补齐以及license服务的主机名解析,共同构成EDA工具在WSL2中稳定运行的关键环节。在芯片设计场景中,设计工程师常需在Windows办公机与Linux

weixin_29597551的博客 211

QT5/C++项目:基于QT的跨平台网络对战象棋(二)(推荐★★★★)

QT5/C++项目:基于QT的跨平台网络对战象棋(二) 文章目录QT5/C++项目:基于QT的跨平台网络对战象棋(二)**本篇副标题:****本篇博客讲了什么or解决了什么问题?****项目简介:****项目特色:****实现功能:****责任描述:****其他:****项目演示效果:**视频演示:图片演示:**开发平台环境:****项目思路分析:**需求以及实现:功能流程图:系统流程图:总体设计...

6898

HUAWEI华为荣耀MagicBook MateBook B D E X 13 14 16 笔记本MateStation台式机原装Win10出厂Windows11系统

HUAWEI华为MateBookX原装出厂系统恢复原厂系统,型号:MACHC-WAE9LP、EUL-W29P、MACHR-W19L、MACHR-W29、MACHD-WFE9、MRGF-16、MACHR-W19BL、MACHD-WFE9Q、WT-W19、Mach-W19、Mach-W29、WT-W09、WT-W19、MACH-W29等。HUAWEI华为MateBookE原装出厂系统恢复原厂系统,型号:PAK-AL09、GK-W7X、GK-G58、GK-W76、DRC-W76等。

QQ17855069的博客 17万+

WPS集成DeepSeek最新教程,附详细图文,让文案生成更智能

本文将为大家详细介绍如何将 DeepSeek 功能集成到 WPS 中,通过 OfficeAI 插件,你无需进行复杂的本地部署,只需通过官网连接即可快速启用 DeepSeek 强大的 AI 功能。不论是文案生成、翻译校对,还是深度推理、决策支持,DeepSeek 都能为你提供便捷的解决方案。让我们一起来看看如何操作吧!

Java徐师兄的博客 6万+
上一篇: P2P后台终结者源码.分享QT+WIN SDK实现.自动扫描后台关闭P2P后台进程
下一篇: 分享我用Qt写的游戏组队群聊系统
jasonslaex
博客等级 码龄19年 117粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值