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

网站上面做测试题信息流优化师没经验可以做吗

网站上面做测试题,信息流优化师没经验可以做吗,网站开发建设专业,做网站wordpress文章目录 仅为自动化演示,实际2048判定逻辑需要更加严谨 参考代码 # 使用提醒: # 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能 # 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能 # 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(url="https://shop.yingdao.com/2048/index.html",mode="chrome")sleep(2)  # 等待页面加载# 点击开始游戏按钮(如果有)start_btn = self.web_page.find_by_xpath('//a[@id="newgamebutton"]')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, dtype=int).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(keys=key_map[direction],send_key_delay=50,delay_after=1)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), dtype=int)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, dtype=int)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, dtype=int)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, dtype=int)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, dtype=int)new_row[-len(merged):] = mergednew_board[row, :] = new_rowreturn new_boarddef auto_play(self, max_moves=1000):"""自动玩游戏主循环"""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(f"AI决定移动方向: {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.dtcms.com/wzjs/263602.html

相关文章:

  • 深圳设计周2021时间网站优化方案案例
  • 网站维护是谁做的百度主页面
  • 怎么在网站上做旅游推广郑州网络推广专业公司
  • 宁波建网站找哪家个人网站模板免费下载
  • 泰安人才市场廊坊seo推广
  • 百度网站关键词优化在哪里做宁波seo关键词
  • 南京做网站咨询南京乐识网站搜索关键词优化
  • 网站开发设计实训总结自动引流免费app
  • 做网站推广排名百度官方网址
  • 全球电子商务网站排名搜索引擎优化学习
  • 网站页面设计模板图片开发网站的流程
  • 做网站需要那些编程语言网络seo招聘
  • 武汉专业网站做网页百度导航下载安装手机导航
  • 视频网站后台设计不需要验证码的广告平台
  • 做门票的网站郑州seo排名扣费
  • 今日头条网站什么语言做的免费b站推广
  • 有谁会设制网站个人怎么在百度上做推广
  • 网站后台运营怎么做关键词优化的作用
  • 哪里有做网站优化的公司app推广工作是做什么的
  • 被墙域名黑别人网站汕头网站建设公司
  • 做电商宠物带哪个网站最好nba最新排行
  • 宁夏交通厅建设局网站电商网站定制开发
  • 品牌型网站制网络营销的方式和方法
  • 网站建设最新模板下载百度推广怎么推广
  • 东莞广告公司电话超级优化
  • 网站卖东西怎么做做seo用哪种建站程序最好
  • 郑州网站建设哪家最好武汉seo网络营销推广
  • 使用js做网站性能测试seo关键词排名优化怎样
  • 菜鸟教程网站怎么做江北关键词优化排名seo
  • 网站制作公司兴田德润怎么联系微信推广引流方法