棋盘的绘制和走棋参看博文:中国象棋游戏Chess(1) - 棋盘绘制以及棋子的绘制,中国象棋游戏Chess(2)- 走棋

现在重新整理之前写的代码,并且对于每个棋子的走棋规则都进行了限制,不像之前那样每个棋子都可以走到任意位置。

也实现了红先黑后,并且每一方走一步,交替走棋的功能。


直接看代码:

// Board.h
// Board类实现了棋盘的绘制以及显示
//#ifndef BOARD_H
#define BOARD_H#include <QFrame>
#include "Stone.h"
#include "Step.h"
#include <QVector>class Board : public QFrame
{Q_OBJECT
public:explicit Board(QWidget *parent = 0);~Board();/*===> 游戏数据 <===*/Stone _s[32]; // 定义32个棋子int _r; // 棋子的半径QPoint _off;bool _bSide;QVector<Step*> _steps; // 悔棋时使用/*===> 游戏状态 <===*/int _selectid;bool _bRedTurn;void init(bool bRedSide);/*===> 绘图函数 <===*/virtual void paintEvent(QPaintEvent *);void DrawBackground(); // 设置背景颜色void drawPlate(QPainter& p); // 绘制棋盘void drawPlace(QPainter& p); // 绘制九宫格void drawInitPosition(QPainter& p); // 绘制炮兵位置上的十字void drawInitPosition(QPainter& p, int row, int col);void drawStone(QPainter &p); // 绘制棋子void drawStone(QPainter &p, int id);/*===> 坐标转换相关函数 <===*/QPoint center(int row, int col); // 返回棋盘行列对应的像素坐标QPoint center(int id);QPoint topLeft(int row, int col);QPoint topLeft(int id);QRect cell(int row, int col);QRect cell(int id);bool getClickRowCol(QPoint pt, int &row, int &col);/*===> 帮助函数 <===*/QString name(int id);bool red(int id);bool sameColor(int id1, int id2);int getStoneId(int row, int col); // 获取行row列col上的棋子idvoid killStone(int id);void reliveStone(int id);void moveStone(int moveid, int row, int col);bool isDead(int id); // 判断id棋子是否死亡/*===> 移动相关函数 <===*/virtual void mouseReleaseEvent(QMouseEvent *ev); // 鼠标点击象棋并释放鼠标时候触发void click(QPoint pt);virtual void click(int id, int row, int col);void trySelectStone(int id);void tryMoveStone(int killid, int row, int col);void moveStone(int moveid, int killid, int row, int col);void saveStep(int moveid, int killid, int row, int col, QVector<Step*>& steps);void backOne();void back(Step* step);virtual void back();/*===> 移动规则 <===*/bool canMove(int moveid, int killid, int row, int col);bool canMoveJiang(int moveid, int killid, int row, int col);bool canMoveShi(int moveid, int, int row, int col);bool canMoveXiang(int moveid, int, int row, int col);bool canMoveChe(int moveid, int, int row, int col);bool canMoveMa(int moveid, int killid, int row, int col);bool canMovePao(int moveid, int killid, int row, int col);bool canMoveBing(int moveid, int killid, int row, int col);bool canSelect(int id);/*===> 移动规则相关的几个帮助函数 <===*/int relation(int row1, int col1, int row, int col); // 得到两点之间的关系值bool isBottomSide(int id); // 判断id棋子是否在棋盘下方// 判断两个点是否在同一条直线上,炮和车走棋的时候需要用到int getStoneCountAtLine(int row1, int col1, int row2, int col2);signals:public slots:void slotBack();
};#endif // BOARD_H

// Board.cpp#include "Board.h"
#include <QPainter> // 绘制棋盘需要
#include <QMouseEvent>
#include <QDebug>
#define GetRowCol(__row, __col, __id) \int __row = _s[__id]._row;\int __col = _s[__id]._colBoard::Board(QWidget *parent) : QFrame(parent)
{this->_r = 20;setMinimumSize(_r * 18 + 1, _r * 20 + 1);init(true);
}Board::~Board()
{}void Board::init(bool bRedSide)
{for (int i = 0; i < 32; ++i) {_s[i].init(i);}if (bRedSide) {for (int i = 0; i < 32; ++i) {_s[i].rotate();}}_selectid = -1;_bRedTurn = true;_bSide = bRedSide;update();
}// 绘制棋盘
void Board::paintEvent(QPaintEvent *)
{DrawBackground(); // 绘制背景颜色int r = height() / 20;_r = r;_off = QPoint(r + 1, r + 1);QPainter p(this);p.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);p.save();drawPlate(p);p.restore();p.save();drawPlace(p);p.restore();p.save();drawInitPosition(p);p.restore();p.save();drawStone(p);p.restore();
}// 设置背景颜色
void Board::DrawBackground()
{QPalette p = this->palette();p.setColor(QPalette::Window, QColor(224, 255, 255));this->setPalette(p);
}// 绘制棋盘
void Board::drawPlate(QPainter &p)
{// 绘制10条横线for (int i = 0; i < 10; ++i) {if (i == 0 || i == 9) { // 上下边框画笔设置的粗一些p.setPen(QPen(Qt::black, 3, Qt::SolidLine));}else {p.setPen(QPen(Qt::black, 1, Qt::SolidLine));}p.drawLine(center(i, 0), center(i, 8));}// 绘制9条竖线for (int i = 0; i < 9; ++i) {if (i == 0 || i == 8) { // 中间有楚河汉界,不能画通p.setPen(QPen(Qt::black, 3, Qt::SolidLine));p.drawLine(center(0, i), center(9, i));}else {p.setPen(QPen(Qt::black, 1, Qt::SolidLine));p.drawLine(center(0, i), center(4, i));p.drawLine(center(5, i), center(9, i));}}
}// 绘制九宫格
void Board::drawPlace(QPainter &p)
{p.drawLine(center(0, 3), center(2, 5));p.drawLine(center(2, 3), center(0, 5));p.drawLine(center(9, 3), center(7, 5));p.drawLine(center(7, 3), center(9, 5));
}// 绘制炮兵位置上的十字
void Board::drawInitPosition(QPainter &p)
{drawInitPosition(p, 3, 0);drawInitPosition(p, 3, 2);drawInitPosition(p, 3, 4);drawInitPosition(p, 3, 6);drawInitPosition(p, 3, 8);drawInitPosition(p, 6, 0);drawInitPosition(p, 6, 2);drawInitPosition(p, 6, 4);drawInitPosition(p, 6, 6);drawInitPosition(p, 6, 8);drawInitPosition(p, 2, 1);drawInitPosition(p, 2, 7);drawInitPosition(p, 7, 1);drawInitPosition(p, 7, 7);
}void Board::drawInitPosition(QPainter& p, int row, int col)
{QPoint pt = center(row, col);QPoint off = QPoint(_r / 6, _r / 6);int len = _r / 3;QPoint ptStart;QPoint ptEnd;if (col != 0) {// 左上角ptStart = QPoint(pt.x() - off.x(), pt.y() - off.y());ptEnd = ptStart + QPoint(-len, 0);p.drawLine(ptStart, ptEnd);ptEnd = ptStart + QPoint(0, -len);p.drawLine(ptStart, ptEnd);// 左下角ptStart = QPoint(pt.x() - off.x(), pt.y() + off.y());ptEnd = ptStart + QPoint(-len, 0);p.drawLine(ptStart, ptEnd);ptEnd = ptStart + QPoint(0, +len);p.drawLine(ptStart, ptEnd);}if (col != 8) {// 右下角ptStart = QPoint(pt.x() + off.x(), pt.y() + off.y());ptEnd = ptStart + QPoint(+len, 0);p.drawLine(ptStart, ptEnd);ptEnd = ptStart + QPoint(0, +len);p.drawLine(ptStart, ptEnd);// 右上角ptStart = QPoint(pt.x() + off.x(), pt.y() - off.y());ptEnd = ptStart + QPoint(+len, 0);p.drawLine(ptStart, ptEnd);ptEnd = ptStart + QPoint(0, -len);p.drawLine(ptStart, ptEnd);}
}// 绘制棋子
void Board::drawStone(QPainter &p)
{for (int i = 0; i < 32; ++i) {drawStone(p, i);}
}void Board::drawStone(QPainter &p, int id)
{if (isDead(id)) {return;}QColor color;if (red(id)) {color = Qt::red;}else {color = Qt::black;}p.setPen(QPen(QBrush(color), 2));if (id == _selectid) {p.setBrush(Qt::gray);}else {p.setBrush(Qt::yellow);}p.drawEllipse(cell(id));p.setFont(QFont("system", _r * 1.2, 700)); // 设置字体大小和类型p.drawText(cell(id), name(id), QTextOption(Qt::AlignCenter));
}// 返回棋盘行列对应的像素坐标
QPoint Board::center(int row, int col)
{QPoint pt(_r * col * 2, _r * row * 2);return pt + _off;
}// 重载center函数,方便调用
QPoint Board::center(int id)
{return center(_s[id]._row, _s[id]._col);
}QPoint Board::topLeft(int row, int col)
{return center(row, col) - QPoint(_r, _r);
}QPoint Board::topLeft(int id)
{return center(id) - QPoint(_r, _r);
}QRect Board::cell(int row, int col)
{return QRect(topLeft(row, col), QSize(_r * 2 - 1, _r * 2 - 1));
}QRect Board::cell(int id)
{return QRect(topLeft(id), QSize(_r * 2 - 1, _r * 2 - 1));
}// 判断点击位置属于哪个顶点
// 返回值为bool类型是为了处理点击在棋盘外的情况
bool Board::getClickRowCol(QPoint pt, int &row, int &col)
{row = pt.y() / (2 * _r) - 1;col = pt.x() / (2 * _r) - 1;QPoint c = center(row, col);int dx = c.x() - pt.x();int dy = c.y() - pt.y();int dist = dx * dx + dy * dy; // 和鼠标所处矩形左上顶点的距离if (dist < _r * _r) {return true;}row += 1;c = center(row, col);dx = c.x() - pt.x();dy = c.y() - pt.y();dist = dx * dx + dy * dy; // 和鼠标所处矩形左下顶点的距离if (dist < _r * _r) {return true;}row -= 1;col += 1;c = center(row, col);dx = c.x() - pt.x();dy = c.y() - pt.y();dist = dx * dx + dy * dy; // 和鼠标所处矩形右上顶点的距离if (dist < _r * _r) {return true;}row += 1;c = center(row, col);dx = c.x() - pt.x();dy = c.y() - pt.y();dist = dx * dx + dy * dy; // 和鼠标所处矩形右下顶点的距离if (dist < _r * _r) {return true;}return false;
}QString Board::name(int id)
{return _s[id].name();
}bool Board::red(int id)
{return _s[id]._red;
}bool Board::sameColor(int id1, int id2)
{if (id1 == -1 || id2 == -1) {return false;}return red(id1) == red(id2);
}int Board::getStoneId(int row, int col)
{for (int i = 0; i < 32; ++i) {if (_s[i]._row == row &&_s[i]._col == col && !isDead(i)) {return i;}}return -1; // 如果不是棋子返回-1
}void Board::killStone(int id)
{if (id == -1) {return;}_s[id]._dead = true;
}void Board::reliveStone(int id)
{if (id == -1) {return;}_s[id]._dead = false;
}void Board::moveStone(int moveid, int row, int col)
{_s[moveid]._row = row;_s[moveid]._col = col;_bRedTurn = !_bRedTurn;
}bool Board::isDead(int id)
{if (id == -1) {return true;}return _s[id]._dead;
}void Board::saveStep(int moveid, int killid, int row, int col, QVector<Step*>& steps)
{GetRowCol(row1, col1, moveid);Step* step = new Step;step->_colFrom = col1;step->_colTo = col;step->_rowFrom = row1;step->_rowTo = row;step->_moveid = moveid;step->_killid = killid;steps.append(step);
}void Board::backOne()
{if (this->_steps.size() == 0) {return;}Step* step = this->_steps.last();_steps.removeLast();back(step);update();delete step;
}void Board::back(Step* step)
{reliveStone(step->_killid);moveStone(step->_moveid, step->_rowFrom, step->_colFrom);
}void Board::back()
{backOne();
}void Board::mouseReleaseEvent(QMouseEvent *ev)
{if (ev->button() != Qt::LeftButton) { // 排除鼠标右键点击return;}click(ev->pos());
}void Board::click(QPoint pt)
{// 看有没有点中象棋// 将pt转化成象棋的行列值// 判断这个行列值上面有没有棋子int row, col;bool bClicked = getClickRowCol(pt, row, col);if (!bClicked) {return;}int id = getStoneId(row, col);click(id, row, col);}void Board::click(int id, int row, int col)
{if (this->_selectid == -1) { // 如果点中的棋子之前未被选中trySelectStone(id);}else {tryMoveStone(id, row, col);}
}void Board::trySelectStone(int id)
{if (id == -1) {return;}if (!canSelect(id)) {return;}_selectid = id;update();
}void Board::tryMoveStone(int killid, int row, int col)
{if (killid != -1 && sameColor(killid, _selectid)) {trySelectStone(killid);return;}bool ret = canMove(_selectid, killid, row, col);if (ret) {moveStone(_selectid, killid, row, col);_selectid = -1;update();}
}void Board::moveStone(int moveid, int killid, int row, int col)
{saveStep(moveid, killid, row, col, _steps);killStone(killid);moveStone(moveid, row, col);
}bool Board::canMove(int moveid, int killid, int row, int col)
{// 如果moveid和killid颜色相同,则不能移动,还需要换选择if (_s[moveid]._red == _s[killid]._red) {_selectid = killid;update();return false;}switch (_s[moveid]._type) {case Stone::JIANG:return canMoveJiang(moveid, killid, row, col);case Stone::SHI:return canMoveShi(moveid, killid, row, col);case Stone::XIANG:return canMoveXiang(moveid, killid, row, col);case Stone::CHE:return canMoveChe(moveid, killid, row, col);case Stone::MA:return canMoveMa(moveid, killid, row, col);case Stone::PAO:return canMovePao(moveid, killid, row, col);case Stone::BING:return canMoveBing(moveid, killid, row, col);}return true;}bool Board::canMoveJiang(int moveid, int killid, int row, int col)
{// 可直接吃对方将if (killid != -1 && _s[killid]._type == Stone::JIANG){return canMoveChe(moveid, killid, row, col);}GetRowCol(row1, col1, moveid);int r = relation(row1, col1, row, col);if (r != 1 || r != 10) {return false;}if (col < 3 || col > 5) {return false;}if (isBottomSide(moveid)) {if (row < 7) {return false;}}else {if (row > 2) {return false;}}return true;
}bool Board::canMoveShi(int moveid, int, int row, int col)
{// 移动步长一个格子对角线GetRowCol(row1, col1, moveid);int r = relation(row1, col1, row, col);if (r != 11) {return false;}if (col < 3 || col > 5) {return false;}if (isBottomSide(moveid)) {if (row < 7) {return false;}}else {if (row > 2) {return false;}}return true;
}bool Board::canMoveXiang(int moveid, int, int row, int col)
{GetRowCol(row1, col1, moveid);int r = relation(row1, col1, row, col);if (r != 22) { // 象走田,所以r应该等于22return false;}// 看象眼有没有棋子int rEye = (row + row1) / 2;int cEye = (col + col1) / 2;if (getStoneId(rEye, cEye) != -1) {return false;}// 判断是否在棋盘的下方if (isBottomSide(moveid)) {if (row < 4) {return false;}}else {if (row > 5) {return false;}}return true;
}bool Board::canMoveChe(int moveid, int, int row, int col)
{GetRowCol(row1, col1, moveid);int ret = getStoneCountAtLine(row1, col1, row, col);if (ret == 0) { // 在一行,并且中间没有棋子return true;}return false;
}bool Board::canMoveMa(int moveid, int, int row, int col)
{GetRowCol(row1, col1, moveid);int r = relation(row1, col1, row, col);// 首先判断马要走马字if (r != 12 && r != 21) {return false;}// 判断有没有蹩马腿的情况if (r == 12) { // 列相差等于2if (getStoneId(row1, (col + col1) / 2) != -1) {return false;}}else { // 行相差等于2if (getStoneId((row + row1) / 2, col1) != -1) {return false;}}return true;
}bool Board::canMovePao(int moveid, int killid, int row, int col)
{GetRowCol(row1, col1, moveid);int ret = getStoneCountAtLine(row, col, row1, col1);if (killid != -1) { // 如果炮要吃对方的棋子if (ret == 1) { // 中间有一个棋子,可以走return true;}}else { // 如果炮不吃棋子if (ret == 0) { // 中间没有棋子,可以走return true;}}return false;
}bool Board::canMoveBing(int moveid, int, int row, int col)
{GetRowCol(row1, col1, moveid);int r = relation(row1, col1, row, col);// 首先判断兵只能走一步if (r != 1 && r != 10) {return false;}if (isBottomSide(moveid)) { // 下面一方的棋子if (row > row1) { // 如果目标行大于原始行,相当于并在后退return false;}if (row1 >= 5 && row == row1) { // 还没有过河就想横着走return false;}}else { // 上面一方的棋子if (row1 > row) { // 如果目标行小于原始行,相当于兵在后退return false;}if (row <= 4 && row == row1) { // 还没有过河就想横着走return false;}}return true;
}bool Board::canSelect(int id)
{return _bRedTurn == _s[id]._red;
}int Board::relation(int row1, int col1, int row, int col)
{return qAbs(row1 - row) * 10 + qAbs(col1 - col);
}bool Board::isBottomSide(int id)
{return _bSide == _s[id]._red;
}int Board::getStoneCountAtLine(int row1, int col1, int row2, int col2)
{int ret = 0;// 首先判断两个棋子是否在同一条直线上,如果不在同一条直线上,直接返回-1if (row1 != row2 && col1 != col2) {return -1;}if (row1 == row2 && col1 == col2) {return -1;}// 计算两个棋子之间的有多少个棋子if (row1 == row2) { // 在同一行int min = col1 < col2 ? col1 : col2;int max = col1 > col2 ? col1 : col2;for (int col = min + 1; col < max; ++col) {if (getStoneId(row1, col) != -1) {++ret;}}}else { // 在同一列int min = row1 < row2 ? row1 : row2;int max = row1 > row2 ? row1 : row2;for (int row = min + 1; row < max; ++row) {if (getStoneId(row, col1) != -1) {++ret;}}}return ret;
}void Board::slotBack()
{back();
}

#ifndef STEP_H
#define STEP_H#include <QObject>class Step : public QObject
{Q_OBJECT
public:explicit Step(QObject *parent = 0);~Step();int _moveid;int _killid;int _rowFrom;int _colFrom;int _rowTo;int _colTo;signals:public slots:
};#endif // STEP_H

// Stone.h
// 棋子类,存储了棋子的基础信息#ifndef STONE_H
#define STONE_H#include <QString>class Stone
{
public:Stone();~Stone();enum TYPE{JIANG, CHE, PAO, MA, BING, SHI, XIANG};int _row;int _col;TYPE _type;int _id;bool _dead;bool _red;// 棋子的初始化void init(int id);// 判断_type返回相应字符串QString name();void rotate(); // 翻转棋盘};#endif // STONE_H

// Stone.cpp#include "Stone.h"
#include <QDebug>Stone::Stone()
{}Stone::~Stone()
{}void Stone::init(int id)
{struct {int row, col;Stone::TYPE type;} pos[16] = {{0, 0, Stone::CHE},{0, 1, Stone::MA},{0, 2, Stone::XIANG},{0, 3, Stone::SHI},{0, 4, Stone::JIANG},{0, 5, Stone::SHI},{0, 6, Stone::XIANG},{0, 7, Stone::MA},{0, 8, Stone::CHE},{2, 1, Stone::PAO},{2, 7, Stone::PAO},{3, 0, Stone::BING},{3, 2, Stone::BING},{3, 4, Stone::BING},{3, 6, Stone::BING},{3, 8, Stone::BING},};//_id = id;_dead = false;_red = id < 16;if (id < 16) { // 上方的棋子this->_row = pos[id].row;this->_col = pos[id].col;this->_type = pos[id].type;}else { // 下方的棋子this->_row = 9 - pos[id - 16].row;this->_col = 8 - pos[id - 16].col;this->_type = pos[id - 16].type;}
}QString Stone::name()
{switch (this->_type){case CHE:return "车";case MA:return "马";case PAO:return "炮";case BING:return "兵";case JIANG:return "将";case SHI:return "士";case XIANG:return "相";}return "错误";
}void Stone::rotate()
{this->_col = 8 - this->_col;this->_row = 9 - this->_row;
}

// main.cpp
// Chess游戏主程序
//
// Created by Lucifer Zhang on 2015-07-21.
// Copyright (c) 2015 Lucifer Zhang. All rights reserved.#include <QApplication>
#include "Board.h"int main(int argc, char* argv[])
{QApplication app(argc, argv);Board board;board.show();return app.exec();
}

工程代码详情:Github


查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. css3的一些动画(代码及演示)

    CSS3 的一些动画(代码及演示)1. 过渡:Transition(实现元素不同状态间的平滑过渡) 补间动画:从初始状态到终了状态。 帧动画:按固定顺序和速度播放。 属性: Transition-property:all; 所有属性均过渡 Transition-duration:1s; 设置过渡时间 Transition-timing-funct…...

    2024/4/17 10:22:04
  2. C语言 clock() 函数使用心得

    0、实践环境:Linux - Android 1、头文件 #include <time.h> 2、返回值clock_t 3、第一次调用时返回 0 4、单位微秒 5、可用于计算程序执行所耗时间,精度很高。...

    2024/4/19 12:41:24
  3. 把RichTextBox的内容保存到数据库

    保存到数据库的内容: byte[] b=System.Text.Encoding.Default.GetBytes(this.richTextBox1.Rtf); 读取: SqlConnection con=new SqlConnection("..."); string str="select 内容 from 数据库 where ...";//确保只返回一行 SqlCommand…...

    2024/4/18 8:41:06
  4. 原生JS-获取transform值 x y z及rotate旋转角度

    CSS3的时代经常会操作transform动画属性,所以也会有想获取transform属性的时候,不过当你去取值时就懵逼了,得出来的是matrix矩阵数值,而且有一点让你恼火,当你操作过z,矩阵的长度与排序就不一样了,你无法固定的取值,(貌似用jQ的一个方法是能固定取到),为了能正常取到…...

    2024/4/17 10:22:22
  5. Unity3D游戏框架设计

    Unity框架设计将Unity Api、.NetFramework Api(4.6)以及部分原生库和托管库封装到一个抽象层,游戏本身的业务仅依赖于该抽象层从而提高业务逻辑的独立性和可维护性。 框架部分提供项目中使用的基础设施,包括资源管理、网络通信、UI框架、消息管理、场景管理、数据解析及存取等…...

    2024/4/17 10:21:58
  6. C语言strchr()函数

    头文件:#include <string.h> strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:char *strchr(const char *s, int c); 参数】s为要查找的字符串,c 为要查找的字符。 strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回。 注意:字…...

    2024/4/17 10:21:04
  7. HTML5——canvas制作游戏接住小球

    先来一张效果图并完整版代码下载地址:HTML5——canvas制作游戏接住小球游戏的整体逻辑是随机在上面生成障碍物,当小球碰到障碍物时障碍物消失,当全部障碍物被消灭时赢得游戏,而当小球掉到木板以下则输掉游戏。先从页面说起,比较简单的代码,只有一个div一个canvas,就不多…...

    2024/4/26 11:15:47
  8. CSS3变形笔记

    主要关注2D变形,包括平移、旋转、缩放和倾斜效果,每个效果都是变形函数,可以结合css3的transition和动画的keyframe产生一些动画效果(例如结合使用transition属性,可以时变形有一个过渡的时间,而不是一下子就变形了,视觉上比较好)。 一、css3变形中的X/Y可用函数:tran…...

    2024/4/17 10:21:52
  9. jquery正则表达式基础辅助式理解

    1.什么是正则表达式? 根据百度百科的说法,正则表达式使用单个字符串来描述,匹配一些列符合某个语法规则的字符串,在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。其实嘛,正则表达式就是一个自定义的语法规范而已,就如我们卖书一样,卖什么书…...

    2024/5/2 0:42:12
  10. [科普小短文]在C#中调用C语言函数(静态调用Native DLL,Windows & Microsoft.Net平台)

    本文属于“科普”性质,面向对.Net不了解的读者。对于不太了解.Net的人,如果想要了解.Net,我必须给他介绍P/Invoke。P/Invoke是什么呢?简单地说,就是在.Net中调用本地代码(Native code)的一种解决方案。所谓“本地代码”是相对于托管代码(Managed code)来说的。P/Invok…...

    2024/4/17 10:21:52
  11. transform属性——css3变形效果2D

    一、transform 该属性允许我们对元素进行移动、缩放、旋转或倾斜 transform的属性值如下所示: 1、none 无变换 2、translate 可使用长度值或百分数值,在水平方向、垂直方向或两个方向上 translateX 平移元素 tra…...

    2024/4/20 15:27:43
  12. java编写简易扑克牌游戏

    游戏功能描述创建一副扑克牌: 包括四种花色:黑桃,红桃,梅花,方片 包括十三种点数:2-10,J,Q,K,A 创建两名玩家(or多名) 玩家至少要有ID,姓名,手牌等属性,手牌为扑克牌的集合 将创建好的扑克牌进行随机洗牌 从洗牌后的扑克牌的第一张开始,发给每个玩家,按照一人一…...

    2024/5/1 21:26:23
  13. C语言 将函数(有参、无参)作为参数传递

    在学习中遇到一个问题,就是要计算出一个函数的执行时间,但是我不可能每个函数都去执行一次clock,所以这里要想统一处理这个问题就需要把函数作为参数传入到方法内。首先是是无参函数作为的传递:void printTest_0() {printf("%s", "printTest_0"); }voi…...

    2024/4/20 5:33:44
  14. Silverlight技术之RichTextBox中Xaml绑定

    RichTextBox是Silverlight中一个重要的控件,常用它来呈现SL中富文本,使用此控件可以呈现常见的加粗,斜体,下划线,段落,还以加载各种控件等。它支持XAML格式文本输出,在实际应用中比较广泛。提到Silverlight可能大家用到比较多的数据展现,也许是数据绑定来实现的,那么能…...

    2024/4/17 10:22:16
  15. 一个简单JS小游戏

    这是一个简单的利用JS制作的卡片类游戏. html文件如下:<html> <head><title>卡片游戏</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" href="…...

    2024/5/1 21:26:58
  16. C语言编写的扫雷程序(思路清晰、注释详细)

    鉴于我上一个写的贪吃蛇程序把头文件和源文件分开写后有人可能会没看出来那是两个文件,本次把所有代码写在同一个文件里。下面是代码。本次程序没有去网上找一些好看的素材,所有的图案都是用EasyX图形库函数画的。你们若是有更好看的素材可以自己在这个程序上修改一下。我都在…...

    2024/4/20 14:29:34
  17. fullpage学习笔记

    最近H5的页面滑屏很火,两个比较轻量级的框架很很火。slip,他是通过控制父元素的transform: translateY或margin-top或top的值来上下滑动页面,每次的位移的取值为当前页面高度。 fullpage,他是通过控制子容器的方法实现的滑屏,只显示其中一个子元素,其它隐藏,滑屏时隐藏…...

    2024/5/2 0:44:15
  18. C语言入门:函数定义和调用

    一,函数定义举例: 例子1: int FunctionDamon1(); /* 这个函数声明包含了“ 返回值类型 函数名称 和括号()” , 没有函数参数,有函数参数的例子如下*/例子2; int FunctionDamon2(int valuable1, double valuable2 ); /* 括号里是函数的参数,参数可以是任意的数据类…...

    2024/4/17 10:23:22
  19. textbox,richtextbox 自动滚动到最底端

    private void richTextBox1_TextChanged(object sender, EventArgs e){//richTextBoxRecieve.SelectionStart = richTextBoxRecieve.Text.Length;//richTextBoxRecieve.SelectionLength = 0;//richTextBoxRecieve.Focus();}垂直滚动条始终在RichTextBox的底部 你需要设置HideSe…...

    2024/4/18 8:36:37
  20. 【HTML5游戏开发】简单的《找不同汉字版》,来考考你的眼力吧

    一,准备工作本次游戏开发需要用到lufylegend.js开源游戏引擎,版本我用的是1.5.2(现在最新的版本是1.6.0)。引擎下载的位置:http://lufylegend.googlecode.com/files/lufylegend-1.5.2.rar引擎API文档:http://lufylegend.com/lufylegend/api首先为了开发方便,我们得先建立…...

    2024/4/18 0:06:51

最新文章

  1. 【Linux 系统】进程信号 -- 详解

    ⚪前言 注意&#xff1a;进程间通信中的信号量跟下面要讲的信号没有任何关系。 一、从不同角度理解信号 1、生活角度的信号 你在网上买了很多件商品&#xff0c;在等待不同商品快递的到来。但即便快递没有到来&#xff0c;你也知道快递来临时&#xff0c;你该怎么处理快递&a…...

    2024/5/2 0:44:21
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. HiveSQL如何生成连续日期剖析

    HiveSQL如何生成连续日期剖析 情景假设&#xff1a; 有一结果表&#xff0c;表中有start_dt和end_dt两个字段&#xff0c;&#xff0c;想要根据开始和结束时间生成连续日期的多条数据&#xff0c;应该怎么做&#xff1f;直接上结果sql。&#xff08;为了便于演示和测试这里通过…...

    2024/5/1 10:20:40
  4. 分发饼干(C++ 贪心)

    目录 题目需求 贪心算法思想 什么是贪心 贪心算法的使用 贪心算法的优缺点 代码实现 后言 题目需求 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&…...

    2024/4/30 5:52:03
  5. 【Go】十六、文件操作

    文章目录 1、打开和关闭文件2、IO3、一次性读文件4、带缓冲区的读文件5、写入文件6、文件复制 1、打开和关闭文件 package main import("fmt""os" ) func main(){//打开文件&#xff1a;file,err : os.Open("d:/Test.txt");if err ! nil {//出错…...

    2024/5/1 14:17:25
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/30 18:14:14
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/30 18:21:48
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/30 9:43:22
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57