首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为扫雷游戏创建用户界面

为扫雷游戏创建用户界面
EN

Stack Overflow用户
提问于 2018-12-24 23:38:45
回答 1查看 134关注 0票数 0

我想在python上编写扫雷程序的代码,并创建一个典型的用户界面,就像你在windows版本的游戏中看到的那样。我目前有一个可以在控制台上运行的算法,但不知道如何创建一个可以与之交互的界面。

当前状态的程序员显示了一个由9组成的矩阵,后面隐藏着另一个矩阵,其中包含炸弹(用1表示)和其他方块(用0表示)。我知道你可以在用户界面中使用matplotlib,但我不知道如何在我的代码中正确使用它,你能帮助我吗?

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mping
from os import getcwd,chdir
import random as rd 
import sys #closes the algorithm





def gridcreation(a):
    k=0 #for the ghost grid
    j=0
    z=0 #for the infinite iteration
    choix=[]
    sequence='true'
    if a=='easy':
        fangrid=np.array([[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]])
        while k<=10:
            fangrid[rd.randrange(0,9)][rd.randrange(0,9)]=1
            k=k+1
    # print(fangrid)
    playergrid=np.array(([[9,9,9,9,9,9,9,9,9],[9,9,9,9,9,9,9,9,9],[9,9,9,9,9,9,9,9,9],       [9,9,9,9,9,9,9,9,9],[9,9,9,9,9,9,9,9,9],[9,9,9,9,9,9,9,9,9],[9,9,9,9,9,9,9,9,9],[9,9,9,9,9,9,9,9,9],[9,9,9,9,9,9,9,9,9]]))
    print(playergrid)
    while sequence=='true': #allows for infinite iteration
        print ('What is the line number of the square you want to reveal ?') #to show a square
        xu=input()
        ab=int(xu)
        print('What is the column number of the square you want to reveal ?')
        yu=input()
        ord=int(yu)
        if fangrid[ab][ord]==1: #game over
            print(fangrid)
            print('BOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM, you lost, would you like to play again ?')
            rep=input()
            if rep=='no':
                sys.exit(0) #closes the progamm
                 #find a way to restart the entire game
        if fangrid[ab][ord]==0 and ab!=0 and ab!=9 and ord!=9 and ord!=0: #find a way when the square is on the edge
            j=j+fangrid[ab-1][ord-1]+fangrid[ab-1][ord]+fangrid[ab-1][ord+1]+fangrid[ab][ord+1]+fangrid[ab][ord-1]+fangrid[ab+1][ord-1]+fangrid[ab+1][ord]+fangrid[ab+1][ord+1]
        if fangrid[ab][ord]==0 and ab==0 and ord!=0 and ord!=0:
            j=j+fangrid[ab][ord+1]+fangrid[ab][ord-1]+fangrid[ab+1][ord]+fangrid[ab+1]  [ord-1]+fangrid[ab+1][ord+1]
        if fangrid[ab][ord]==0 and ab!=0 and ord!=9 and ab==9 and ord!=0:
            j=j+fangrid[ab-1][ord-1]+fangrid[ab-1][ord]+fangrid[ab-1][ord+1]+fangrid[ab][ord+1]+fangrid[ab][ord-1]
        if fangrid[ab][ord]==0 and ab!=0 and ord==0 and ab!=9 and ord!=9:
            j=j+fangrid[ab-1][ord]+fangrid[ab-1][ord+1]+fangrid[ab][ord+1]+fangrid[ab+1][ord]+fangrid[ab+1][ord+1]
        if fangrid[ab][ord]==0 and ab!=0 and ord!=0 and ab!=9 and ord==9:
            j=j+fangrid[ab-1][ord-1]+fangrid[ab-1][ord]+fangrid[ab][ord-1]+fangrid[ab+1][ord-1]+fangrid[ab+1][ord]
        if fangrid[ab][ord]==0 and ab==0 and ab!=9 and ord!=9 and ord==0:
            j=j+fangrid[ab][ord+1]+fangrid[ab+1][ord]+fangrid[ab+1][ord+1]
        if fangrid[ab][ord]==0 and ab==9 and ab!=0 and ord!=0 and ord==9:
            j=j+fangrid[ab-1][ord-1]+fangrid[ab-1][ord]+fangrid[ab][ord-1]
        if fangrid[ab][ord]==0 and ab==0 and ab!=9 and ord!=0 and ord==9:
            j=j+fangrid[ab][ord-1]+fangrid[ab+1][ord-1]+fangrid[ab+1][ord]
        if fangrid[ab][ord]==0 and ab!=0 and ab==9 and ord==0 and ord!=9:
            j=j+fangrid[ab-1][ord]+fangrid[ab-1][ord+1]+fangrid[ab][ord+1]
        if 9 not in playergrid: #to end the game if victory
            print("GG wp, would you like to play again ?")
            choix=input()
        if choix=='yes':
                sys.exit(0)

    #so that the player can see the result
        playergrid[ab][ord]=j
        j=j-playergrid[ab][ord]
        if 9 in playergrid:
            sequence=sequence
        if 9 not in playergrid:
            sequence=sequence+'False'
        print(playergrid)
EN

回答 1

Stack Overflow用户

发布于 2018-12-24 23:45:04

您可以使用tkinter创建类似的界面。

https://www.tutorialspoint.com/python/python_gui_programming.htm

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53915314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档