精华内容
下载资源
问答
  • python大作业.doc
    千次阅读
    2020-12-17 21:09:24

    python大作业

    大作业

    本次大作业将完成一个称为“战舰”的小游戏。这次作业将综合应用本学期学过的所有知识,。如果你采用合理设计的数据结构,并遵循良好的开发步骤,完成这个程序并不困难。但需要注意的是,由于程序包含多个部分内容,建议你合理地划分开发阶段,每完成一个阶段就进行测试。不要试图全部完成再进行调试,那将事倍功半。

    下图是这个游戏的运行界面。

    作业要求

    在这个游戏中,游戏者将与计算机进行对抗。计算机将在一个二维的表栏中布置一些战船。表栏中的每个方格称为一个单元(cell)。每艘战舰根据自身长度占据横向或者纵向的一些单元。游戏者通过在cell上点击鼠标(表示向该位置发送一发导弹)来猜测这些战舰都布置在什么位置。如果游戏者点击中了某艘战舰占据的一个cell,则程序显示击中战舰,并在cell中标出,否则标识没有击中。如果某艘战舰占据的所有cell都被击中,则标识该战舰被击沉。为了使得程序更有趣,游戏者的导弹数目是有限的。游戏的胜负规则是:游戏者击中所有战舰获胜,若用完所有导弹后还没有击中所有战舰则计算机获胜。为了增加游戏的难度,每次游戏战船的种类和数目都是不定的,程序将用不同颜色表示不同类型的战舰,并且每次游戏者发射导弹后都将显示出相应的提示和统计信息,你可以运行作业材料中的battleship.exe程序进行试玩,获得游戏运行更多的细节,这些功能必须都在作业中完成。

    作业说明和提示:

    1 战舰的产生

    战舰的种类和颜色。类型有五种{ROWBOAT, SUBMARINE, SPEEDBOAT, BATTLESHIP, LONGBOAT}; 每种类型战舰的长度为:ROWBOAT最短为1个cell,然后依次递增一个cell,最长为LONGBOAT为5个cell。战舰的颜色也有五种,定义为{Cyan, Red, Blue, Green, Magenta}。需要注意的是,战舰的类型和颜色没有对应关系,每次游戏计算机要为每种类型的战舰选择一种颜色。每次游戏战舰的类型是随机选择的,最少(MIN_SHIPCLASS)为2。每次游戏的战舰数目也是随机的,最大(MAX_SHIPS)为8,最小(MIN_SHIPS)为2,计算机要为每艘战舰选择一个战舰类型。

    2 数据结构的设计

    在游戏中你需要保存很多信息,如战舰类型的信息,每艘战舰的信息,每个cell的信息等等。你不仅需要设计不同的结构能够保存这些信息,而且这些结构需要方便你进行查找和检索,比如你可能需要从一个cell查找一艘船,或者从一艘船查找其所属类型的信息。所以在各个数据结构的设计当中可能需要考虑有少量的重叠项(冗余)。一些可能的方法包括:在战舰信息的存储结构中设计保存其位置的起始cell信息,便于判断和标识该战舰是否被击沉等

    3 战舰的部署

    当战舰的产生结束后就需要对其进行部署。每艘战舰或者横放,或者竖放,但是不能重叠,也不能超出边界。有很多方法可以放置战舰,这里我们给出一个简单有效的“暴力”试验算法,描述如下:

    Before you begin, every cell on board must be initialized to NULL to indicate that location is empty and available

    For each ship to place

    Loop while not found a good location for this ship

    Select random direction (either horizontal or vertical)

    Select random start row between 0 and upper bound

    (bound is NUM_ROWS-1 if horiz, NUM_ROWS-ShipLength if vert)

    Select random start column between 0 and upper bound

    (bound is NUM_COLS-1 if vert, NUM_COLS-ShipLength if horiz)

    If all cells from start to end are empty (i.e. NULL)

    found good location! assign ship, update board & ship data

    该算法虽然不是最优的,但是对于解决本问题是快速有效的。

    4 开发调试技巧

    采用增量开发的方式来完成复杂程序的功能是一种最有效的方法。建议你分不同阶段来逐步完成该程序,每个部分完成后可以编写一些测试代码来进行验证,例如一些可能的阶段有:

    a 设计数据结构,完成各项信息的表示;

    b 产生战舰信息,存放到数据结构中;

    c 部署战舰

    d 处理游戏者的一次攻击

    更多相关内容
  • Python大作业.zip

    2021-07-16 23:58:36
    python大作业 一、Turtle创意PK 自拟题目,完成一个利用Python程序的创意绘图,采用turtle库绘图为主,不少于50行代码,可选采用其他库。 (滑稽绘制) 二、程序练习 2.1 问题描述(10分) 人们常常提到"一万...
  • python大作业实验报告+源代码--爬虫【完美搞定大作业python大作业分享--30多个项目任你选(由于上传大小限制分多个文件上传。爬虫https://download.csdn.net/download/dhyuan_88/19651195小游戏:...
  • python大作业编程源代码+实验报告--爬虫【完美搞定大作业python大作业--爬虫(完美应付大作业python大作业分享--30多个项目任你选(由于上传大小限制分多个文件上传。爬虫...
  • python大作业项目.zip

    2021-11-26 19:32:26
    python大作业源码5例,包含抖音可视化,成绩管理系统,5G爬虫及可视化,天气爬虫及可视化以及动态条形图
  • Python大作业实验报告+编程源代码--爬虫【轻松搞定大作业python大作业分享--30多个项目任你选(由于上传大小限制分多个文件上传。爬虫https://download.csdn.net/download/dhy1688/19880359小游戏...
  • python大作业.zip

    2021-01-03 15:43:00
    python大作业
  • python大作业分享--30多个项目任你选(由于上传大小限制分多个文件上传。爬虫:https://download.csdn.net/download/weixin_43960044/12533382小游戏:https://download.csdn.net/download/weixin_43960044/12533379...
  • Python大作业 / 爬虫+可视化(day1) 开始搞python大作业了,纯手敲,可参考,不可直接copy 思路:对全国各省的地区生产总值进行爬取,并可视化展示 爬取网站: http://data.stats.gov.cn/ 所用库:time,re,selenium...
  • Python期末作业
  • python大作业五子棋.zip

    2020-06-18 19:08:39
    python大作业分享,网上找的资源,大家可以参考一下,更多python大作业资源下载联系我
  • python大作业大全游戏(五子棋、贪吃蛇、拼图、坦克大战)
  • 一下学期小组完成的大作业,仅供参考
  • 这是一个使用爬虫实现的音乐播放软件,使用数据库实现登陆注册功能,并对爬取数据实现可视化分析
  • 机器学习与python大作业-垃圾分类识别(学生版).ipynb
  • 实用文档 大学计算机基础理工大作业 暨南大学南校区生活指南系统 G108 甘颖欣 熊梦娜 翁婉晖 梁绮婷 李嘉顺 2015-1-3 文案大全 实用文档 目录 目录 2 暨南大学南校区生活指南系统 选题说明书 . 3 1.成员分组和任务...
  • (含源码及报告)本程序分析了自2014年到2020年每年我国原油加工的产量,并且分析了2019年全国各地区原油加工量,含饼状图,柱状图,折线图,数据在地图上显示。运行本程序需要requests、bs4、csv、pandas、...
  • python大作业学生成绩管理系统,基于Python+MySQL的GUI界面,增减改查用户注册登录,信息导入导出。
  • python大作业

    2013-12-21 15:56:51
    上海交通大学程序设计思想与方法大作业啊。
  • python大作业.pdf

    2021-09-30 18:33:31
    python大作业.pdf
  • Python大作业

    千次阅读 2020-12-17 21:12:49
    import requestsfrom bs4 import BeautifulSoupimport jiebafor i in range(2,10):pages = i;nexturl = 'http://www.shicimingju.com/chaxun/zuozhe/1_%s.html' % (pages)reslist = requests.get(nexturl)reslist.en...

    import requests

    from bs4 import BeautifulSoup

    import jieba

    for i in range(2,10):

    pages = i;

    nexturl = 'http://www.shicimingju.com/chaxun/zuozhe/1_%s.html' % (pages)

    reslist = requests.get(nexturl)

    reslist.encoding = 'utf-8'

    soup_list = BeautifulSoup(reslist.text, 'html.parser')

    for news in soup_list.find_all('div',class_='summary'):

    print(news.text)

    f = open('123.txt', 'a', encoding='utf-8')

    f.write(news.text)

    f.close()

    def changeTitleToDict():

    f = open("123.txt", "r", encoding='utf-8')

    str = f.read()

    stringList = list(jieba.cut(str))

    delWord = {"+", "/", "(", ")", "【", "】", " ", ";", "!", "、"}

    stringSet = set(stringList) - delWord

    title_dict = {}

    for i in stringSet:

    title_dict[i] = stringList.count(i)

    print(title_dict)

    return title_dict

    先把代码弄出来

    然后就开始生成词云

    from PIL import Image,ImageSequence

    import numpy as np

    import matplotlib.pyplot as plt

    from wordcloud import WordCloud,ImageColorGenerator

    # 获取上面保存的字典

    title_dict = changeTitleToDict()

    graph = np.array(title_dict)

    font = r'C:\Windows\Fonts\simhei.ttf'

    wc = WordCloud(background_color='white',max_words=500,font_path=font)

    wc.generate_from_frequencies(title_dict)

    plt.imshow(wc)

    plt.axis("off")

    plt.show()

    我选择的网站是李白的古诗网站,中间遇到很多问题,最大的莫过于找不到词,其次是词云的安装wordcloud总是失败。

    找不到词在同学帮助下成功了,词云也是如此,通过安装包,而不是通过pycharm安装。

    可见李白最喜欢三件东西:拒绝,百日,成仙

    展开全文
  • 只有你想不到,没有玩不到
  • python爬虫代码,可供参考,期末大作业
  • 可以射击可以上下左右移动,有boss,boss血量很多会移动会发射子弹,随着关卡速度变快
  • python大作业扫雷游戏

    2013-04-04 22:12:21
    python大作业扫雷游戏,呕心沥血的结晶啊,供大家参考使用。
  • 实现多线程爬虫,连接数据库,文本操作和绘图分析。
  • Python大作业

    千次阅读 2021-01-15 10:28:22
    Python大作业一 这学期拔尖计划又安排了一次Python课程的学习,因为之前学习过了所以就没有记录平时的编程作业,把大作业记录一下~~ print("姓名:小吴") print("学号:000000") print("班级:智能183班") print(...

    Python大作业一
    这学期拔尖计划又安排了一次Python课程的学习,因为之前学习过了所以就没有记录平时的编程作业,把大作业记录一下~~

    在这里插入图片描述

    print("姓名:小吴")
    print("学号:000000")
    print("班级:智能183班")
    print("step 1")
    print("--------------------")
    def displayDictionary():
        len_dic = len(dictionary)
        if len_dic == 0:
            print("*** The dictionary is empty ***")
        else:
            print("*** Known words ****")
            for i in range(len(dictionary)):
                a = dictionary[i]
                print(a[0].ljust(20),a[1].ljust(20))
    
    dictionary = []
    displayDictionary()
    dictionary = [['the','这'],['big','大'],['house','房子']]
    displayDictionary()
    
    print("-------------------")
    print("姓名:小吴")
    print("学号:000000")
    print("班级:智能183班")
    print("step 2")
    print("--------------------")
    
    flag=0
    dictionary = [['the','这'],['big','大'],['house','房子']]
    def translateFromEnglish(word):
        lookup(word)
        return lookup(word)
    def lookup(word):
        for i in dictionary:
            if word == i[0]:
                flag=1
                return i[1]
    
    w = translateFromEnglish('house')
    print('Translation of','house','is',w)
    
    w = translateFromEnglish('dog')
    print('translation of','dog','is',w)
    
    print("姓名:小吴")
    print("学号:000000")
    print("班级:智能183班")
    print("step 3")
    print("--------------------")
    
    def main():
        while True:
            flag = 0
            reply = input("Eng: > ")
            if reply == '?':
                displayDictionary()
            else:
                translateReply = []
                words = list(reply.strip('.,?').split(' '))
                for word in words:
                    translation = lookup(word.lower())
                    translateReply.append(translation)
                    if translation == None:
                        print('None')
                        flag = 1
                        break
                if flag == 0:
                    str1 = ' '.join(translateReply)
                    if words[0] in ['what','where','why','how','is']:
                        m='?'
                    else:
                        m='.'
                    print(str1.capitalize()+m)
            if flag ==1:
                break
    
    dictionary = [['the','la'],['red','resso'],['is',"e'"],['table','tavola']]
    
    def translateFromEnglish(word):
        lookup(word)
        return lookup(word)
    def lookup(word):
        for i in dictionary:
            if word == i[0]:
                #flag = 1
                return i[1]
    
    def displayDictionary():
        len_dic = len(dictionary)
        if len_dic == 0:
            print("*** The dictionary is empty ***")
        else:
            print("*** Known words ****")
            for i in range(len(dictionary)):
                a = dictionary[i]
                print(a[0].ljust(10),a[1].ljust(10))
    
    main()
    
    print("姓名:小吴")
    print("学号:000000")
    print("班级:智能183班")
    print("step 4")
    print("--------------------")
    
    def main():
        global dictionary
        while True:
            flag = 0
            reply = input("Eng: > ")
            if reply == '?':
                displayDictionary()
            else:
                translateReply = []
                words = list(reply.strip('.,?').split(' '))
                for word in words:
                    translation = lookup(word.lower())
                    if translation == None:
                        print('How do i translate',word,':')
                        tran1=input()
                        dictionary = dictionary+[[word,tran1]]
                        translateReply.append(tran1)
                        #flag = 1
                        #break
                    else:
                        translateReply.append(translation)
    
                if flag == 0:
                    str1 = ' '.join(translateReply)
                    if words[0] in ['what','where','why','how','is']:
                        m='?'
                    else:
                        m='.'
                    print(str1.capitalize()+m)
            if flag ==1:
                break
    
    dictionary = [['the','la'],['red','resso'],['is',"e'"],['table','tavola']]
    def translateFromEnglish(word):
        lookup(word)
        return lookup(word)
    def lookup(word):
        for i in dictionary:
            if word == i[0]:
                #flag = 1
                return i[1]
    
    def displayDictionary():
        len_dic = len(dictionary)
        if len_dic == 0:
            print("*** The dictionary is empty ***")
        else:
            print("*** Known words ****")
            for i in range(len(dictionary)):
                a = dictionary[i]
                print(a[0].ljust(10),a[1].ljust(10))
    
    main()
    
    print("姓名:小吴")
    print("学号:000000")
    print("班级:智能183班")
    print("step 5")
    print("--------------------")
    
    #从txt文件中获取字典
    
    dict = open('dictionary.txt','r+')
    dictionary = list(dict)
    #print(dictionary)
    
    #将读取到的内容排列成正常格式
    
    for i in range(len(dictionary)):
        dic1 = dictionary[i]
        flag = 0
        for j in dic1:
            if j == '/':
                flag = 1
        if flag == 0:
            raise Exception("程序运行错误")
        dic1 = dic1.strip('\n').split('/')
        #print(dic1)
        dictionary[i] = dic1
    
    #main()函数
    def main():
        global dictionary
        while True:
            flag = 0
            reply = input("Eng: > ")
            if reply == '?':
                displayDictionary()
    
            #让程序可以正常结束
            elif reply == 'break1':
                break
    
            else:
                translateReply = []
                words = list(reply.strip('.,?').split(' '))
                for word in words:
                    translation = lookup(word.lower())
                    if translation == None:
                        print('How do i translate',word,':')
                        tran1=input()
                        dictionary = dictionary+[[word,tran1]]
                        #将原始列表中没有的词加到txt文件中
                        wri = word + '/' + tran1
                        dict.write(wri)
                        translateReply.append(tran1)
                        #flag = 1
                        #break
                    else:
                        translateReply.append(translation)
    
                if flag == 0:
                    str1 = ' '.join(translateReply)
                    if words[0] in ['what','where','why','how','is']:
                        m='?'
                    else:
                        m='.'
                    print(str1.capitalize()+m)
    
    #dictionary = [['the','la'],['red','resso'],['is',"e'"],['table','tavola']]
    def translateFromEnglish(word):
        lookup(word)
        return lookup(word)
    def lookup(word):
        for i in dictionary:
            if word == i[0]:
                #flag = 1
                return i[1]
    
    def displayDictionary():
        len_dic = len(dictionary)
        if len_dic == 0:
            print("*** The dictionary is empty ***")
        else:
            print("*** Known words ****")
            for i in range(len(dictionary)):
                a = dictionary[i]
                print(a[0].ljust(10),a[1].ljust(10))
    
    main()
    
    '''for i in range(len(dictionary)):
        wri = dictionary[i]
        wri = wri[0]+'/'+wri[1]
        if i < len(dictionary):
            wri = wri +'\n'
        dict.write(wri)
    '''
    #dict.write(dictionary)
    dict.close()
    
    
    print("姓名:小吴")
    print("学号:000000")
    print("班级:智能183班")
    print("step 6")
    print("--------------------")
    
    #从txt文件中获取字典
    
    dict = open('dictionary.txt','r+')
    dictionary = list(dict)
    #print(dictionary)
    
    #将读取到的内容排列成正常格式
    
    for i in range(len(dictionary)):
        dic1 = dictionary[i]
        flag = 0
        for j in dic1:
            if j == '/':
                flag = 1
        if flag == 0:
            raise Exception("程序运行错误")
        dic1 = dic1.strip('\n').split('/')
        #print(dic1)
        dictionary[i] = dic1
    
    #main()函数
    def main():
        global dictionary
        while True:
            flag = 0
            reply = input("Eng: > ")
            if reply == '?':
                displayDictionary()
    
            #让程序可以正常结束
            elif reply == '*save':
                dict.seek(0)
                dict.truncate()
                save1 = []
                for i in range(len(dictionary)):
                    wri = dictionary[i]
                    save1 = save1 + [wri]
                    wri = wri[0] + '/' + wri[1]
                    if i < len(dictionary):
                        wri = wri + '\n'
                    dict.write(wri)
            elif reply == '*quit':
                for  i in range(len(dictionary)):
                    if dictionary[i] in save1:
                        pass
                    else:
                        print(dictionary[i],'not in the dictionary,do you want to save it?')
                        result = input("Yes or No?>")
                        if result == 'Yes':
                            wri = dictionary[i]
                            wri = wri[0] + '/' + wri[1]+'\n'
                            dict.write(wri)
                break
    
            else:
                translateReply = []
                words = list(reply.strip('.,?').split(' '))
                for word in words:
                    translation = lookup(word.lower())
                    if translation == None:
                        print('How do i translate',word,':')
                        tran1=input()
                        dictionary = dictionary+[[word,tran1]]
                        translateReply.append(tran1)
                        #flag = 1
                        #break
                    else:
                        translateReply.append(translation)
    
                if flag == 0:
                    str1 = ' '.join(translateReply)
                    if words[0] in ['what','where','why','how','is']:
                        m='?'
                    else:
                        m='.'
                    print(str1.capitalize()+m)
    
    #dictionary = [['the','la'],['red','resso'],['is',"e'"],['table','tavola']]
    def translateFromEnglish(word):
        lookup(word)
        return lookup(word)
    def lookup(word):
        for i in dictionary:
            if word == i[0]:
                #flag = 1
                return i[1]
    
    def displayDictionary():
        len_dic = len(dictionary)
        if len_dic == 0:
            print("*** The dictionary is empty ***")
        else:
            print("*** Known words ****")
            for i in range(len(dictionary)):
                a = dictionary[i]
                print(a[0].ljust(10),a[1].ljust(10))
    
    main()
    
    
    
    
    
    #dict.write(dictionary)
    dict.close()
    
    

    水平有限,还请各位大佬批评指正~~

    展开全文
  • python大作业.rar

    2021-11-04 10:28:57
    合肥工业大学python大作业,包括试题、考试要求、作业报告、完整源代码、答辩ppt。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 150,191
精华内容 60,076
关键字:

python大作业