python写的数字大爆炸游戏cmd界面

简介: python写的数字大爆炸游戏cmd界面

客户端

import socket
client_01 = socket.socket()
client_01.connect(('10.1.30.100',9002))
"""
    一开始定义客户端去连接服务器的时候需要发送的
    客户端点击连接按钮发送:
    1,用户名C1=02
    2,提取数据,将收到的信息分离,分别存起来,比如位数,num,利用分片,split分成列表,然后固定a[1]为位数,a[2]为num,a[0]是用户名,a[3]是自己的数据
    a[4]是服务端数据,ok
    3,编写程序,判断n输入是否==a[2],如果是就显示信息提示,退出循环,结束网络连接
    服务器接受到了消息:
    1,将用户名C1存起来  Sc1=C1 send=str(Sc1+"|"+位数+"|"+num+"|"+C1(传过来的数据))
    2,input !=num,提示结果, send=send+input
"""
def cone(Dan):
            global flag
            dana=Dan
            info = input('请输入》》》').encode("utf-8")
            if int(info)==dana:
                    print("you win!!")
                    client_01.send(b'lose')
                    client_01.close()
                    # break
            if int(info)<dana:
                    print("you get small!!")
                    print("waiting optinal input!!!")
                    client_01.send(info)
            if int(info)>dana:
                    print("you get bigger!!")
                    print("waiting optinal input!!!")
                    client_01.send(info)
            msg = client_01.recv(1024).decode('utf-8')
            if msg == "over":
                        # print("you lose!!")
                        print("对方猜的是"+str(dana))
                        print("你输了")
                        print("--------------------")
                        flag=0
                        client_01.close()
                        # socket.close()
            # print(msg)
            a=msg.split("|")
            # print(a[3])
            print("对方猜的是:"+str(a[3]))
            if int(a[3])<dana:
                print("对方猜小了")
            if int(a[3])>dana:
                print("对方猜大了")
if __name__ == '__main__':
    print("选择:")
    print("1,连接服务器")
    print("2,退出游戏")
    x=input("请选择:")
    if x=="1":
        myname = x.encode("utf-8")
        client_01.send(myname)#第一次发送
        msg = client_01.recv(1024).decode('utf-8')#第一次接收信息
        a=msg.split("|")
        print("这是一个"+str(a[0])+"位数")
        print(a)
        print(int(a[1]))
        dana=int(a[1])
        flag = 1
        while flag!=0:
            cone(dana)
    elif x=="2":
        print("退出成功!")
        client_01.close()

服务端

import socket
import random
def numcollect():
    global io,num,num2,onum
    num = random.choice(range(0,99999))
    io = 0
    onum = num
    num2 = num
    # 计算位数
    while onum >= 1:
        onum = onum / 10
        io += 1
    return io
def theone():
    weishu=numcollect()
    print("这是一个:"+str(weishu)+"位数")
    print("这是答案:"+str(num))
    server = socket.socket()
    server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    server.bind(('10.1.30.100',9002))
    server.listen(5)
    #while语句作用:(当客户端关闭后)接受新客户端的连接,实现服务端不间断地提供服务。
    # while True:
    conn,addr = server.accept()
        # msg1 = conn.recv(1024).decode("utf-8")
        # print(msg1)
        #while语句作用:接受来自客户端的消息、打印,回复消息;当客户端的消息中包含‘bye’时,断开本次连接。
    while True:
            msg = conn.recv(1024).decode('utf-8')
            # print.type(msg)
            msgri=msg
            mesg=str(msg)
            # if isinstance(msg,str):
            #     print("this is str type!")
            #     # continue
            if num == msg:      #当收到的信息包含bye,给客户端发送bye,跳出当前while循环
                conn.send(b'binggo!you are right!')
                break
            if msg == "1":
                fone=str(str(weishu)+"|"+str(num))
                print("用户连接成功!")
                print("等待对方输入!")
                conn.send(str(fone).encode("utf-8"))
            elif msg == "2":
                print("用户下线!")
                conn.close()
                break
            elif msg !="1" and msg != "2":
                print("这是一个"+str(num)+"位数")
                info1 = str(str(weishu)+"|"+str(num)+"|"+mesg)
                # if
                print(info1)
                a2=info1.split("|")
                print(a2)
                print(a2[1])
                # 对方的
                if int(a2[2])==num:
                    print("你输了")
                    break
                if int(a2[2])<num:
                    print("对方猜的是"+str(a2[2]))
                    print("对方猜的小了")
                if int(a2[2])>num:
                    print("对方猜的是"+str(a2[2]))
                    print("对方猜的大了")
                if int(msgri)==num:
                    print("对方猜的是"+str(a2[2]))
                    print("你输了!")
                info = input('该你输入了>>>')
                info = int(info)
                # print(info)
                if info == num:
                    print("well!你赢了!!!")
                    conn.send("over".encode('utf-8'))
                    conn.close()
                    socket.close()
                    break
                if info > num:
                    print("oh!你猜大了!")
                    print("等待对方输入!")
                    # conn.send(str(info).encode('utf-8'))
                if info < num:
                    print("oh!你猜小了!")
                    print("等待对方输入!")
                    # conn.send(str(info).encode('utf-8'))
                # print(info)
                info=str(info)
                info = str(str(info1)+"|"+str(info))
                # print(info)
                conn.send(info.encode('utf-8'))
if __name__ == '__main__':
    theone()

注意

还有许多地方不合理的,读者发现后可自行测试

相关文章
|
1月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
74 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
16天前
|
数据可视化 测试技术 Linux
基于Python后端构建多种不同的系统终端界面研究
【10月更文挑战第10天】本研究探讨了利用 Python 后端技术构建多样化系统终端界面的方法,涵盖命令行界面(CLI)、图形用户界面(GUI)及 Web 界面。通过分析各种界面的特点、适用场景及关键技术,展示了如何使用 Python 标准库和第三方库(如 `argparse`、`click`、`Tkinter` 和 `PyQt`)实现高效、灵活的界面设计。旨在提升用户体验并满足不同应用场景的需求。
|
17天前
|
IDE 开发工具 Python
Python扑克游戏编程---摸大点
Python扑克游戏编程---摸大点
36 1
|
1月前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
68 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
1月前
|
Python
python编写下象棋游戏|4-14
python编写下象棋游戏|4-14
|
1月前
|
Python
python:cmd管道
python:cmd管道
|
1月前
|
人工智能 算法 图形学
总有一个是你想要的分享40个Python游戏源代码
这是一系列基于Python开发的游戏项目集合,包括中国象棋、麻将、足球、坦克大战、扑克等多种类型游戏,运用了Pygame等库实现图形界面与AI算法。此外还包含迷宫、数独、推箱子等益智游戏及经典游戏如《仙剑奇侠传二战棋版》和《星露谷物语》的Python版本,适合编程学习与娱乐。
71 11
|
17天前
|
数据采集 前端开发 Python
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
47 0
|
1月前
|
消息中间件 数据采集 数据库
庆祝吧!Python IPC让进程间的合作,比团队游戏还默契
【9月更文挑战第7天】在这个数字化时代,软件系统日益复杂,单进程已难以高效处理海量数据。Python IPC(进程间通信)技术应运而生,使多进程协作如同训练有素的电竞战队般默契。通过`multiprocessing`模块中的Pipe等功能,进程间可以直接传递数据,无需依赖低效的文件共享或数据库读写。此外,Python IPC还提供了消息队列、共享内存和套接字等多种机制,适用于不同场景,使进程间的合作更加高效、精准。这一技术革新让开发者能轻松应对复杂挑战,构建更健壮的软件系统。
32 1
|
2月前
|
机器学习/深度学习 存储 定位技术
强化学习Agent系列(一)——PyGame游戏编程,Python 贪吃蛇制作实战教学
本文是关于使用Pygame库开发Python贪吃蛇游戏的实战教学,介绍了Pygame的基本使用、窗口初始化、事件处理、键盘控制移动、以及实现游戏逻辑和对象交互的方法。