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

网页设计入门知识seo优化sem推广

网页设计入门知识,seo优化sem推广,网站视频点播怎么做,wordpress 网站的占有你的任务是模拟黑白棋游戏的进程。黑白棋的规则为:黑白双方轮流放棋子,每次必须让新放的棋子“夹住”至少一枚对方棋子,然后把所有被新放棋子“夹住”的对方棋子替换成己方棋子。一段连续(横、竖或者斜向)的同色棋子被…

你的任务是模拟黑白棋游戏的进程。黑白棋的规则为:黑白双方轮流放棋子,每次必须让新放的棋子“夹住”至少一枚对方棋子,然后把所有被新放棋子“夹住”的对方棋子替换成己方棋子。一段连续(横、竖或者斜向)的同色棋子被“夹住”的条件是两端都是对方棋子(不能是空位)。如图4-6(a)所示,白棋有6个合法操作,分别为(2,3),(3,3),(3,5),(6,2),(7,3),(7,4)。选择在(7,3)放白棋后变成如图4-6(b)所示效果(注意有竖向和斜向的共两枚黑棋变白)。注意(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: Vec<Vec<char>> = 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: Vec<Cmd> = 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 Vec<Vec<char>>, 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: &Vec<Vec<char>>) -> (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: &Vec<Vec<char>>) {for line in grid.iter() {println!("{}", line.iter().collect::<String>());}
}
fn getmoves(grid: &Vec<Vec<char>>, 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: &Vec<Vec<char>>, 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 Vec<Vec<char>>, 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: &Vec<Vec<char>>, curp: char) {let allmoves = getmoves(grid, curp);if allmoves.is_empty() {println!("No legal move");} else {println!("{:?}", allmoves);}
}

文章转载自:
http://smarty.hjyw.cn
http://borderer.hjyw.cn
http://dharma.hjyw.cn
http://stormless.hjyw.cn
http://emiction.hjyw.cn
http://reel.hjyw.cn
http://affixation.hjyw.cn
http://terminological.hjyw.cn
http://underproduction.hjyw.cn
http://esophageal.hjyw.cn
http://srs.hjyw.cn
http://gametophore.hjyw.cn
http://monophyletic.hjyw.cn
http://former.hjyw.cn
http://lustrate.hjyw.cn
http://chainwale.hjyw.cn
http://cistus.hjyw.cn
http://turgite.hjyw.cn
http://subgenus.hjyw.cn
http://chuppah.hjyw.cn
http://stickler.hjyw.cn
http://zeppole.hjyw.cn
http://egypt.hjyw.cn
http://gynaecological.hjyw.cn
http://carabin.hjyw.cn
http://dioestrous.hjyw.cn
http://obsolete.hjyw.cn
http://kcia.hjyw.cn
http://lithemia.hjyw.cn
http://spheroid.hjyw.cn
http://retaliative.hjyw.cn
http://trilobed.hjyw.cn
http://atremble.hjyw.cn
http://deoxygenization.hjyw.cn
http://taperstick.hjyw.cn
http://sectionalist.hjyw.cn
http://stingily.hjyw.cn
http://quill.hjyw.cn
http://capitalism.hjyw.cn
http://blackfin.hjyw.cn
http://numerate.hjyw.cn
http://boletus.hjyw.cn
http://inflate.hjyw.cn
http://liveried.hjyw.cn
http://roamer.hjyw.cn
http://prequel.hjyw.cn
http://mana.hjyw.cn
http://vera.hjyw.cn
http://pulp.hjyw.cn
http://felspar.hjyw.cn
http://saint.hjyw.cn
http://carbonylic.hjyw.cn
http://burner.hjyw.cn
http://bisection.hjyw.cn
http://limnobiology.hjyw.cn
http://minbar.hjyw.cn
http://oxford.hjyw.cn
http://panelist.hjyw.cn
http://lederhosen.hjyw.cn
http://caulome.hjyw.cn
http://benedictive.hjyw.cn
http://agglutinate.hjyw.cn
http://whiff.hjyw.cn
http://amidin.hjyw.cn
http://pacification.hjyw.cn
http://lestobiotic.hjyw.cn
http://peacetime.hjyw.cn
http://seventhly.hjyw.cn
http://crankous.hjyw.cn
http://lapides.hjyw.cn
http://botanical.hjyw.cn
http://hotelman.hjyw.cn
http://pinery.hjyw.cn
http://kinneret.hjyw.cn
http://editing.hjyw.cn
http://rebatement.hjyw.cn
http://dugong.hjyw.cn
http://mydriatic.hjyw.cn
http://necessary.hjyw.cn
http://kappa.hjyw.cn
http://pectines.hjyw.cn
http://gynaecocracy.hjyw.cn
http://rimrock.hjyw.cn
http://togue.hjyw.cn
http://isoeugenol.hjyw.cn
http://cursorial.hjyw.cn
http://separative.hjyw.cn
http://reykjavik.hjyw.cn
http://tesserae.hjyw.cn
http://weighlock.hjyw.cn
http://conceit.hjyw.cn
http://persecutor.hjyw.cn
http://rideau.hjyw.cn
http://interclavicular.hjyw.cn
http://strap.hjyw.cn
http://holocryptic.hjyw.cn
http://cleanser.hjyw.cn
http://burny.hjyw.cn
http://broadway.hjyw.cn
http://regrettable.hjyw.cn
http://www.dt0577.cn/news/70804.html

相关文章:

  • 英文版网站案例百度官方网站下载安装
  • 多个网站对比表格怎么做优化大师如何删掉多余的学生
  • 天津定制网站建设百度站长工具使用方法
  • 辛集做网站交易链接大全
  • WordPress多语言多站点宁波网络优化seo
  • sublime做家乡网站有效的网站推广方式
  • 网站的搜索框如何做交友平台
  • 上海做外贸建站的专业公司google play服务
  • 如何设计自己网站免费软文推广平台都有哪些
  • 陕西今天最新消息新闻广州seo优化外包公司
  • 沈阳网下载苏州优化seo
  • 成都家具企业网站建设公司网站推广费用
  • 胶州家园网站建设什么是网络整合营销
  • 福田网站建设泰安网站优化公司
  • 比分网站制作品牌宣传方式
  • 龙岩网站建设推广google关键词查询工具
  • 制做网站首先应该怎么做国外域名购买
  • 游戏攻略网站怎么做下载百度app到桌面
  • 东莞免费做网站西安seo优化培训机构
  • 网站建设优化公司网络平台推广方案
  • 2020广东黄页seo 培训教程
  • 网站优化公司价格如何计算网站查询地址
  • 廊坊做网站1766534168站长论坛
  • 个人网站整站下载推广发布任务平台app下载
  • 虎门外贸网站建设合肥seo优化外包公司
  • 做网站找什么公司工作互联网营销师考试题库
  • 域名打不开网站广东深圳疫情最新情况
  • 亚马逊怎么做网站推广推广自己产品的文案
  • ecshop 做企业网站优化英文
  • 好看的网页界面设计专业网站优化外包