资源简介

最新东北大学Python程序设计实验代码(含报告,不含综合作业),项目包括:井字棋、人口数据特征间的关系、 P2P网络贷款数据、插补用户用电量数据缺失值、wine和wine_quality 数据集分类及回归分析。仅供学习交流和参考 综合作业链接:https://blog.csdn.net/momentni/article/details/109262120

资源截图

代码片段和文件信息

import tkinter as tk
import random

# 胜利的走法
win_chess = [[0 4 8] [2 4 6] [0 1 2] [3 4 5] [6 7 8] [0 3 6] [1 4 7] [2 5 8]]
# 最佳下棋顺序
best_way = [4 0 2 6 8 1 3 5 7]
# 棋盘
chess = [0 0 0 0 0 0 0 0 0]
the_chess = [0 0 0 0 0 0 0 0 0]  # 记录棋盘
show_chess = ‘‘
flag = True
who = 1
count_x = 0
count_y = 0
count_z = 0

top = tk.Tk()
top.title(‘人机井字棋‘)
top.geometry(“300x300“)
top.resizable()
show_str = tk.StringVar(top)
tips = tk.StringVar(top)  # 提示信息


def init_ch():
    # 初始化棋盘
    for j in range(9):
        the_chess[j] = 0
    update_chess()
    return the_chess


def update_chess():
    # 更新棋盘
    for k in range(9):
        if the_chess[k] == 1:
            ch[k].set(‘[X]‘)
        elif the_chess[k] == -1:
            ch[k].set(‘[O]‘)
        else:
            ch[k].set(‘[ ]‘)


def ai_go_first():
    if count_zero(the_chess) == 9:
        the_chess[random.randint(0 8)] = -1
    update_chess()
    ai_go_fir_b.pack_forget()


def but1():
    # 人机对战
    init_ch()
    tips.set(““)
    l0.bind(““ touch_l0)
    l1.bind(““ touch_l1)
    l2.bind(““ touch_l2)
    l3.bind(““ touch_l3)
    l4.bind(““ touch_l4)
    l5.bind(““ touch_l5)
    l6.bind(““ touch_l6)
    l7.bind(““ touch_l7)
    l8.bind(““ touch_l8)
    ai_go_fir_b.pack(side=tk.RIGHT)


def ai_go(w):
    # 机器走棋
    if count_zero(the_chess) < 9:
        po = is_danger(the_chess 1)
        if po != -1:
            the_chess[po] = w
            update_chess()
        elif not constraint(w):
            pass
        else:
            the_chess[get_next_o(the_chess -1)] = w
            update_chess()
        if is_win(the_chess -1) == -1:
            tips.set(“你输了!“)
    if count_zero(the_chess) == 0:
        tips.set(“平局!“)


def constraint(w):
    # 判断是否处于危险状态
    po = is_danger(the_chess -1)
    if po != -1:
        the_chess[po] = w
        update_chess()
        return False
    return True


def peo_go(po):
    # 获取按键并下棋
    if the_chess[po] == 0:
        the_chess[po] = who
        update_chess()
        if is_win(the_chess who) == who:
            tips.set(‘你赢了!‘)
        elif count_zero(the_chess) == 0:
            tips.set(“平局!“)
        else:
            ai_go(who * -1)


def is_win(now_chess who):
    “““
    判断游戏方(who)是否赢局
    “““
    temp = now_chess[:]
    for chess in win_chess:
        if (temp[chess[0]] == who) and (temp[chess[1]] == who) and (temp[chess[2]] == who):
            return who
    return 0


def count_zero(now_chess):
    “““
    统计剩余格子
    “““
    temp = now_chess[:]
    count = 0
    for te in temp:
        if te == 0:
            count = count + 1
    return count


def evaluation(now_chess):
    “““
    估价函数(以X为对象)
    可以赢的行数 +1
    可以赢的行数上有自己的棋子 +2
    可导致自己赢 +2
    可导致对手赢 -2
    “““
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-10-23 19:34  Python程序设计实验\
     目录           0  2020-10-23 19:22  Python程序设计实验\1\
     文件        8062  2019-12-05 18:42  Python程序设计实验\1\人机井字棋.py
     目录           0  2020-10-23 19:22  Python程序设计实验\2.1\
     文件       35345  2019-12-25 15:43  Python程序设计实验\2.1\1996-2015年各特征人口箱线图.png
     文件       77656  2019-12-25 15:43  Python程序设计实验\2.1\1996~2015年人口数据特征间关系散点图和折线图.png
     文件       44166  2019-12-25 15:43  Python程序设计实验\2.1\1996年和2015年各类人口直方图.png
     文件       56466  2019-12-25 15:43  Python程序设计实验\2.1\1996年和2015年各类人口饼图.png
     文件        4011  2019-12-25 15:43  Python程序设计实验\2.1\2.1代码.py
     文件        2313  2018-03-20 22:37  Python程序设计实验\2.1\populations.npz
     目录           0  2020-10-23 19:22  Python程序设计实验\2.2\
     文件        3597  2019-12-25 16:21  Python程序设计实验\2.2\2.2代码.py
     文件    18962271  2019-12-25 16:24  Python程序设计实验\2.2\Training_LogInfo.csv
     文件    20322725  2016-03-02 19:10  Python程序设计实验\2.2\Training_Master.csv
     文件    15323941  2016-02-23 18:35  Python程序设计实验\2.2\Training_Userupdate.csv
     文件        9152  2018-03-21 14:25  Python程序设计实验\2.2\文件说明.xlsx
     目录           0  2020-10-23 19:22  Python程序设计实验\2.3\
     文件        3033  2019-12-26 16:18  Python程序设计实验\2.3\2.3代码.py
     文件         809  2016-08-18 14:32  Python程序设计实验\2.3\alarm.csv
     文件        1846  2018-03-21 13:45  Python程序设计实验\2.3\ele_loss.csv
     文件         586  2019-12-26 16:31  Python程序设计实验\2.3\missLagrange.csv
     文件         493  2019-12-22 20:34  Python程序设计实验\2.3\missing_data.csv
     文件        3006  2019-12-22 21:25  Python程序设计实验\2.3\model.csv
     目录           0  2020-10-23 19:22  Python程序设计实验\2.4\
     文件       11634  2019-12-26 22:53  Python程序设计实验\2.4\2.4代码.py
     文件       20012  2019-12-26 22:54  Python程序设计实验\2.4\ROC曲线.png
     文件       10958  2018-03-20 21:05  Python程序设计实验\2.4\wine.csv
     文件       84199  2018-03-20 20:56  Python程序设计实验\2.4\winequality.csv
     文件      109420  2019-12-26 22:54  Python程序设计实验\2.4\梯度提升回归树模型预测结果.png
     文件      106068  2019-12-26 22:54  Python程序设计实验\2.4\线性回归模型预测结果.png
     文件       51712  2019-12-26 22:54  Python程序设计实验\2.4\轮廓系数折线图.png
............此处省略1个文件信息

评论

共有 条评论