写一个打地鼠游戏示例代码
时间: 2023-04-11 11:00:39 浏览: 211
以下是一个简单的打地鼠游戏示例代码:
```python
import random
# 地鼠的位置
mole_position = random.randint(1, 10)
# 游戏循环
while True:
# 玩家输入猜测的位置
guess = input("请输入你猜测的位置(1-10):")
guess = int(guess)
# 判断猜测是否正确
if guess == mole_position:
print("恭喜你,你打中了地鼠!")
break
else:
print("很遗憾,你没有打中地鼠。")
print("游戏结束。")
```
在这个示例代码中,程序会随机生成一个地鼠的位置,然后玩家需要输入猜测的位置。如果猜测的位置与地鼠的位置相同,那么玩家就打中了地鼠,游戏结束。如果猜测的位置与地鼠的位置不同,那么程序会提示玩家没有打中地鼠,然后继续等待玩家输入猜测的位置,直到玩家打中地鼠为止。
相关问题
用html写一个打地鼠游戏示例代码
我可以回答这个问题。以下是一个简单的打地鼠游戏的 HTML 示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>打地鼠游戏</title>
<style>
#game-board {
display: flex;
flex-wrap: wrap;
width: 400px;
height: 400px;
background-color: #eee;
padding: 10px;
}
.hole {
width: 100px;
height: 100px;
background-color: #fff;
border: 1px solid #ccc;
margin: 5px;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
cursor: pointer;
}
.hole.active {
background-color: #f00;
color: #fff;
}
</style>
</head>
<body>
<h1>打地鼠游戏</h1>
<div id="game-board">
<div class="hole"></div>
<div class="hole"></div>
<div class="hole"></div>
<div class="hole"></div>
<div class="hole"></div>
<div class="hole"></div>
<div class="hole"></div>
<div class="hole"></div>
<div class="hole"></div>
</div>
<script>
const holes = document.querySelectorAll('.hole');
let score = 0;
let lastHole;
function randomTime(min, max) {
return Math.round(Math.random() * (max - min) + min);
}
function randomHole(holes) {
const idx = Math.floor(Math.random() * holes.length);
const hole = holes[idx];
if (hole === lastHole) {
return randomHole(holes);
}
lastHole = hole;
return hole;
}
function peep() {
const time = randomTime(200, 1000);
const hole = randomHole(holes);
hole.classList.add('active');
setTimeout(() => {
hole.classList.remove('active');
if (!timeUp) peep();
}, time);
}
function startGame() {
score = 0;
timeUp = false;
scoreBoard.textContent = 0;
peep();
setTimeout(() => timeUp = true, 10000);
}
function bonk(e) {
if (!e.isTrusted) return; // cheater!
score++;
this.classList.remove('active');
scoreBoard.textContent = score;
}
holes.forEach(hole => hole.addEventListener('click', bonk));
const scoreBoard = document.createElement('div');
scoreBoard.textContent = 0;
document.body.appendChild(scoreBoard);
let timeUp = false;
startButton.addEventListener('click', startGame);
</script>
</body>
</html>
```
这个示例代码使用 HTML、CSS 和 JavaScript 实现了一个简单的打地鼠游戏。游戏板块使用了 flex 布局,每个洞口使用了一个 div 元素表示。在 JavaScript 中,使用了一些函数来随机生成地鼠出现的时间和位置,以及计分和游戏结束的逻辑。
用java写一个打地鼠游戏
好的,以下是用 Java 写一个打地鼠游戏的基本思路:
1. 创建一个窗口并设置基本属性,如大小、标题等。
2. 在窗口上绘制一个草坪的背景。
3. 创建一个地鼠的类,包括地鼠的图片、位置、状态等属性和方法。
4. 在窗口上随机生成地鼠,并将其添加到一个地鼠集合中。
5. 捕捉鼠标点击事件,判断点击的位置是否与地鼠重叠,如果重叠,则将地鼠状态设置为被击中。
6. 使用定时器(timer)定时更新地鼠的状态和位置,并重新绘制地鼠。
7. 在窗口上显示得分。
下面是一个简单的打地鼠游戏的示例代码:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class WhackAMole extends JFrame implements ActionListener {
private JLabel scoreLabel;
private int score;
private Mole[] moles;
public WhackAMole() {
super("Whack-A-Mole");
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
scoreLabel = new JLabel("Score: 0");
add(scoreLabel, BorderLayout.NORTH);
JPanel fieldPanel = new JPanel(new GridLayout(3, 3));
moles = new Mole[9];
for (int i = 0; i < 9; i++) {
moles[i] = new Mole();
fieldPanel.add(moles[i]);
moles[i].addActionListener(this);
}
add(fieldPanel, BorderLayout.CENTER);
Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
for (Mole mole : moles) {
mole.update();
}
}
});
timer.start();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
Mole mole = (Mole) e.getSource();
if (mole.getState() == MoleState.UP) {
mole.hit();
score += 10;
scoreLabel.setText("Score: " + score);
}
}
public static void main(String[] args) {
new WhackAMole();
}
}
class Mole extends JButton {
private MoleState state;
public Mole() {
state = MoleState.DOWN;
setPreferredSize(new Dimension(100, 100));
setContentAreaFilled(false);
setBorderPainted(false);
setOpaque(false);
}
public MoleState getState() {
return state;
}
public void hit() {
state = MoleState.HIT;
}
public void update() {
if (state == MoleState.HIT) {
state = MoleState.DOWN;
} else if (state == MoleState.DOWN && Math.random() < 0.1) {
state = MoleState.UP;
} else if (state == MoleState.UP && Math.random() < 0.1) {
state = MoleState.DOWN;
}
repaint();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (state == MoleState.UP) {
g.setColor(Color.RED);
g.fillOval(10, 10, 80, 80);
} else if (state == MoleState.HIT) {
g.setColor(Color.GREEN);
g.fillOval(10, 10, 80, 80);
}
}
}
enum MoleState {
UP, DOWN, HIT
}
```
在这个示例代码中,我们创建了一个 WhackAMole 类,继承自 JFrame,作为游戏窗口。在窗口上我们添加了一个得分标签和一个草坪背景的面板,面板中有九个地鼠按钮,每个按钮对应一个 Mole 对象。Mole 类继承自 JButton,用来表示地鼠,并实现了地鼠的状态和更新方法。在 WhackAMole 类中,我们使用一个 Timer 来定时更新地鼠的状态和位置,并添加了一个 ActionListener,用来捕捉地鼠按钮的点击事件,并更新得分。最后调用 main() 方法启动游戏。
阅读全文