当前位置: 首页 > news >正文

企业网站网址举例搭建网站是什么专业

企业网站网址举例,搭建网站是什么专业,西安公司企业网站建设,网站建设维护培训文章目录 仅为自动化演示#xff0c;实际2048判定逻辑需要更加严谨 参考代码 # 使用提醒: # 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能 # 2. package包提供访问当前应用数据的功能#xff0c;如获取元素、访问全局变量、获取资源文件等功能 # 3. 当此模块作… 文章目录 仅为自动化演示实际2048判定逻辑需要更加严谨 参考代码 # 使用提醒: # 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能 # 2. package包提供访问当前应用数据的功能如获取元素、访问全局变量、获取资源文件等功能 # 3. 当此模块作为流程独立运行时执行main函数 # 4. 可视化流程中可以通过调用模块的指令使用此模块import xbot from xbot import print, sleep from .import package from .package import variables as glv import numpy as np import random from xbot import win32class Game2048:def __init__(self):初始化2048游戏自动化self.web_page Noneself.board_size 4self.directions [up, down, left, right]def start_game(self):启动游戏并初始化try:# 打开2048游戏网页self.web_page xbot.web.create(urlhttps://shop.yingdao.com/2048/index.html,modechrome)sleep(2) # 等待页面加载# 点击开始游戏按钮如果有start_btn self.web_page.find_by_xpath(//a[idnewgamebutton])if start_btn:start_btn.click()sleep(1)return Trueexcept Exception as e:print(f启动游戏失败: {e})return Falsedef get_board_state(self):获取当前游戏棋盘状态 try:# 查找所有数字单元格number_cells self.web_page.find_all_by_xpath(//div[contains(class,number-cell)])number_arr [int(item.get_text()) if item.get_text().strip() else 0 for item in number_cells]board np.array(number_arr, dtypeint).reshape(self.board_size, self.board_size)return boardexcept Exception as e:print(f获取棋盘状态失败: {e})return Nonedef make_move(self, direction):执行移动操作try:# 映射方向到键盘按键key_map {up: {UP},down: {DOWN},left: {LEFT},right: {RIGHT}}# 发送键盘事件win32.send_keys(keyskey_map[direction],send_key_delay50,delay_after1)sleep(0.3) # 等待动画效果return Trueexcept Exception as e:print(f执行移动失败: {e})return Falsedef simple_ai_move(self, board):简单AI策略决定下一步移动# 这里可以实现更复杂的AI算法# 示例随机选择一个有效方向valid_moves []for direction in self.directions:# 模拟移动看是否有效new_board self.simulate_move(board.copy(), direction)if not np.array_equal(new_board, board):valid_moves.append(direction)return random.choice(valid_moves) if valid_moves else Nonedef simulate_move(self, board, direction):模拟2048移动后的棋盘状态包含合并逻辑new_board np.zeros((self.board_size, self.board_size), dtypeint)if direction up:for col in range(self.board_size):column board[:, col]non_zero column[column ! 0] # 获取非零数字if len(non_zero) 0: # 如果全零直接跳过new_board[:, col] columncontinue# 合并相邻相同数字merged []i 0while i len(non_zero):if i 1 len(non_zero) and non_zero[i] non_zero[i 1]:merged.append(non_zero[i] * 2) # 合并i 2 # 跳过下一个数字已合并else:merged.append(non_zero[i])i 1# 填充到新列new_column np.zeros(self.board_size, dtypeint)new_column[:len(merged)] mergednew_board[:, col] new_columnelif direction down:for col in range(self.board_size):column board[:, col]non_zero column[column ! 0]if len(non_zero) 0: # 如果全零直接跳过new_board[:, col] columncontinue# 从下往上合并merged []i len(non_zero) - 1while i 0:if i - 1 0 and non_zero[i] non_zero[i - 1]:merged.insert(0, non_zero[i] * 2) # 合并i - 2else:merged.insert(0, non_zero[i])i - 1new_column np.zeros(self.board_size, dtypeint)new_column[-len(merged):] mergednew_board[:, col] new_columnelif direction left:for row in range(self.board_size):row_data board[row, :]non_zero row_data[row_data ! 0]if len(non_zero) 0: # 如果全零直接跳过new_board[row, :] row_datacontinue# 从左往右合并merged []i 0while i len(non_zero):if i 1 len(non_zero) and non_zero[i] non_zero[i 1]:merged.append(non_zero[i] * 2)i 2else:merged.append(non_zero[i])i 1new_row np.zeros(self.board_size, dtypeint)new_row[:len(merged)] mergednew_board[row, :] new_rowelif direction right:for row in range(self.board_size):row_data board[row, :]non_zero row_data[row_data ! 0]if len(non_zero) 0: # 如果全零直接跳过new_board[row, :] row_datacontinue# 从右往左合并merged []i len(non_zero) - 1while i 0:if i - 1 0 and non_zero[i] non_zero[i - 1]:merged.insert(0, non_zero[i] * 2)i - 2else:merged.insert(0, non_zero[i])i - 1new_row np.zeros(self.board_size, dtypeint)new_row[-len(merged):] mergednew_board[row, :] new_rowreturn new_boarddef auto_play(self, max_moves1000):自动玩游戏主循环if not self.start_game():returnmove_count 0while move_count max_moves:try: # 获取当前棋盘状态board self.get_board_state() print(board,board)if board is None:print(无法获取棋盘状态)breakprint(f当前棋盘状态移动{move_count}次:)print(board)# 决定下一步移动direction self.simple_ai_move(board)print(direction,direction)if not direction:print(没有有效移动游戏可能结束)breakprint(fAI决定移动方向: {direction})# 执行移动self.make_move(direction)move_count 1# 短暂暂停sleep(0.1)except KeyboardInterrupt:print(用户中断自动游戏)breakexcept Exception as e:print(f游戏过程中出错: {e})breakprint(自动游戏结束)def main(args):game Game2048()game.auto_play()
http://www.pierceye.com/news/335612/

相关文章:

  • 自己做的网站怎么链接火车头采集软件开发模型是什么
  • 新网站怎么做才会被收录正品海外购网站有哪些
  • 广东手机网站建设品牌js制作网页计算器
  • 化隆网站建设公司学做网站多久
  • 网站域名如何查询上海室内设计公司哪家好
  • 电子书推送网站怎么做新做的网站如何
  • 网站建设图片怎么加水印电商平台网站建设功能介绍
  • 一个门户网站怎么做金坛网站建设哪家好
  • 大学网站建设图江苏廉政建设网站
  • 班级网站建设方案网页美工的设计要点
  • 微网站搭建流程做网站的广告语
  • 那个网站做外贸canvas做的网站
  • 学做视频的网站wordpress上传大附件
  • 怎么做网站卖产品黄埭网站建设
  • 娱乐网站 建站软件学校网站建设栏目
  • 做调研有哪些网站网站建设策划书
  • 旺道网站排名优化建设网站需要做的工作
  • 设计公司网站 唐山本地备份wordpress
  • 淘宝客网站建设多少钱app网站开发案例
  • vs2008不能新建网站个性手绘个人网站模板下载
  • 西安好的网站建设公司西安高端网站制作公司哪家好
  • 网站分享按钮网站运营建站优化专家
  • 网站微信建设运维经验分享用cms创建自己带数据库的网站和在本机搭建网站运行平台的心得体会
  • wordpress建站吧做网站接专线费用
  • c 做网站设计广东seo点击排名软件哪里好
  • 微网站微网站seo服务理念
  • 建设网站招聘商标注册查询官网网站
  • 建设彩票网站合法吗新浪sae 搭建wordpress
  • 加热器网站怎么做的课程网站建设规划方案
  • 网站建设目标文档鄂州网站制作哪家好