Ruby版本的JavaScript Pong游戏:opal_pong

需积分: 5 0 下载量 156 浏览量 更新于2024-12-25 收藏 10KB ZIP 举报
资源摘要信息:"opal_pong:傍晚蛋白石" 是一个使用Ruby语言开发的JavaScript Pong游戏。Ruby语言是一款广泛使用的脚本语言,非常适合快速开发应用程序。Pong是一款经典的电子游戏,通常作为程序员学习编程语言的入门项目之一。opal_pong 是该款游戏的Ruby版本,它展示了Ruby语言强大的表达力以及在游戏开发方面的潜力。 使用OpalRb,Ruby程序员可以在Ruby中编写代码,然后将其编译成JavaScript代码。这样,Ruby代码就可以在任何支持JavaScript的环境中运行,如Web浏览器。OpalRb的出现,使得Ruby的语法和编程范式能够在Web前端领域得到应用,为Web开发带来新的可能。 在这份资源中,开发者展示了如何将JavaScript中的游戏逻辑用Ruby语言实现,同时也说明了OpalRb的技术特点。对于初学者来说,这是一个很好的学习资源,因为它不仅能够帮助他们理解游戏编程的基本概念,还能够让他们了解到Ruby和JavaScript之间的互操作性。 从描述中我们可以推断,opal_pong 的在线版本可以在Web浏览器中运行。开发者提供了访问游戏的链接,用户可以直接在浏览器中体验游戏,同时学习Ruby和OpalRb的编程实践。 在文件名称列表中,"opal_pong-master" 暗示了这是一个具有主分支的Git仓库。通常在GitHub等代码托管平台上,"master" 分支是项目的主要开发分支。开发者在源代码控制系统中维护了这个分支,确保代码的版本历史是有序的,并且允许协作开发。 总结来说,这份资源包含了以下几个主要知识点: 1. Ruby语言的基础应用:通过开发Pong游戏,可以学习Ruby的基本语法和编程范式。 2. OpalRb的使用:了解如何使用OpalRb将Ruby代码编译成JavaScript代码,并在Web浏览器中运行。 3. 游戏编程实践:通过构建一个简单的游戏,学习游戏逻辑的构建和事件处理。 4. 版本控制和代码托管:通过文件名称列表中的 "master" 分支标识,可以了解到开发者如何使用Git进行版本控制和代码托管。 5. Web前端开发:这份资源展示了如何使用Ruby语言进行Web前端开发,增加了Ruby开发者的学习方向和项目实现的可能性。

def unzip_infer_data(src_path,target_path): ''' 解压预测数据集 ''' if(not os.path.isdir(target_path)): z = zipfile.ZipFile(src_path, 'r') z.extractall(path=target_path) z.close() def load_image(img_path): ''' 预测图片预处理 ''' img = Image.open(img_path) if img.mode != 'RGB': img = img.convert('RGB') img = img.resize((224, 224), Image.BILINEAR) img = np.array(img).astype('float32') img = img.transpose((2, 0, 1)) # HWC to CHW img = img/255 # 像素值归一化 return img infer_src_path = '/home/aistudio/data/data55032/archive_test.zip' infer_dst_path = '/home/aistudio/data/archive_test' unzip_infer_data(infer_src_path,infer_dst_path) para_state_dict = paddle.load("MyCNN") model = MyCNN() model.set_state_dict(para_state_dict) #加载模型参数 model.eval() #验证模式 #展示预测图片 infer_path='data/archive_test/alexandrite_6.jpg' img = Image.open(infer_path) plt.imshow(img) #根据数组绘制图像 plt.show() #显示图像 #对预测图片进行预处理 infer_imgs = [] infer_imgs.append(load_image(infer_path)) infer_imgs = np.array(infer_imgs) label_dic = train_parameters['label_dict'] for i in range(len(infer_imgs)): data = infer_imgs[i] dy_x_data = np.array(data).astype('float32') dy_x_data=dy_x_data[np.newaxis,:, : ,:] img = paddle.to_tensor (dy_x_data) out = model(img) lab = np.argmax(out.numpy()) #argmax():返回最大数的索引 print("第{}个样本,被预测为:{},真实标签为:{}".format(i+1,label_dic[str(lab)],infer_path.split('/')[-1].split("_")[0])) print("结束") 以上代码进行DNN预测,根据这段代码写一段续写一段利用这个模型进行宝石预测的GUI界面,其中包含预测结果是否正确的判断功能

2023-05-25 上传