用Python编写的几个简单游戏

本文将介绍几个使用Python编写的简单游戏,包括猜数字游戏、猜单词游戏和扫雷游戏。这些游戏简单有趣,适合初学者练习编程。

一、猜数字游戏

1、游戏规则:计算机随机生成一个1到100之间的数字,玩家需要猜出这个数字是多少。计算机会根据玩家的猜测给出提示,直到玩家猜对为止。

2、代码示例:

import random

def guess_number():
    target = random.randint(1, 100)
    guess = 0
    attempts = 0

    while guess != target:
        guess = int(input("请输入一个1到100之间的整数: "))
        attempts += 1

        if guess < target:
            print("猜小了!")
        elif guess > target:
            print("猜大了!")

    print("恭喜你猜对了!你一共猜了{}次。".format(attempts))

guess_number()

二、猜单词游戏

1、游戏规则:计算机随机选择一个单词,玩家需要根据计算机给出的提示猜出这个单词是什么。

2、代码示例:

import random

def guess_word():
    words = ["apple", "banana", "orange", "grape", "watermelon"]
    target = random.choice(words)
    correct_word = list(target)
    random.shuffle(correct_word)

    print("猜猜这个单词是什么:", end="")
    for letter in correct_word:
        print(letter, end="")
        
    guess = input("\n请输入你的猜测:")

    if guess == target:
        print("恭喜你猜对了!")
    else:
        print("很遗憾,你猜错了。正确答案是:", target)

guess_word()

三、扫雷游戏

1、游戏规则:玩家需要在一个雷区中找出所有的地雷,避免触雷。玩家可以点击一个方块来揭开,如果揭开的方块有地雷则游戏结束,否则会显示该方块周围的地雷数量。

2、代码示例:

import random

def generate_minefield(size, num_mines):
    minefield = [[0 for _ in range(size)] for _ in range(size)]
    positions = random.sample(range(size*size), num_mines)

    for pos in positions:
        row = pos // size
        col = pos % size
        minefield[row][col] = "X"

    for row in range(size):
        for col in range(size):
            if minefield[row][col] == "X":
                continue

            count = 0
            for r in range(max(row - 1, 0), min(row + 2, size)):
                for c in range(max(col - 1, 0), min(col + 2, size)):
                    if minefield[r][c] == "X":
                        count += 1
            minefield[row][col] = str(count)

    return minefield

def reveal(minefield, revealed, row, col):
    if revealed[row][col]:
        return

    revealed[row][col] = True

    if minefield[row][col] != "0":
        return

    size = len(minefield)
    for r in range(max(row - 1, 0), min(row + 2, size)):
        for c in range(max(col - 1, 0), min(col + 2, size)):
            reveal(minefield, revealed, r, c)

def print_minefield(minefield, revealed):
    size = len(minefield)
    for row in range(size):
        for col in range(size):
            if revealed[row][col]:
                print(minefield[row][col], end=" ")
            else:
                print(".", end=" ")
        print()

def play_minesweeper():
    size = 5
    num_mines = 5
    minefield = generate_minefield(size, num_mines)
    revealed = [[False for _ in range(size)] for _ in range(size)]
    game_over = False

    while not game_over:
        print_minefield(minefield, revealed)
        row = int(input("请输入要揭开的行号(1-{}):".format(size))) - 1
        col = int(input("请输入要揭开的列号(1-{}):".format(size))) - 1

        if minefield[row][col] == "X":
            game_over = True
            print("很遗憾,你触雷了!游戏结束。")
        else:
            reveal(minefield, revealed, row, col)

        if all(all(revealed[row][col] or minefield[row][col] == "X" for col in range(size)) for row in range(size)):
            game_over = True
            print("恭喜你,揭开了所有的方块!游戏胜利!")

play_minesweeper()

原创文章,作者:QURY,如若转载,请注明出处:https://www.beidandianzhu.com/g/1859.html

(0)
QURY的头像QURY
上一篇 2024-12-17
下一篇 2024-12-17

相关推荐

  • Java读文件的多种方法解析

    在Java中,我们可以使用多种方法来读取文件。主要包括使用FileInputStream,BufferedReader和Scanner类。下面详细介绍这几种方法的操作步骤和代码示例…

  • Python短网址转换

    本文将介绍如何使用Python编程语言实现短网址转换功能。首先,我们来解答标题的问题。 短网址转换是指将长网址转换为短网址的过程。短网址通常由几个字符组成,相比原始的长网址,更容易…

    程序猿 2024-12-20
  • Python希腊

    Python希腊是一个以希腊为中心的Python项目,旨在探索与希腊相关的主题和功能。本文将从多个方面详细阐述Python希腊的特点和用途。 一、历史与文化 Python希腊项目与…

    程序猿 2024-12-20
  • Python程序执行的原理

    Python是一种高级编程语言,具有简洁的语法和强大的功能,得到了广泛的应用。Python程序的执行过程可以分为词法分析、语法分析、编译和运行四个阶段。 一、词法分析 在Pytho…

  • 用Python实现优先队列

    优先队列是一种特殊的队列数据结构,其中每个元素都有一个优先级。优先级较高的元素在队列中排在前面,优先级较低的元素在队列中排在后面。在本篇文章中,我们将详细阐述如何使用Python来…

    程序猿 2024-12-17
  • Python中add和append的区别

    在Python编程语言中,add和append是两个常用的操作方法。尽管它们在某种程度上具有相似的功能,但它们在使用方法和适用场景上存在一些区别。本文将从多个方面详细阐述Pytho…

    程序猿 2024-12-17
  • 用Python写个小游戏难吗?

    对于编程开发工程师来说,用Python编写一个小游戏并不难,因为Python有很多游戏开发库和框架可以使用。在本文中,我将从几个方面详细阐述用Python写小游戏的难度,希望对你有…

    程序猿 2024-12-17
  • Linux下Python使用

    Python是一种高级编程语言,可以在Linux操作系统上进行使用。本文将从多个方面对Linux下Python的使用进行详细阐述。 一、安装Python 1、首先需要在Linux系…

    程序猿 2024-12-27
  • Python常用的魔法方法

    魔法方法是Python中特殊的方法,用于实现类的特殊行为和操作。通过魔法方法,可以让Python对象表现得像是内置对象一样,同时也可以自定义对象的行为。本文将从多个方面对Pytho…

    程序猿 2024-12-27
  • Python语言程序设计二级难度

    Python语言程序设计二级难度是指在编程开发中使用Python语言进行程序设计所遇到的中等难度。本文将从多个方面对Python语言程序设计二级难度进行详细的阐述。 一、基础知识的…

    程序猿 2024-12-22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

分享本页
返回顶部