• homework-04


    这次作业比较变态。特别是矩阵的生成,所以我去网上找了个python的开源实现

    由于是软件工程课,实现目的才是第一位的。毕竟这种代码一般很难搞出最优解,搞出来也不是本门课的目标了。

    希望主角海涵,给个好点的分数,毕竟这次作业的目的我达到了。

    我所做的就是用已有的生成代码,生成一个尽可能紧凑的矩阵,然后我暂时没想到有什么好的办法,就果断从5到30(最大值),暴力枚举了

    计算主要是交给shell程序做的。我使用了临时文件来分析结果,用了管道来输出结果:

    # -*- coding: utf-8 -*-
    
    #由于这是一门关于软件工程的课,所以我使用了别人的算法,但是也可以做到较好的完成目标
    import os, sys
    
    def go():
        if len(sys.argv) < 2:
            print 'need a parameter'
            return
        path = sys.argv[1]
        if not os.path.isfile(path):
            print 'need a file'
            return
        path = os.path.abspath(path)
        f = open(path)
        words = 0
        for i in range(5,31):
            cmd = 'python assist/wordsearch.py '+path+' --grid '+str(i)+' '+str(i)+' >t123.txt'
            os.system(cmd)
            f = open('t123.txt')
            buf = f.read()
            f.close()
            os.remove('t123.txt')
            lines = [t for t in buf.split('
    ') if t.strip()!='']
    
            twords = int(lines[-1].split()[0])
            if twords > words:
                words = twords
                l = i;
        cmd = 'python assist/wordsearch.py '+path+' --grid '+str(l)+' '+str(l)+' >t123.txt'
        os.system(cmd)
        f = open('t123.txt')
        buf = f.read()
        f.close()
        os.remove('t123.txt')
        buf = buf.split('
    ')[1:1+l]
        print '
    '.join(buf)
    if __name__ == '__main__':
        go()
  • 相关阅读:
    IDEA控制台输出中文乱码问题
    JAVA web 框架集合
    去掉VSS控制
    .Net Core .Net Core V1.0 创建MVC项目
    .Net Core .Net Core的学习
    WebService 天气预报webservice接口
    SMS106 短信验证码接口测试
    Regex 常用的正则表达式
    Jquery Plugins Jquery Validate
    MVC 路由调试工具-RouteDebugger
  • 原文地址:https://www.cnblogs.com/yzong/p/3391614.html
Copyright © 2020-2023  润新知