小红正在玩贪吃蛇游戏。游戏中小红需要控制蛇向上、下、左、右走,当蛇吃到食物时,蛇的身体会变长。当蛇撞到自己的身体时,游戏结束。当指令执行完毕时,游戏也结束。 本游戏和传统贪吃蛇不同的是,初始地图上就会存在所有的食物,吃完食物后也不能增加新的食物! 地图是无穷大的,因此没有撞墙这个说法。 假设蛇初始的坐标为,初始长度是1(即只占用这一个坐标)。 ‘W’指令代表向上移动,坐标由(x,y)移动到(x,y+1)。 ‘S’指令代表向下移动,坐标由(x,y)移动到(x,y-1)。 ‘A’指令代表向左移动,坐标由(x,y)移动到(x-1,y)。 ‘D’指令代表向右移动,坐标由(x,y)移动到(x+1,y)。 小红想知道,游戏结束的时候,蛇的长度是多少?
区块链毕设网qklbishe.com为您提供问题的解答
小红正在玩贪吃蛇游戏。游戏中小红需要控制蛇向上、下、左、右走,当蛇吃到食物时,蛇的身体会变长。当蛇撞到自己的身体时,游戏结束。当指令执行完毕时,游戏也结束。
假设蛇初始的坐标为,初始长度是1(即只占用这一个坐标)。
‘W’指令代表向上移动,坐标由(x,y)移动到(x,y+1)。
‘S’指令代表向下移动,坐标由(x,y)移动到(x,y-1)。
‘A’指令代表向左移动,坐标由(x,y)移动到(x-1,y)。
‘D’指令代表向右移动,坐标由(x,y)移动到(x+1,y)。
小红想知道,游戏结束的时候,蛇的长度是多少?
n = int(input()) ops = input() m = int(input()) food_pos = set() for _ in range(m): i, j = list(map(int, input().split())) food_pos.add((i,j)) body_pos = [(0,0)] for i in range(n): op = ops[i] if op == 'W': x, y = body_pos[-1][0], body_pos[-1][1]+1 elif op == 'S': x, y = body_pos[-1][0], body_pos[-1][1]-1 elif op == 'A': x, y = body_pos[-1][0]-1, body_pos[-1][1] else: x, y = body_pos[-1][0]+1, body_pos[-1][1] if (x,y) in body_pos[1:]: break if (x,y) in food_pos: food_pos.remove((x,y)) else: body_pos.pop(0) body_pos.append((x,y)) print(len(body_pos))
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String l1 = in.nextLine(); int num = Integer.parseInt(l1); String op = in.nextLine(); String l3 = in.nextLine(); int foodnum = Integer.parseInt(l3); Vector<String> food = new Vector<>(foodnum); for(int i=0;i<foodnum;i++){ String pos = in.nextLine(); String p[] = pos.split(" "); food.add((Integer.parseInt(p[0]))+"-"+((Integer.parseInt(p[1])))); } int x=0,y=0,res=0; Deque<String> snake = new ArrayDeque<>(num); snake.add("0-0"); for(int i=0;i<num;i++){ switch (op.charAt(i)){ case 'W': y+=1; if(food.contains(x+"-"+y)) { snake.add(x+"-"+y); food.remove(x+"-"+y); } else { snake.pop(); if(snake.contains(x+"-"+y)){ res=1; i=num-1; }else{ snake.add(x+"-"+y); } } break; case 'A': x-=1; if(food.contains(x+"-"+y)) { snake.add(x+"-"+y); food.remove(x+"-"+y); } else { snake.pop(); if(snake.contains(x+"-"+y)){ res=1; i=num-1; }else{ snake.add(x+"-"+y); } } break; case 'S': y-=1; if(food.contains(x+"-"+y)) { snake.add(x+"-"+y); food.remove(x+"-"+y); } else { snake.pop(); if(snake.contains(x+"-"+y)){ res=1; i=num-1; }else{ snake.add(x+"-"+y); } } break; case 'D': x+=1; if(food.contains(x+"-"+y)) { snake.add(x+"-"+y); food.remove(x+"-"+y); } else { snake.pop(); if(snake.contains(x+"-"+y)){ res=1; i=num-1; }else{ snake.add(x+"-"+y); } } break; } } res += snake.size(); System.out.println(res); } }
值得注意的有以下两个点:
以上就是关于问题小红正在玩贪吃蛇游戏。游戏中小红需要控制蛇向上、下、左、右走,当蛇吃到食物时,蛇的身体会变长。当蛇撞到自己的身体时,游戏结束。当指令执行完毕时,游戏也结束。
本游戏和传统贪吃蛇不同的是,初始地图上就会存在所有的食物,吃完食物后也不能增加新的食物! 地图是无穷大的,因此没有撞墙这个说法。
假设蛇初始的坐标为,初始长度是1(即只占用这一个坐标)。
‘W’指令代表向上移动,坐标由(x,y)移动到(x,y+1)。
‘S’指令代表向下移动,坐标由(x,y)移动到(x,y-1)。
‘A’指令代表向左移动,坐标由(x,y)移动到(x-1,y)。
‘D’指令代表向右移动,坐标由(x,y)移动到(x+1,y)。
小红想知道,游戏结束的时候,蛇的长度是多少?的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训
从业7年-专注一级市场
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 小红正在玩贪吃蛇游戏。游戏中小红需要控制蛇向上、下、左、右走,当蛇吃到食物时,蛇的身体会变长。当蛇撞到自己的身体时,游戏结束。当指令执行完毕时,游戏也结束。
本游戏和传统贪吃蛇不同的是,初始地图上就会存在所有的食物,吃完食物后也不能增加新的食物! 地图是无穷大的,因此没有撞墙这个说法。
假设蛇初始的坐标为,初始长度是1(即只占用这一个坐标)。
‘W’指令代表向上移动,坐标由(x,y)移动到(x,y+1)。
‘S’指令代表向下移动,坐标由(x,y)移动到(x,y-1)。
‘A’指令代表向左移动,坐标由(x,y)移动到(x-1,y)。
‘D’指令代表向右移动,坐标由(x,y)移动到(x+1,y)。
小红想知道,游戏结束的时候,蛇的长度是多少?
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 小红正在玩贪吃蛇游戏。游戏中小红需要控制蛇向上、下、左、右走,当蛇吃到食物时,蛇的身体会变长。当蛇撞到自己的身体时,游戏结束。当指令执行完毕时,游戏也结束。
本游戏和传统贪吃蛇不同的是,初始地图上就会存在所有的食物,吃完食物后也不能增加新的食物! 地图是无穷大的,因此没有撞墙这个说法。
假设蛇初始的坐标为,初始长度是1(即只占用这一个坐标)。
‘W’指令代表向上移动,坐标由(x,y)移动到(x,y+1)。
‘S’指令代表向下移动,坐标由(x,y)移动到(x,y-1)。
‘A’指令代表向左移动,坐标由(x,y)移动到(x-1,y)。
‘D’指令代表向右移动,坐标由(x,y)移动到(x+1,y)。
小红想知道,游戏结束的时候,蛇的长度是多少?
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 小红正在玩贪吃蛇游戏。游戏中小红需要控制蛇向上、下、左、右走,当蛇吃到食物时,蛇的身体会变长。当蛇撞到自己的身体时,游戏结束。当指令执行完毕时,游戏也结束。
本游戏和传统贪吃蛇不同的是,初始地图上就会存在所有的食物,吃完食物后也不能增加新的食物! 地图是无穷大的,因此没有撞墙这个说法。
假设蛇初始的坐标为,初始长度是1(即只占用这一个坐标)。
‘W’指令代表向上移动,坐标由(x,y)移动到(x,y+1)。
‘S’指令代表向下移动,坐标由(x,y)移动到(x,y-1)。
‘A’指令代表向左移动,坐标由(x,y)移动到(x-1,y)。
‘D’指令代表向右移动,坐标由(x,y)移动到(x+1,y)。
小红想知道,游戏结束的时候,蛇的长度是多少?
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 小红正在玩贪吃蛇游戏。游戏中小红需要控制蛇向上、下、左、右走,当蛇吃到食物时,蛇的身体会变长。当蛇撞到自己的身体时,游戏结束。当指令执行完毕时,游戏也结束。 本游戏和传统贪吃蛇不同的是,初始地图上就会存在所有的食物,吃完食物后也不能增加新的食物! 地图是无穷大的,因此没有撞墙这个说法。 假设蛇初始的坐标为,初始长度是1(即只占用这一个坐标)。 ‘W’指令代表向上移动,坐标由(x,y)移动到(x,y+1)。 ‘S’指令代表向下移动,坐标由(x,y)移动到(x,y-1)。 ‘A’指令代表向左移动,坐标由(x,y)移动到(x-1,y)。 ‘D’指令代表向右移动,坐标由(x,y)移动到(x+1,y)。 小红想知道,游戏结束的时候,蛇的长度是多少?