2301_76164074 2023-01-12 15:42 采纳率: 100%
浏览 40
已结题

想问问Python怎么做这种题呀,一点思路都没有

由键盘输入 n 代表 n * n 的棋盘,然后再由键盘输入 m 代表雷的个数,接下来的 m 行,每行两个参数,并且用空格分隔开,代表雷的位置。
对于每个不是雷的方块,对其赋值为周围3*3范围内的雷数目,对于雷单位,其值赋值为9,输出最终转化
的矩阵。
对于上述得到的扫雷棋盘,实现以下操作,用随机数模块生成 t 个随机点数( xy )0< x <= n ,0< y <= n ),对于这些点数带入扫雷棋盘中进行计算,判断是否踩雷,如果踩到雷,输出 error 并且输出踩到雷时的步数以及位置,如
果没有,输出success

  • 写回答

3条回答 默认 最新

  • cjh4312 2023-01-13 12:59
    关注
    
    #随机生产num步不同位置
    def make_list(num,l):
        i=0
        while i!=num:
            random.seed()
            x=random.randint(0,n-1)
            y=random.randint(0,n-1)
            flag=True
            for j in l:
                if j==[x,y]:
                    flag=False
                    break
            if flag:
                i+=1
                l.append([x,y])
                
    print('请输入正方形棋盘大小:')
    n=int(input())
    print('雷的个数:')
    m=int(input())
    #初始化棋盘
    dd= [[1]*n for _ in range(n)]
    #手动输入雷的位置
    # print('输入雷的位置:')
    # for i in range(m):
    #     l=input().split(' ')
    #     dd[int(l[0])][int(l[1])]=9
    
    #随机产生m个雷的位置
    l=[]
    make_list(m, l)
    for i in l:
        dd[i[0]][i[1]]=9
    #统计不是雷的位置的数值
    for i in range(n):
        for j in range(n):
            count=0
            if dd[i][j]==9:
                continue
            for k in range(i-1,i+2):
                if k<0 or k>n-1:
                    continue
                for s in range(j-1,j+2):
                    if s<0 or s>n-1:
                        continue
                    if dd[k][s]==9:
                        count+=1
            dd[i][j]=count  
    print(np.array(dd))
    #产生随机走棋的步骤,最多n*n-m步,每步不能相同
    t=n*n-m
    foot=[]
    make_list(t, foot)
    print(foot)
    #按照步骤下棋
    for i in range(len(foot)):
        flag=True
        if dd[foot[i][0]][foot[i][1]]==9:
            print('error',f"{i+1}步",f"位置{[foot[i][0],foot[i][1]]}")
            flag=False
            break
    if flag: 
        print('success')
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月21日
  • 已采纳回答 1月13日
  • 创建了问题 1月12日

悬赏问题

  • ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
  • ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)
  • ¥15 yolov9的训练时间
  • ¥15 二叉树遍历没有报错但无法正常运行
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错
  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动