-
老用户 包年的活动有吗?像阿里云是99/Y这种。
-
前言修改记录文档版本修改说明发布日期作者签发 v1.0 第一次发布 2024年12月21日 胡琦 1 概述1.1 实验介绍说明:本实验需要华为云账号,且经过实名认证本实验需要开发者空间账号,且经过实名认证仅“华东二”区域支持使用ModelArts Studio大模型即服务平台(MaaS)。MaaS是白名单功能,请先申请权限。本实验将基于华为云ModelArts Studio平台和开源Agent框架Dify.AI构建个性化聊天助手。ModelArts Studio作为华为云的一站式AI开发平台,提供了丰富的开源大模型资源,支持一键部署模型服务并通过API调用。Dify.AI则是一个功能强大的Agent开发框架,通过可视化的工作流编排方式,让开发者能够快速构建聊天助手、知识库、Agent等智能应用,大幅提升AI应用开发效率。1.2 实验对象企业个人开发者高校学生1.3 实验时间本次实验总时长预计 40 分钟。1.4 实验流程① 通过开发者空间云主机的Firefox浏览器访问并开通 ModelArts Studio 模型即服务。本次实验采用的 Qwen2_5-72B-Instruct 。 ② 通过终端从 cid:link_1 获取安装脚本,安装脚本基于 Docker 安装并部署 Dify.AI。 ③ 通过Firefox浏览器访问本地部署的 Dify.AI,完成后续模型服务配置、应用开发等操作。1.5 实验资源云资源消费/时时长开发者空间 云主机免费---ModelArts Studio免费(需先领取千万免费Tokens)--
-
华为云开发者日·北京站来啦!参加“基于FunctionGraph实现Gif动图制作应用开发”体验项目提出你的建议或使用体验有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来参加吧~【体验项目】基于FunctionGraph实现Gif动图制作应用开发【活动时间】2024年12月23日-12月31日【参与方式】直接在此活动帖下方回帖提建议/提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取每满20层抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“基于FunctionGraph实现Gif动图制作应用开发”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
-
华为安卓的眼球追踪技术已经特别成熟,有大佬知道这是个什么技术吗? 安卓手机目前能实现找个功能吗?
-
一、实验介绍MoonBit(cid:link_2)是国内首个工业级编程语言及其配套工具链,由粤港澳大湾区数字经济研究院(简称“IDEA 研究院”)基础软件中心打造的 AI 原生的编程语言以及开发者平台。通过创新框架在程序语言界形成后发优势,在编译速度、运行速度、体积大小上已成功领先传统语言。MoonBit 是一个用于云计算和边缘计算的 WebAssembly 端到端的编程语言工具链。MoonBit 目前处于 Beta-Preview 阶段,预计 2025 年内达到 1.0 阶段。2024年12月,GitHub 正式收录 MoonBit 作为一门通用编程语言!核心用户突破三万! 虽然 MoonBit 有提供无需安装任何软件,也不依赖任何服务器的IDE 环境,但我们仍然希望在华为云开发者空间云主机上能运行 MoonBit。二、 免费领取云主机如您还没有云主机,可点击链接,根据领取指南进行操作。如您已领取云主机,可直接开始实验。三、实验流程四、实验资源云资源消耗/时时长开发者空间-云主机免费40合计:0元五、实验步骤1、安装 Visual Studio Code1.1 下载 Visual Studio Code进入云主机,打开左侧Firefox浏览器,搜索cid:link_1 点击下载 Visual Studio Code(此处为.deb安装包为例)。1.2 安装 Visual Studio Code先点击文件夹图标在文件夹中显示 deb 安装包。接着打开终端。执行安装命令:sudo dpkg -i code_1.96.0-1733888194_amd64.deb1.3 验证安装结果我们可以继续通过命令新建文件夹并在 VSCode 中打开新建的文件夹:sudo mkdir hello_moonbit && code hello_moonbit2、安装 MoonBit Language 插件如下图中,点击1,在2处输入moonbit,点击3进行安装。 安装完成之后结果如下: 接着我们安装工具链,按下shift+cmd+p快捷键(mac快捷键,windows和linux快捷键是ctrl+shift+p),输入 MoonBit:install latest moonbit toolchain,随后会出现提示框,点击“yes”,等待程序下载完成。下载完成后,重启vscode让PATH环境变量生效。3、你的第一个 MoonBit 程序3.1 新建终端我们打开 VSCode,新建终端: 3.2 初始化项目输入命令:cd ~ && moon new hello && cd hello接着会在 VSCode 中打开项目,我们点击1打开 main.mbt,点击2 run,可以看到3终端输入日志。 4、学习MoonBit基础语法4.1 表达式和运算符expressionsAndOperators.mbt ``` let x: Int = 10 let a: Double = 3.14 let s: String = "Hello"let 通过编译: Int = x + (a + 0.2).to_int() // let 不通过编译: String = s + (a + 0.2).to_int() // 删除行首两个斜杠就能看到报错fn main { println(true && false) // 与 println(false || true) // 或 println(not(true)) // 非 println("=====") println(-4 / 3) // 整数除法 println(2147483647 + 1) // 溢出 println(2147483647L + 1L) // 不溢出 println(2147483648L.to_int()) // 溢出 println("=====") println(0.1 + 0.2 == 0.3) // 浮点数加法 println(0.1 + 0.2 - 0.2) // 浮点数加减法 println("=====") println('a'.to_int()) // 字符转数字 println(Char::from_int(65)) // 数字转字符 println("=====") println((2023, 10, 24).0) // 多元组的访问 println(("Bob", 3).1) // 多元组的访问 }![表达式与运算符](https://fileserver.developer.huaweicloud.com/FileServer/getFile/cmtybbstemp/20241213/cmtybbs/9b4/1a9/a09/0828061f519b41a9a09937204fa12564.20241213175035.66377596301117313154132235178390:20241213185036:2400:8FE3AF0AE7617570AC435E8B3924B1536F4D5E43E6E86EA32B1C000A670A1C1D.png) ### 4.2 函数 - functions.mbt// 顶层函数 fn add3(x: Int, y: Int, z: Int)-> Int { x + y + z }fn main { println(add3(1,2,3)) println(foo()) }// 局部函数fn foo() -> Int { fn inc(x) { x + 1 } // 命名为 inc fn (x) { x + inc(2) } (6) // 匿名,立即应用到整数字面量 6 }``` 至此,实验完毕。想了解更多MoonBit的内容可以访问:cid:link_2
-
开发者空间体验重磅开启:华为面向广大开发者群体,打造的全球开发者专属空间,工具资源预置,成为开发者云上的“家”。本次开发者空间三期活动提供了最新的CodeArts体验案例,一起来探索吧!【参与形式】Step1:报名开发者空间活动:>活动报名入口<Step2:>免费领取云主机<Step3:有奖调研:参与活动页开发者空间体验,完成调研问卷,即可抽取华为云云宝手办-单个盲盒、开发者定制鼠标垫!礼品参考展示:
-
华为云开发者日·2024年度创享峰会12月23日在北京隆重开启小编特推出【创享峰会专场】体验官活动不能去现场的小伙伴可以提前线上参与开发者体验项目更有心动好礼等你来领,快来参加吧~ 【实践项目】项目1- 华为开发者空间:基于鲲鹏服务器的打砖块小游戏部署项目2- 华为开发者空间:基于PyTorch的手写体识别项目3- TaurusDB:挑战数据业务汇报任务,轻松玩转SQL操作项目4- Astro:零代码构建家庭记账本项目5- ModelArts:一键玩转丑萌黏土风滤镜项目6- CodeArts实践:云上持续测试与反馈实践 【活动时间】2024年12月12日-12月31日 【参与流程】01 体验实践项目 》 02 去云声平台提建议 》 03 建议评估公示(2个工作日内)》 04 获奖公示 【获奖规则】奖项设置评选条件获奖名额激励礼品有效建议奖1、建议内容涉及的实践项目不少于2个2、有效建议数量不少于2条PS:实践项目3-4个,建议总积分额外增加10%;实践项目5个及以上,建议总积分额外增加15%;10名积分榜第1名:1000元/人积分榜第2名:800元/人积分榜第3名:500元/人积分榜第4-10名:200元/人优质建议奖1、有效建议不少于2条,由内部技术专家投票选出10名每人100-200元开发者定制礼品说明:1、建议预审通过即为有效建议,其中1条有效功能类建议为1分,1条有效体验类建议为0.3分;有效建议奖与优质建议奖可叠加2、建议提交时需要在标题中以“【开发者体验官】”为建议标题开头,比如【开发者体验官】开发者空间增加XX/优化XX/导入XX等3、建议内容仅针对以上6大实践项目中涉及的云产品,非以上实践项目涉及产品建议内容不参与此活动4、优质建议要求建议对云产品功能及优化改进有重要作用,优先从已被采纳的建议的选择;建议内容需要表述清晰,有明确的建议方案,最好有操作截图或链接等能进一步详细描述;高价值建议数量不限,且与有效建议奖可叠加,每位用户每月最多可获得一次。5、注意事项1)若出现积分相同且排名一致的情况,结合已实现和已采纳建议情况,由内部技术专家选出价值更高的建议用户给予奖励。2)同一用户在同一页面(文档)提出的同一类用户体验问题(包括但不限于错别字、语句不通顺、视觉体验等),在通过审核后仅算作一条有效建议数3)若发现代他人提交优化建议,此建议分值只取原分值30%;若发现2次及以上重复提交他人建议,或3次及以上重复提交体验类相关建议进行恶意刷量(包括但不限于错别字、语句不通顺、视觉体验等),取消本人活动参与资格;在活动截止日前进行大量刷屏提交建议,或者重复提交同类型体验建议,直接取消活动参与资格4)兑换礼品以仓库现有实物礼品为准,有货的情况下优先满足,其中1-3名可优先选择华为自营品牌电子礼品,礼品价值不能超过商品原价,无货则不可以指定,如遇商品缺货,将随机换成其他等价值礼品发放。5)此【云声专场】与云声月度例行激励活动不叠加,若标题无【开发者体验官】标记,则有效建议默认参与月度例行激励
-
之前没赶上十一月的11.11活动的各位开发者小伙伴们,很多人都在私信小编几时还有活动~为了满足大家的愿望,12.12年底狂欢活动来啦~这次各位小伙伴可不要再错过啦~12.12-12.31活动期间,新用户只需9.9元 即可订阅1个月的专业版会员!畅享更加流畅,高效,快捷的云端开发体验~抓紧时间点击下方链接进行订阅吧~点击>>立即订阅
-
我的华为开发者空间怎么不能用了,显示 使用时长 总剩余时长0.0小时 我的使用时长好像还没达到60小时,怎么就不能用了?
-
不能创建模拟器,怎么办
-
一、实验介绍随着人工智能技术的飞速发展,图像识别技术在众多领域得到了广泛应用。手写体识别作为图像识别的一个重要分支,其在教育、金融、医疗等领域具有广泛的应用前景。本实验旨在利用深度学习框架TensorFlow,结合MNIST手写体数据集,构建一个高效、准确的手写体识别系统,本实验是在云主机中安装PyCharm,并且基于TensorFlow框架的手写体识别的案例。本实验采用的MNIST数据库(Modified National Institute of Standards and Technology database)是一个大型数据库 的手写数字是通常用于训练 各种图像处理 系统。该数据库还广泛用于机器学习 领域的培训和测试。MNIST数据集共有训练数据60000项、测试数据10000项。每张图像的大小为28*28(像素),每张图像都为灰度图像,位深度为8(灰度图像是0-255)。二、 免费领取云主机如您还没有云主机,可点击链接,根据领取指南进行操作。如您已领取云主机,可直接开始实验。三、实验流程说明:① 下载并安装PyCharm;② 创建Python文件,部署TensorFlow;③ 编写代码,实现手写体识别;④ 运行代码,生成结果。四、实验资源云资源消耗/时时长开发者空间-云主机免费40分钟五、实验环境TensorFlow pip3 install tensorflow -i http://mirrors.tuna.tsinghua.edu.cn/pypi/web/simpleMatplotlibpip3 install matplotlib[l1] 六、实验步骤1、安装PyCharm1.1 下载PyCharm进入云主机,打开左侧Firefox浏览器,将https://www.jetbrains.com.cn/en-us/pycharm/download/download-thanks.html?platform=linux复制到浏览器,复制后按回车会打开PyCharm官网页面,自动下载PyCharm。下载完毕后点击右上角文件图标打开存放地址。打开后选择在此处解压。解压后进入到目录。进入目录内容显示如下。2.安装PyCharm双击进入bin目录,双击PyCharm图标打开PyCharm。打开PyCharm后显示如下,地区选择中国大陆后点击下一步。勾选同意后,点击继续。点击不发送。点击30天免费试用。点击新建项目。点击创建。2、下载TensorFlow框架2.1 新建目录打开PyCharm,单击左上角图标在弹出的菜单中选择“新建>目录”。目录名称输入:demo。2.2 新建文件在PyCharm左侧新建的demo目录单击鼠标右键,在打开的菜单中选择“新建>Python文件”。输入Python文件的名字,自定义即可。2.3 部署TensorFlow框架新建好后,在左侧找到新建好的Python文件双击打开。单击左下角图标打开终端。在终端输入命令,部署TensorFlow框架。pip3 install tensorflow -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple3、编写代码3.1 创建和编写文件在demo目录下新建一个py文件进行代码编辑。import tensorflow as tffrom tensorflow.keras import layers, models, callbacksimport matplotlib.pyplot as pltimport numpy as np# 下载MNIST数据集mnist = tf.keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data()# 归一化数据x_train, x_test = x_train / 255.0, x_test / 255.0# 拓展维度x_train = x_train[..., tf.newaxis].astype("float32")x_test = x_test[..., tf.newaxis].astype("float32")# 数据增强data_augmentation = tf.keras.Sequential([ layers.RandomRotation(0.1), layers.RandomZoom(0.1), layers.RandomTranslation(0.1, 0.1)])# 创建数据集对象,并设置每个批次的大小train_ds = tf.data.Dataset.from_tensor_slices((x_train, y_train)).shuffle(10000).batch(32)test_ds = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(32)# 构建模型model = models.Sequential([ data_augmentation, layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)), layers.MaxPooling2D((2, 2)), layers.Conv2D(64, (3, 3), activation='relu'), layers.MaxPooling2D((2, 2)), layers.Conv2D(128, (3, 3), activation='relu'), layers.MaxPooling2D((2, 2)), layers.Flatten(), layers.Dropout(0.5), layers.Dense(128, activation='relu'), layers.Dense(10)])# 编译模型model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy'])# 回调模型reduce_lr = callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.2, patience=5, min_lr=0.0001)early_stopping = callbacks.EarlyStopping(monitor='val_loss', patience=10, restore_best_weights=True)model_checkpoint = callbacks.ModelCheckpoint('best_model.keras', monitor='val_loss', save_best_only=True)# 训练模型history = model.fit(train_ds, epochs=10, validation_data=test_ds, callbacks=[reduce_lr, early_stopping, model_checkpoint])# 加载模型最佳权重model.load_weights('best_model.keras')# 评估模型test_loss, test_acc = model.evaluate(test_ds, verbose=2)print('\nTest accuracy:', test_acc)# 绘制实验的损失及准确率plt.figure(figsize=(12, 4))plt.subplot(1, 2, 1)plt.plot(history.history['loss'], label='Training Loss')plt.plot(history.history['val_loss'], label='Validation Loss')plt.xlabel('Epoch')plt.ylabel('Loss')plt.legend(loc='upper right')plt.subplot(1, 2, 2)plt.plot(history.history['accuracy'], label='Training Accuracy')plt.plot(history.history['val_accuracy'], label='Validation Accuracy')plt.xlabel('Epoch')plt.ylabel('Accuracy')plt.legend(loc='lower right')plt.show()# 预测并绘制一些预测样本def plot_image(i, predictions_array, true_label, img): true_label, img = true_label[i], img[i].reshape((28, 28)) plt.grid(False) plt.xticks([]) plt.yticks([]) plt.imshow(img, cmap=plt.cm.binary) predicted_label = np.argmax(predictions_array) if predicted_label == true_label: color = 'blue' else: color = 'red' plt.xlabel("{} {:2.0f}% ({})".format(true_label, 100*np.max(predictions_array), predicted_label), color=color)# 预测测试样本集predictions = model.predict(test_ds)# 绘制前五个测试样本num_rows = 5num_cols = 3num_images = num_rows*num_colsplt.figure(figsize=(2*2*num_cols, 2*num_rows))for i in range(num_images): plt.subplot(num_rows, 2*num_cols, 2*i+1) plot_image(i, predictions[i], y_test, x_test)plt.tight_layout()plt.show()当代码编写完毕后,需要下载相应的Python包,在终端输入命令:pip3 install matplotlib 指令下载。3.2 代码部分讲解1)导入数据包;首先对于导包部分导入TensorFlow、matplotlib、numpy等库,用于进行深度学习模型的构建数据可视化。2)下载MNIST数据集;这段代码加载了MNIST数据集,这是一个包含手写体数字0到9的图片数据集,常用于图像识别的入门任务。数据集分为训练集和测试集。3)数据预处理;这里对图像数据进行了归一化处理,将像素值从0-255的范围缩放到0-1。这样做可以加快模型的训练速度并提高其性能。之后,通过增加一个维度,将数据形状调整为模型所需的格式(样本数量,高度,宽度,通道数),并将数据类型转换为float32.4)创建数据集对象;将训练和测试数据转换为TensorFlow的数据集对象,并设置批次大小为32。并对训练数据进行混洗。5)构建模型;构建一个顺序模型,包括数据增强层、三个卷积层(每个卷积层后跟一个池化层)、一个展平层、一个丢弃层以及两个全连接层。6)编译模型;配置模型的学习过程,选择Adam优化器、稀疏分类交叉熵损失函数,并设置评估指标为准确率。7)回调模型;定义三个回调函数,用于在学习工程中调整学习率、早停以及在验证损失改善时保存模型权重。8)训练模型;使用训练数据集训练模型,指定训练轮数为10,使用测试数据集进行验证,并应用之前定义的回调函数。9)加载模型最佳权重;在训练完成后,加载具有最佳验证的损失的模型权重。10)评估模型;在测试数据集上评估模型的性能,并打印准确率。11)可视化训练过程;使用matplotlib绘制训练和验证损失及准确率的变化曲线。12)预测并展示结果。定义plot_image函数:用于绘制单个预测结果,显示图像、真是标签、预测概率和预测标签;预测测试样本:使用model.predict对测试数据集进行预测;绘制预测结果:选择前几个测试样本,调用plot_image函数绘制预测结果。4、运行结果生成代码编写完毕后右击鼠标,点击运行。运行后会出现手写体识别的结果,上方图片是手写的字体,图片下方是模型预测的结果。运行结果中有loss损失函数,以及acc准确率,可以看到loss损失函数在慢慢的降低,而acc准确率在慢慢的升高。acc准确率提高的原因是因为训练轮数的不断增加,交叉熵损失衡量了模型预测与真实标签之间的差异。在训练过程中,优化器的目标是使损失函数最小化。随着训练轮数的增加,损失函数的值逐渐降低,这意味着模型的预测越来越接近真实标签,从而提高准确率。可以看到每一个epoch中每一秒的准确率以及损失率的变换。Loss损失率和acc准确率折线图,能供清楚的看到,loss损失率随着eopch的不断增加而减少,acc准确率则随着epoch的不断增加而不断提高。至此,实验完毕。想了解更多手写体识别的内容可以访问:https://yann.lecun.com/exdb/mnist/想了解更多关于TensorFlow框架的可以访问:关于TensorFlow | TensorFlow中 文官网
-
开发者空间体验重磅开启:华为面向广大开发者群体,打造的全球开发者专属空间,工具资源预置,成为开发者云上的“家”。本次PaaS联合开发者空间提供了最新的画图应用开发部署场景化体验案例,一起来探索吧!【参与形式】Step1:报名开发者空间活动:>活动报名入口<Step2:>免费领取云主机<Step3:有奖打卡:体验活动页开发者空间任意实践任务,将所画的图/ /生成的动漫头像(二选一即可),分享到此帖子的评论区,并对开发者空间或相关产品以及体验案例等提出自己的优化建议,或分享体验心得,筛选优质打卡内容,送出华为云云宝手办-单个盲盒(限5名)礼品参考展示:注意事项:1、请务必使用个人账号参与活动(IAM、企业账号等账号参与无效)2、活动获奖名单预计活动结束后10个工作日内完成公示,15个工作日内完成奖品发放,每个账号限领一次奖品,发放时间根据实际情况动态调整,如有延期敬请见谅;3、活动奖品如无库存,将以同价位其他奖品替换;4、本次活动参与用户需真实有效,如有虚假、黑产等行为,一律通报、剔除活动参与资格。
-
华为开发者空间用户使用体验调研活动开启啦!!!欢迎来提交你内心对开发者空间最真实的感受,填写问卷将获得一次抽奖机会,我们会在有效问卷中选择10名用户进行电话回访,受邀回访的用户可额外获得价值200元开发者定制礼包,名额有限,快叫上小伙伴一起来参加吧~【礼品激励】填写问卷:抽取云宝手办盲盒1个受邀访谈:本期计划访谈10位开发者,每人可获得价值200元开发者定制好礼(华为手环/开发者定制卫衣/防风服等随机发货)【调研时间】24年11月22日-27日【访谈时间】在调研问卷结束后一周内发起访谈【活动说明】礼品将于访谈结束后15天内一起发出
-
华为开发者空间是华为云为全球开发者打造的专属开发空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等各项根技术的开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。在这里,开发者可以依照指引,轻松申领并激活专属的云主机工作桌面。每台主机都预装了直观的可视化操作系统,并集成了CodeArts IDE工具以及Java、Python等流行编程语言的运行时插件,解决本地开发环境中配置复杂、稳定性不足和依赖等问题,为开发者提供性能强大、安全、稳定、高效的开发环境。每月可享有15小时的云主机使用时长,5GB的个人存储空间和每月3小时的场景化沙箱资源。云主机内预置box,方便快捷触达社区学堂等技术知识交流学习阵地,让开发者拥有开箱即用的可延续工作空间,这片个人专属的天地,将成为项目开发的舞台,学习总结的笔记簿,以及个人智慧的宝库。为了方便各位开发者体验开发者空间,特举办《华为开发者空间一行代码快速上云》有奖征文及实践视频征集活动,免费领取一台云主机、一套开发工具及个人存储空间,马上开启您的专属开发空间!【如您在体验中发现任何体验不友好、产品Bug、文档页面错漏等情况,欢迎通过云声平台反馈给我们,还有机会领取云声专属礼品!】点击了解活动详情
-
一、 案例介绍鲲鹏服务器是基于鲲鹏处理器的新一代数据中心服务器,适用于大数据、分布式存储、高性能计算和数据库等应用。鲲鹏服务器具有高性能、低功耗、灵活的扩展能力,适合大数据分析、软件定义存储、Web等应用场景。本案例将指导开发者如何在鲲鹏服务器部署并运行web小游戏。二、免费领取云主机如您还没有云主机,可点击链接 ,领取专属云主机后进行操作。如您已领取云主机,可直接开始实验。三、实验流程说明:1、自动部署鲲鹏服务器;2、使用终端连接鲲鹏服务器;3、创建html文件;4、启动Web服务器;5、体验游戏。四、实验资源本次实验预计花费总计0元。资源名称规格单价(元)时长(h)云主机2vCPUs | 4GB RAM免费1五、自动部署鲲鹏服务器在云主机桌面右键选择“Open Terminal Here”,打开命令终端窗口。执行自动部署命令如下:hcd deploy --password abcd1234! --time 1800命令的参数说明:password:password关键字后设置的是鲲鹏服务器的root用户密码,命令中给出的默认为abcd1234!,开发者可以替换成自定义密码(至少8个字符)。time:time关键字后面设置的为鲲鹏服务器的可用时间,单位为秒,至少600秒。当前实验预估需要20分钟,为了保证时间充足,在命令中申请的时间为30分钟,即1800秒。该命令会自动部署鲲鹏服务器。首次部署会直接执行,旧资源未到期时重复部署,会提示是否删除前面创建的资源,可以删除旧资源再次部署。记录部署远端服务器公网IP,如截图中对应的就是:113.44.86.210。六、拷贝代码新打开一个命令窗口,在命令窗口中输入命令登录远端服务器,命令如下:ssh root@远端服务器公网IP输入密码,密码为步骤五中自动部署命令行中“--password”后面的参数,命令中给出的默认为abcd1234!,如果没有修改,就使用abcd1234!进行登录,如果设置了自定义密码,直接输入自定义的密码(注意:输入过程中密码不会显示,密码输入完成按回车键结束)。输入密码也可以借助剪切板进行复制粘贴,避免直接在命令窗口输入看不到输入内容而密码错误:登录成功后创建文件夹用于存放html文件,命令如下:mkdir game cd game vi game.html进入到Vim编辑器,按下键盘的“i”键进入到插入模式下,复制下列代码粘贴到编辑器中。(复制文档中代码时,如果包含页眉,请删除页眉部分!也可以通过链接下载代码)<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Arkanoid game</title> <style> body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f0f0; } canvas { border: 5px solid #3498db; border-radius: 10px; } /* game start cues */ .game-start-text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 24px; color: green; background-color: rgba(255, 255, 255, 0.8); padding: 10px; border-radius: 5px; } /* score display style */ .score-display { position: absolute; top: 20px; left: 50%; transform: translateX(-50%); font-size: 18px; color: #333; font-weight: bold; background-color: rgba(255, 255, 255, 0.7); padding: 5px 10px; border-radius: 5px; } </style> </head> <body> <canvas id="gameCanvas" width="800" height="600"></canvas> <div class="score-display" id="scoreDisplay">score:0</div> <div id="gameStartText" class="game-start-text">start</div> <audio id="hitBrickSound" preload="auto"> <source src="hitBrick.mp3" type="audio/mpeg"> Your browser does not support the audio element. </audio> <audio id="hitPaddleSound" preload="auto"> <source src="hitPaddle.mp3" type="audio/mpeg"> Your browser does not support the audio element. </audio> <audio id="gameOverSound" preload="auto"> <source src="gameOver.mp3" type="audio/mpeg"> Your browser does not support the audio element. </audio> <script> const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); const ballRadius = 10; let x = canvas.width / 2; let y = canvas.height - 30; let dx = 3; let dy = -3; const paddleHeight = 10; const paddleWidth = 100; let paddleX = (canvas.width - paddleWidth) / 2; const brickRowCount = 10; const brickColumnCount = 15; const brickWidth = 48; const brickHeight = 20; const bricks = []; let score = 0; let gameStarted = false; for (let c = 0; c < brickColumnCount; c++) { bricks[c] = []; for (let r = 0; r < brickRowCount; r++) { bricks[c][r] = { x: 0, y: 0, status: 1 }; } } document.addEventListener('mousemove', mouseMoveHandler, false); document.addEventListener('click', startGame, false); function mouseMoveHandler(e) { if (gameStarted) { const relativeX = e.clientX - canvas.offsetLeft; if (relativeX > 0 && relativeX < canvas.width) { paddleX = relativeX - paddleWidth / 2; } } } function startGame() { if (!gameStarted) { gameStarted = true; document.getElementById('gameStartText').style.display = 'none'; draw(); } } function drawBall() { ctx.beginPath(); ctx.arc(x, y, ballRadius, 0, Math.PI * 2); ctx.fillStyle = '#0095DD'; ctx.fill(); ctx.closePath(); } function drawPaddle() { ctx.beginPath(); ctx.rect(paddleX, canvas.height - paddleHeight, paddleWidth, paddleHeight); ctx.fillStyle = '#0095DD'; ctx.fill(); ctx.closePath(); } function drawBricks() { for (let c = 0; c < brickColumnCount; c++) { for (let r = 0; r < brickRowCount; r++) { if (bricks[c][r].status === 1) { const brickX = c * (brickWidth + 2) + 20; const brickY = r * (brickHeight + 2) + 20; bricks[c][r].x = brickX; bricks[c][r].y = brickY; ctx.beginPath(); ctx.rect(brickX, brickY, brickWidth, brickHeight); ctx.fillStyle = '#0095DD'; ctx.fill(); ctx.closePath(); } } } } function collisionDetection() { for (let c = 0; c < brickColumnCount; c++) { for (let r = 0; r < brickRowCount; r++) { const b = bricks[c][r]; if (b.status === 1) { if (x > b.x && x < b.x + brickWidth && y > b.y && y < b.y + brickHeight) { dy = -dy; b.status = 0; score++; document.getElementById('scoreDisplay').textContent = 'score:' + score; const hitBrickSound = document.getElementById('hitBrickSound'); hitBrickSound.play(); } } } } } function draw() { ctx.clearRect(0, 0, canvas.width, canvas.height); if (gameStarted) { drawBricks(); drawBall(); drawPaddle(); collisionDetection(); x += dx; y += dy; if (x + dx > canvas.width - ballRadius || x + dx < ballRadius) { dx = -dx; } if (y + dy < ballRadius) { dy = -dy; } else if (y + dy > canvas.height - ballRadius) { if (x > paddleX && x < paddleX + paddleWidth) { dy = -dy; const hitPaddleSound = document.getElementById('hitPaddleSound'); hitPaddleSound.play(); } else { const gameOverSound = document.getElementById('gameOverSound'); gameOverSound.play(); document.location.reload(); } } } requestAnimationFrame(draw); } draw(); </script> </body> </html>按下ESC按钮退出编辑模式,输入“:wq”,退出并保存game.html文件。七、安装软件包安装Python3,命令如下:sudo yum install -y python3 安装成功后检查Python3版本确认是否安装成功。python3 --version八、浏览器访问在当前存放代码的路径下,使用Python3启动一个简单的Web服务器,命令如下:python3 -m http.server如下图所示,代表当前Web服务器已经启动。打开火狐浏览器,在地址栏输入“http://弹性云服务器IP:8000/game.html”即可体验游戏。至此实验全部完成。
上滑加载中
推荐直播
-
GaussDB数据库介绍
2025/01/07 周二 16:00-18:00
Steven 华为云学堂技术讲师
本期直播将介绍GaussDB数据库的发展历程、优势、架构、关键特性和部署模式等,旨在帮助开发者了解GaussDB数据库,并通过手把手实验教大家如何在华为云部署GaussDB数据库和使用gsql连接GaussDB数据库。
去报名 -
DTT年度收官盛典:华为开发者空间大咖汇,共探云端开发创新
2025/01/08 周三 16:30-18:00
Yawei 华为云开发工具和效率首席专家 Edwin 华为开发者空间产品总监
数字化转型进程持续加速,驱动着技术革新发展,华为开发者空间如何巧妙整合鸿蒙、昇腾、鲲鹏等核心资源,打破平台间的壁垒,实现跨平台协同?在科技迅猛发展的今天,开发者们如何迅速把握机遇,实现高效、创新的技术突破?DTT 年度收官盛典,将与大家共同探索华为开发者空间的创新奥秘。
去报名 -
GaussDB应用实战:手把手带你写SQL
2025/01/09 周四 16:00-18:00
Steven 华为云学堂技术讲师
本期直播将围绕数据库中常用的数据类型、数据库对象、系统函数及操作符等内容展开介绍,帮助初学者掌握SQL入门级的基础语法。同时在线手把手教你写好SQL。
去报名
热门标签