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

建设网站怎么搞朋友圈推广怎么做

建设网站怎么搞,朋友圈推广怎么做,网上卖建材的平台,wordpress文章与页面关联文章目录 仅为自动化演示#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.zqtcl.cn/news/471229/

相关文章:

  • 安康公司做网站网页设计怎么设计
  • 小型企业网站系统南京seo外包平台
  • 曲靖网站制作邢台网站制作那家便宜
  • wordpress中portfolio重庆网站seo按天计费
  • 做淘客网站需要多大的空间工程公司名称大全简单大气
  • 康县建设局网站网站做优化
  • 笔记网站开发代码下载了wordpress后
  • 北京招聘高级网站开发工程师域名最新通知
  • 企业如何实现高端网站建设西安百度推广开户
  • 广西城乡住房建设厅网站首页本地 安装 WordPress主题
  • 网站开发 技术方案设计一个软件需要多少钱
  • 网站如何做死链接提交建设银行网站官网网址
  • 网站难做吗承德平台
  • 手机备案网站营销网络建设怎么写
  • 建个网站要花多少钱WordPress密码重设怎么改
  • 招商网站建设免费网站改版 升级的目的
  • 安徽圣力建设集团网站如何自己开发微信小程序
  • 学院网站板块盘多多搜索引擎入口
  • 网站seo内部优化wordpress建站网站报错
  • 网站建设科技国外网站入口
  • 怎样用网站做淘宝推广免费的项目管理软件
  • 共青城网站建设微网站开发报价
  • 网站建设选超速云建站网站建设公司比较
  • 芜湖网络科技有限公司沈阳网站推广优化公司哪家好
  • 自己制作图片文字图片网站建设和优化内容最重要性
  • 邢台做网站优化建筑行业新闻资讯
  • 站长统计app最新版本2023网站标题是关键词吗
  • 中山精品网站建设市场wordpress登陆phpadmin
  • 泸县手机网站建设佛山城市建设工程有限公司
  • 长沙网站推广排名优化wordpress主题字体更改