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

ps网站建设教程视频网上开店卖货流程

ps网站建设教程视频,网上开店卖货流程,热门网站建设加盟平台,推广方法和技巧你的任务是模拟黑白棋游戏的进程。黑白棋的规则为#xff1a;黑白双方轮流放棋子#xff0c;每次必须让新放的棋子“夹住”至少一枚对方棋子#xff0c;然后把所有被新放棋子“夹住”的对方棋子替换成己方棋子。一段连续#xff08;横、竖或者斜向#xff09;的同色棋子被…你的任务是模拟黑白棋游戏的进程。黑白棋的规则为黑白双方轮流放棋子每次必须让新放的棋子“夹住”至少一枚对方棋子然后把所有被新放棋子“夹住”的对方棋子替换成己方棋子。一段连续横、竖或者斜向的同色棋子被“夹住”的条件是两端都是对方棋子不能是空位。如图4-6a所示白棋有6个合法操作分别为(2,3),(3,3),(3,5),(6,2),(7,3),(7,4)。选择在(7,3)放白棋后变成如图4-6b所示效果注意有竖向和斜向的共两枚黑棋变白。注意(4,6)的黑色棋子虽然被夹住但不是被新放的棋子夹住因此不变白。 输入一个8*8的棋盘以及当前下一次操作的游戏者处理3种指令 L指令打印所有合法操作按照从上到下从左到右的顺序排列没有合法操作时输出No legal move。Mrc指令放一枚棋子在(r,c)。如果当前游戏者没有合法操作则是先切换游戏者再操作。输入保证这个操作是合法的。输出操作完毕后黑白方的棋子总数。Q指令退出游戏并打印当前棋盘格式同输入。 样例 输入 -------- -------- -------- ---WB--- ---BW--- -------- -------- -------- W L M35 L Q输出 [(3, 5), (4, 6), (5, 3), (6, 4)] W is 4. B is 1 [(3, 4), (3, 6), (5, 6)] -------- -------- ----W--- ---WW--- ---BW--- -------- -------- --------解法 use std::io;enum Cmd {Print,Move(usize, usize),Quit, } fn main() {let mut grid: VecVecchar vec![];for _i in 0..8 {let mut buf String::new();io::stdin().read_line(mut buf).unwrap();grid.push(buf.trim().chars().collect());}let mut buf String::new();io::stdin().read_line(mut buf).unwrap();let mut curplayer buf.trim().chars().nth(0).unwrap();let mut cmds: VecCmd vec![];loop {let mut buf String::new();io::stdin().read_line(mut buf).unwrap();buf buf.trim().to_string();if buf L {cmds.push(Cmd::Print);} else if buf Q {cmds.push(Cmd::Quit);break;} else {let i buf.chars().nth(1).unwrap().to_digit(10).unwrap();let j buf.chars().nth(2).unwrap().to_digit(10).unwrap();cmds.push(Cmd::Move(i as usize, j as usize));}}for i in cmds {match i {Cmd::Print printmoves(grid, curplayer),Cmd::Move(x, y) fangzi(mut grid, mut curplayer, (x, y)),Cmd::Quit {printgrid(grid);break;}}} }fn fangzi(grid: mut VecVecchar, curp: mut char, pos: (usize, usize)) {let allmoves getmoves(grid, *curp);if allmoves.is_empty() {*curp oposite(*curp);}let newpos (pos.0 - 1, pos.1 - 1);grid[newpos.0][newpos.1] *curp;let runs [(0, -1),(0, 1),(-1, 0),(1, 0),(-1, -1),(1, 1),(-1, 1),(1, -1),];for d in runs {if judge(grid, *curp, newpos, d) {change(grid, *curp, newpos, d);}}let nums getnums(grid);println!(W is {}. B is {}, nums.0, nums.1);*curp oposite(*curp); }fn getnums(grid: VecVecchar) - (u32, u32) {let mut nums (0, 0);for i in 0..8 {for j in 0..8 {if grid[i][j] W {nums.0 1;} else if grid[i][j] B {nums.1 1;}}}return nums; } fn oposite(p: char) - char {if p W {B} else {W} } fn printgrid(grid: VecVecchar) {for line in grid.iter() {println!({}, line.iter().collect::String());} } fn getmoves(grid: VecVecchar, curp: char) - Vec(usize, usize) {let mut allmoves: Vec(usize, usize) vec![];let runs [(0, -1),(0, 1),(-1, 0),(1, 0),(-1, -1),(1, 1),(-1, 1),(1, -1),];for i in 0..8 {for j in 0..8 {//println!(i,j: {},{}, i, j);if grid[i][j] ! - {continue;}for d in runs {//检查八个方向if judge(grid, curp, (i, j), d) {allmoves.push((i 1, j 1));}}}}return allmoves; } fn judge(grid: VecVecchar, curp: char, pos: (usize, usize), run: (i32, i32)) - bool {let mut x pos.0;let mut y pos.1;let mut bjiazhu false;while x 0 x 7 y 0 y 7 {x (x as i32 run.0) as usize;y (y as i32 run.1) as usize;if grid[x][y] -{break;}if grid[x][y] oposite(curp) {bjiazhu true;}else if bjiazhu {return true;}else {break;}}return false; } fn change(grid: mut VecVecchar, curp: char, pos: (usize, usize), run: (i32, i32)) {let mut x pos.0;let mut y pos.1;while x 0 x 7 y 0 y 7 {x (x as i32 run.0) as usize;y (y as i32 run.1) as usize;if grid[x][y] oposite(curp) {grid[x][y] curp;} else {return;}} } fn printmoves(grid: VecVecchar, curp: char) {let allmoves getmoves(grid, curp);if allmoves.is_empty() {println!(No legal move);} else {println!({:?}, allmoves);} }
http://www.zqtcl.cn/news/126171/

相关文章:

  • 网上购物最便宜的网站微信官方网站服务中心
  • 充电网站建设方案个体工商户查询
  • 所有网站302跳转百度wordpress最大上传2g
  • 南京网站制作网页seo推广百度百科
  • 陵水网站建设哪家好建设培训考试服务网站
  • h5视频网站模板中国十大企业培训机构排名
  • 强的网站建设明细报价表网站建设推广新业务
  • 哪里有免费做网站wordpress 在文章前面加序号
  • 263企业邮箱登录入口首页seo公司哪家
  • 哈尔滨建设银行网站岳阳建设网站
  • 中山网页网站设计模板自己做的网站怎么让别人看见
  • 建设装饰网站出口跨境电商平台
  • 陕西网站建设公司排名WordPress图片生成文章
  • t恤定制网站wordpress 分类 seo
  • 万网网站空间多少钱一年做哪些网站流量最大
  • seo网站优化服务网站开发电脑
  • 宿迁怎样建设网站wordpress 分类目录 标签
  • 惠州双语网站建设费用seo搜索工具栏
  • 做ppt会去什么网站找图网页制作与网站建设试题
  • 如何用ai给网站做logo宝安网站制作公司
  • sem是什么职业岗位单页式网站 seo
  • 做网站用什么版本系统国外有哪些设计网站推荐
  • dz论坛怎么做视频网站吗哪些公司是wordpress
  • 在微信怎样搞做微视频网站商城小程序模板源码完整版
  • h5跟传统网站有啥区别读取wordpress最新文章
  • 网站推广120最超值的网站建设
  • 移动网站制作公司如何开公司做网站
  • 网站建设 青海试题wordpress的特点
  • 源码如何做网站宽甸县建设局网站
  • 用dw做的网页怎么连到网站上企业网站备案资料填写单