广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python 写的扫雷游戏
  • 518
分享到

python 写的扫雷游戏

游戏python 2023-01-31 06:01:38 518人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

#!/usr/bin/python #coding:utf-8 #Python 写的扫雷游戏 import sys import random class MineSweeping(): #扫雷主程序 def __

#!/usr/bin/python
#coding:utf-8

#Python 写的扫雷游戏


import sys
import random

class MineSweeping():
    #扫雷主程序
    def __init__(self,row = 8 ,line= 8,mineNum = 15):
        self.row = row
        self.line = line
        self.score = 0 #分数
        self.mineNum = mineNum
        self.xy_list = [[0 for i in range(self.line)] for i in range(self.row)]

    def initData(self):
        # 初始化状态值
        # 游戏开始的时候状态值为清零(再重新设置状态值)
        self.xy_list = [[0 for i in range(self.line)] for i in range(self.row)]
        # 设置雷的数量
        maxMine = self.mineNum
        while maxMine > 0 :
            num_x = random.randint(0,self.row-1)
            num_y = random.randint(0,self.line-1)
            if self.xy_list[num_x][num_y] == 0:
                self.xy_list[num_x][num_y] = 1
                maxMine -= 1

    #获取x坐标
    def get_pos(self,str_pos):
        #获取x坐标
        while 1:
            try:
                num_x = raw_input(str_pos)
                if int(num_x) in range(self.line) and num_x :
                    break
                else:
                    print u'输入无效值'
            except:
                pass
        return int(num_x)

    #进行扫雷
    def  mine_clear(self,x,y):
        # 设置显示进行扫过的数目
        # 设置数字
        # 0 表示扫过的雷
        # 1 表示类
        # 2 表示扫过的类

        #获取坐标的数字
        pos = self.xy_list[x][y]
        if pos == 0 :
            self.xy_list[x][y] = 2
            return 0
        elif pos == 2 :
            return 2
        else:
            return 1

    #界面的显示
    def mineFace(self,state):
        #显示界面的内容
        #设置游戏的状态
        #1 表示运行的状态
        #2 表示输出的状态
        #3 表示游戏结束的状态
        #4 表示游戏获得了完胜
        if state == 1:
            print '+=================+'
            print '     Game start    '
            print '+=================+'
            tt = ' #'
            print '**************************'
            for i in range(self.line):
                str_t = ''
                for t in xrange(self.row):
                    str_t += tt
                print "|%s|"%(str_t,)
            print '**************************'
            print 'Please input values of x,y(0-7):'
        #刷新用户界面
        if state == 2:
            tt = ' #'
            print '**************************'
            for i in range(self.line):
                str_t = ''
                for t in xrange(self.row):
                    if self.xy_list[i][t] == 2:
                        str_t += str(self.xy_list[i][t]).rjust(2)
                    else:
                        str_t += tt
                print "|%s|"%(str_t,)
            print '**************************'
        if state == 3:
            print '**************************'
            for i in range(self.line):
                str_t = ''
                for t in xrange(self.row):
                    if int(self.xy_list[i][t]) != 1:
                        str_t += ' 2'
                    else:
                        str_t += ' *'
                print "|%s|"%(str_t,)
            print '**************************'

        if  state == 4:
            tt = ' #'
            print '**************************'
            for i in range(self.line):
                str_t = ''
                for t in xrange(self.row):
                    if self.xy_list[i][t] == 2:
                        str_t += str(self.xy_list[i][t]).rjust(2)
                    else:
                        str_t += ' @'
                print "|%s|"%(str_t,)
            print '**************************'


    def MainLoop(self):
        #创建游戏主循环

        #创建界面的运行
        self.mineFace(1)
        self.score = 0
        self.initData()
        #print self.xy_list


        # 进入主循环
        while 1:
            #获取坐标的位置
            x = self.get_pos(' X = ')
            y = self.get_pos(' Y = ')
            num = self.mine_clear(x,y)
            #判断是不过的了完胜
            win = True
            for i in self.xy_list:
                if 0 in i:
                    win = False
                    break
            if win:
                num = 4

            #执行刷新界面的函数
            if num == 0:
                self.mineFace(2)
                self.score += 10
            elif num == 2:
                print u'这个位置已经被排过了,证实没有雷'
            elif num == 1:
                print '+=================+'
                print '     Game over    '
                print '+=================+'
                print u'分数 : ', self.score
                self.mineFace(3)
                # 是不是进行下一句
                next = raw_input(u'是够进行下一局:Y or N ')
                if next.upper().startswith('Y'):
                    print u'下一局开始'
                    self.nextGame()
                else:
                    print '>>> Game exit'
                    break
            else:
                self.score += 10
                print u'恭喜您获得的完全的胜利'
                print u'分数 : ', self.score
                self.mineFace(4)
                next = raw_input(u'是够进行下一局:Y or N ')
                if next.upper().startswith('Y'):
                    print u'下一局开始'
                    self.nextGame()
                else:
                    print '>>> Game exit'
                    break

    # 下一局初始化信息
    def nextGame(self):
        self.mineFace(1)
        self.score = 0
        self.initData()


if __name__ == '__main__':
    mi = MineSweeping(10,10,20)
    mi.MainLoop()
    sys.exit()















--结束END--

本文标题: python 写的扫雷游戏

本文链接: https://www.lsjlt.com/news/189568.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python 写的扫雷游戏
    #!/usr/bin/python #coding:utf-8 #python 写的扫雷游戏 import sys import random class MineSweeping(): #扫雷主程序 def __...
    99+
    2023-01-31
    游戏 python
  • Python:游戏:扫雷(附源码)
    这次我们基于 pygame 来做一个扫雷,上次有园友问我代码的 python 版本,我说明一下,我所有的代码都是基于 python 3.6 的。 先看截图,仿照 XP 上的扫雷做的,感觉 XP 上的样式比 win7 上的好看多了。 原谅...
    99+
    2023-01-30
    源码 游戏 Python
  • js版扫雷游戏
    本文实例为大家分享了js版扫雷游戏的具体代码,供大家参考,具体内容如下 界面 考虑到简单,一般,困难三个扫雷区域的格子数都不同,所以界面上的扫雷区域是用js动态生成。先搭好整体htm...
    99+
    2022-11-13
  • Python实现简单扫雷游戏
    本文实例为大家分享了Python实现简单扫雷游戏的具体代码,供大家参考,具体内容如下 #coding: utf-8 __note__ = """ * 扫雷小游戏 * 需要pytho...
    99+
    2022-11-11
  • python用tkinter开发的扫雷游戏
    目录2.实现代码3.另一种精致一点的实现1.实现效果 2.实现代码 # 导入所需库 from tkinter import * import random class main: # 定义一个类,继...
    99+
    2022-06-02
    python tkinter python 扫雷
  • C#实现扫雷游戏
    目录一、实验目的:二、实验要求:三、实验内容:四、实验源代码:五、实验结果:六、总结本文实例为大家分享了C#实现扫雷游戏的具体代码,供大家参考,具体内容如下 一、实验目的: 1、掌握...
    99+
    2022-11-13
  • Easyx实现扫雷游戏
    本文实例为大家分享了Easyx实现扫雷游戏的具体代码,供大家参考,具体内容如下 代码: #include<stdio.h> #include<stdlib.h&g...
    99+
    2022-11-12
  • python GUI编程实现扫雷游戏
    目录前言一、基本思路二、源代码1.运行效果2.上源码总结前言 1992年扫雷被加入到windows3.1,成为早期windows的经典游戏。近来接触python的GUI(图形化)编程...
    99+
    2022-11-11
  • windows10扫雷游戏在哪儿windows10扫雷游戏部位详细介绍
    windows10扫雷游戏在哪呢,扫雷游戏是很多用户从小玩到大的手机游戏,这个游戏最开始在xp系统就拥有,用户们能够在这儿玩上十分有意思的扫雷游戏玩法,可是许多用户不清楚win10的扫雷游戏在哪儿因而想知道扫雷在哪里呢,接下来就告诉大家关于...
    99+
    2023-07-10
  • Python如何实现简单扫雷游戏
    本篇内容介绍了“Python如何实现简单扫雷游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!具体代码如下#coding: utf...
    99+
    2023-07-02
  • JavaScript实现扫雷小游戏
    本文实例为大家分享了JavaScript实现扫雷小游戏的具体代码,供大家参考,具体内容如下 先说大体思路,下面放代码 思路: 1产生指定数量的地雷2计算方块周围的地雷3点击地雷结束4...
    99+
    2022-11-13
  • C语言版扫雷游戏
    本文实例为大家分享了C语言版扫雷游戏的具体代码,供大家参考,具体内容如下 1、思路 一、创建二维数组,来表示地图 每一个格子要表示的信息: 1、未翻开状态(草地)和已翻开状态(...
    99+
    2022-11-12
  • jQuery实现扫雷小游戏
    本文实例为大家分享了jQuery实现扫雷小游戏的具体代码,供大家参考,具体内容如下 扫雷小游戏实现思路: 设计为9*9简单面板,每次随机生成10颗雷,然后计算每颗雷周围八个位置上每个...
    99+
    2022-11-13
  • 用java实现扫雷游戏
    用java做出简单一个扫雷游戏,供大家参考,具体内容如下 1.创造窗口 //创建扫雷窗口界面       public Saolei() {                     ...
    99+
    2022-11-13
  • JavaScript实现扫雷小游戏的代码怎么写
    这篇文章主要介绍“JavaScript实现扫雷小游戏的代码怎么写”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript实现扫雷小游戏的代码怎么写”文章能帮助大家解决问题。思路:1产生指定...
    99+
    2023-07-02
  • 利用C语言编写一个扫雷游戏
    本篇文章为大家展示了利用C语言编写一个扫雷游戏,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方...
    99+
    2023-06-06
  • 使用 python 实现单人AI 扫雷游戏
    AI玩扫雷 很高兴又见面了!😊 扫雷是一款单人益智游戏,相信大部分人都在以前上微机课的时候玩过。游戏的目标是借助每个区域中相邻地雷数量的线索,清除包含隐藏的“地雷”或炸弹的单元格,但不引爆其中任何一...
    99+
    2022-06-02
    python扫雷游戏 python AI 扫雷游戏
  • J2ME怎么实现扫雷游戏
    这篇文章主要介绍“J2ME怎么实现扫雷游戏”,在日常操作中,相信很多人在J2ME怎么实现扫雷游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”J2ME怎么实现扫雷游戏”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-03
  • winXP扫雷游戏怎么作弊?
    有时候家里上不了网,只能玩一玩Windows自带的游戏了,我平常喜欢玩扫雷游戏,但有时候快扫完的时候,突然出现了判断失误导致全盘皆输。我上网查了下,发现XP扫雷作弊方法不是很详细,这里结合自己的经验给大家讲解一 1、首先...
    99+
    2023-06-14
    winXP 扫雷 作弊 游戏
  • C#如何实现扫雷游戏
    今天小编给大家分享一下C#如何实现扫雷游戏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、实验目的:掌握c#窗体和控件的常...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作