上海一个保龄球馆中的一批保龄球超重,但是混入了待丢的队列中。工作人员需要蒋他们扔到队列的最末尾去,这些超重的保龄球被标记为0,其他保龄球顺延顺序不变。问:输入数据一个int数组,其中数组中的元素为0,蒋0移动到数组的末尾,其余的元素位置顺序不变化,返回一个新的数组。
时间: 2024-02-13 14:03:04 浏览: 132
好的,问题已经清晰明了,下面是代码实现:
```python
def move_zero_to_end(nums):
# 遍历数组,将非0数字依次添加到新数组中
new_nums = [num for num in nums if num != 0]
# 计算0的个数
num_zeros = len(nums) - len(new_nums)
# 将0添加到新数组末尾
new_nums += [0] * num_zeros
return new_nums
```
这个函数会接收一个整数数组 `nums`,然后将其中的0移动到数组末尾,返回一个新的整数数组。
相关问题
用Javascript写一个植物大战僵尸的保龄球馆卡
好的,以下是一个简单的植物大战僵尸保龄球馆卡的示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>植物大战僵尸保龄球馆卡</title>
<style>
canvas {
border: 1px solid #000;
}
</style>
</head>
<body>
<canvas id="myCanvas" width="800" height="600"></canvas>
<script>
// 获取画布对象
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
// 加载图片资源
const bgImg = new Image();
bgImg.src = "bg.png";
const pinImg = new Image();
pinImg.src = "pin.png";
const ballImg = new Image();
ballImg.src = "ball.png";
const plantImg = new Image();
plantImg.src = "plant.png";
const zombieImg = new Image();
zombieImg.src = "zombie.png";
// 定义变量
let ballX = 400;
let ballY = 550;
let ballSpeedX = 5;
let ballSpeedY = -5;
let plantX = 50;
let plantY = 500;
let zombieX = 700;
let zombieY = 500;
let pinX = 350;
let pinY = 350;
// 绘制场景
function draw() {
// 绘制背景
ctx.drawImage(bgImg, 0, 0, canvas.width, canvas.height);
// 绘制保龄球
ctx.drawImage(ballImg, ballX, ballY, 50, 50);
// 绘制植物
ctx.drawImage(plantImg, plantX, plantY, 100, 100);
// 绘制僵尸
ctx.drawImage(zombieImg, zombieX, zombieY, 100, 100);
// 绘制保龄球瓶
for (let i = 0; i < 10; i++) {
ctx.drawImage(pinImg, pinX + i * 60, pinY, 50, 80);
}
// 移动保龄球
ballX += ballSpeedX;
ballY += ballSpeedY;
// 碰撞检测
if (ballX + 50 > canvas.width || ballX < 0) {
ballSpeedX = -ballSpeedX;
}
if (ballY < 0) {
ballSpeedY = -ballSpeedY;
} else if (
ballY + 50 > plantY &&
ballX > plantX &&
ballX < plantX + 100
) {
ballSpeedY = -ballSpeedY;
} else if (
ballY + 50 > zombieY &&
ballX > zombieX &&
ballX < zombieX + 100
) {
ballSpeedY = -ballSpeedY;
}
// 绘制下一帧
requestAnimationFrame(draw);
}
// 启动游戏
draw();
</script>
</body>
</html>
```
需要注意的是,以上示例只是一个简单的实现,还有很多细节需要完善,比如碰撞检测、分数计算等。如果需要实现更完整的植物大战僵尸保龄球馆卡,可以参考其他相关的教程和示例。
原生js编码练习 创建一个程序,给定一条美国十瓶保龄球的有效滚动序列,生成游戏的
要实现这个程序,需要先了解什么是保龄球游戏的计分规则。
保龄球游戏的计分规则如下:
1.每局有10轮,每轮可以滚动1~2次。
2.如果第一次滚球就将全部10个瓶子击倒,这称为“补中”(strike)。这一轮将自动获得10分,并跳过下一次滚球的机会。
3.如果第一次滚球只击倒一部分瓶子,需要再滚一次。这称为“补2”(spare)。
4.如果第二次滚球也将全部10个瓶子击倒,这称为“补中”。这一轮将得到10分,并在下一次滚球前返还一次滚球的机会。
5.如果第二次滚球没能将全部10个瓶子击倒,这次滚球得分为击倒的瓶子数。
6.每轮得分为滚球得分与“额外得分(bonus)”之和。额外得分包括补中或补2后所得的分数。
7.第10轮有特殊规则,如果在第10轮中获得了补中或补2,将有额外滚球机会。
有了这些规则,就可以开始编写代码了。具体步骤如下:
1.创建一个数组,保存每轮滚球得分。
2.使用prompt()函数获取用户输入的滚球序列,将其拆分成每轮的滚球得分,保存到数组中。
3.遍历数组,对每轮得分进行计算。如果是补中或补2,需要根据规则计算额外得分。最后将每轮得分与额外得分相加,保存回数组中。
4.遍历数组,累加所有得分并输出结果。
这个程序的实现需要熟练掌握JavaScript中的数组操作、条件语句、循环语句等基本语法,同时需要对保龄球游戏的计分规则有深入的理解,才能保证程序的正确性和高效性。
阅读全文