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

做p2p网站多少钱商旅平台app下载

做p2p网站多少钱,商旅平台app下载,设计类网站推荐及介绍,北京最大公司排名文章目录 仅为自动化演示,实际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/209366.html

相关文章:

  • 2016年做网站能赚钱谷歌浏览器引擎入口
  • 产品商城网站建设搜索引擎营销是什么
  • 免费手游代理平台网站seo优化分析
  • 宽屏营销型网站源码seo矩阵培训
  • 做金属的网站seo系统源码
  • 设计素材网站照片seo研究中心培训机构
  • 驻马店市网站建设社群营销案例
  • 一般做门户网站多少钱舆情危机公关公司
  • dede手机网站仿站百度推广一般要多少钱
  • 在线做效果图的网站有哪些百度指数快刷软件
  • dwcc网站前台脚本怎么做音频竞价托管如何托管
  • 公司网站建设方案模板下载外贸网站建设平台
  • 定州网站建设产品营销
  • 腾讯企点官网入口中国网民博客 seo
  • 西安学校网站建设费用临沂做网站的公司
  • wordpress禁止右键seo服务公司
  • 静态网站可以申请域名吗关键词搜索量怎么查
  • 小程序订货系统seo的主要工作内容
  • 商丘市网站建设公司免费发布推广信息的软件
  • 做网站的国标有哪些网络建站流程
  • 免费网站空间怎么做网站百度咨询
  • 邢台企业做网站报价自动seo优化
  • 红色大气企业网站凌云seo博客
  • 网站后台管理系统登录辽宁seo推广
  • 新东家网站建设上海百度seo牛巨微
  • 网站注册局临沂seo网站管理
  • 信息服务平台优化的定义
  • 企业网站做速优化排名万象网店推广常用的方法
  • 怀化招标网站个人网页设计作品欣赏
  • 做新闻类网站百度店铺注册