首页 > 编程语言 >python贪吃蛇

python贪吃蛇

时间:2023-08-09 11:44:21浏览次数:49  
标签:body python self cin long 贪吃蛇 go def


import sys import msvcrt import threading import time import map import os import player global go_to,fresh_time go_to="s" fresh_time=0.1 def stop(x,y): temp=map.map() if temp.good_game(x,y): sys.exit(0) def Auto(): global go_to,fresh_time MAP=map.map() Person=player.player() MAP.set_food() while True: MAP.refresh(Person.re_snack()) Person.move(go_to) stop(Person.body[0][0],Person.body[0][1]) MAP.display(Person) # print("方向:"+go_to) time.sleep(fresh_time) os.system('cls') def use(): global go_to,fresh_time while True: cin=msvcrt.getch() cin=str(cin)[2:3] if cin == "w" or cin == "W": if go_to != "s": go_to="w" elif cin == "a" or cin == "A": if go_to != "d": go_to="a" elif cin == "s" or cin == "S": if go_to != "w": go_to="s" elif cin == "d" or cin == "D": if go_to != "a": go_to="d" elif cin == " ": fresh_time=0.02 time.sleep(0.15) fresh_time=0.1 if __name__ == '__main__': auto=threading.Thread(target=Auto) use=threading.Thread(target=use) auto.start() use.start()

 

import sys
import random
import player

class map:
    foods=[[19,50]]
    long=30
    width=119
    all=[]

    def __init__(self):
        for i in range(self.long):
            self.all.append([])
        for i in self.all:
            for j in range(self.width):
                i.append(" ")

    def refresh(self,snack):
        self.all=[]
        for i in range(self.long):
            self.all.append([])
        for i in self.all:
            for j in range(self.width):
                i.append(" ")
        for body_node in snack:
            self.all[body_node[0]][body_node[1]]="*"
        if len(self.foods) > 0:
            for food in self.foods:
                self.all[food[0]][food[1]]="#"
        else:
            self.set_food()

    def display(self,snack):
        for i in self.all:
            for j in i:
                sys.stdout.write(j)
            print("")
        for food in self.foods:
            if snack.eat(food[0],food[1]) == True:
                self.foods.remove([food[0],food[1]])
                

    def set_food(self):
        for i in range(0,10):
            self.foods.append([random.randint(2,self.long-2),random.randint(2,self.width-2)])
        pass
    
    def good_game(self,x,y):
        if x < 0 or y < 0 or x == self.long or y == self.width:
            return True
        else:
            return False
import time
class player:
    long=0
    body=[]

    def __init__(self):
        self.body.append([15,50])
        self.body.append([15,51])
        self.long=2

    def move(self,To_head):
        #print(self.body)
        if To_head == "w":
            if self.body[0][1] == 0:
                return
            else:
                self.body.append([0,0])
                for i in range(len(self.body)):
                    k = len(self.body)-1-i
                    self.body[k]=self.body[k-1]
                self.body[0]=[self.body[1][0]-1,self.body[1][1]]
                self.body.pop(self.long)
        elif To_head == "a":
            if self.body[0][1] == 0:
                return
            else:
                self.body.append([0,0])
                for i in range(len(self.body)):
                    k = len(self.body)-1-i
                    self.body[k]=self.body[k-1]
                self.body[0]=[self.body[1][0],self.body[1][1]-1]
                self.body.pop(self.long)
        elif To_head == "s":
            if self.body[0][1] == 0:
                return
            else:
                self.body.append([0,0])
                for i in range(len(self.body)):
                    k = len(self.body)-1-i
                    self.body[k]=self.body[k-1]
                self.body[0]=[self.body[1][0]+1,self.body[1][1]]
                self.body.pop(self.long)
        elif To_head == "d":
            if self.body[0][1] == 0:
                return
            else:
                self.body.append([0,0])
                for i in range(len(self.body)):
                    k = len(self.body)-1-i
                    self.body[k]=self.body[k-1]
                self.body[0]=[self.body[1][0],self.body[1][1]+1]
                self.body.pop(self.long)

    def eat(self,x,y):
        if self.body[0][0] == x and self.body[0][1] == y:
            self.long=self.long+1
            self.body.insert(0,[x,y])
            return True
        else:
            return False

    def re_snack(self):
        return self.body

 

标签:body,python,self,cin,long,贪吃蛇,go,def
From: https://www.cnblogs.com/cocotun/p/17616441.html

相关文章

  • 【Python】日期格式转换 <字符串、datetime、date>
    #coding:utf-8importdatetimefromdateutil.parserimportparsefromdateutil.relativedeltaimportrelativedeltafromloguruimportloggeraslogsclassdate_transform:"""日期格式转换"""defauto(self,d):"......
  • 基于Python的网上图书商城
    电子商城作为一个竞争激烈的市场销售方式,大多数电子商城的管理者都主要考虑降低成本,提升商城服务满意度。一年一度的双十一、双十二,给众多的消费者带来了购物盛宴,也给各种商城提供了巨大的销售额。本文通过调研网上图书商城的业务流程,审慎分析搭建一个基于PythonDjango的网上图书商......
  • 基于Python的京东商品信息分析
    系统设计思想京东网站是通过服务端进行数据动态展示的,这样就可以通过网页上的源代码分析网页界面上看到的数据信息,不仅如此,还可以通过在采集京东网页数据的时候,动态读取URL地址。京东页面数据更新的时候,或者读取下一页面的时候,数据显示是异步加载的。这种加载数据的方法能够实时的......
  • python语言学习-------------------xlwt模块
    xlwt模块是Python中一个用于管理Excel文件的模块,用以将数据以Excel表格的形式写入到Excel文件中。它具有操作方便、支持多种Excel文件格式等优点,因此,被广泛应用于数据处理、表格导出等方面。1.创建Excel文件使用xlwt模块创建并打开Excel文件:importxlwt#创建workbook对象w......
  • python实现创建一个银行类,这个类实现了两个方法,第一个方法可以将用户信息写入到文件中
    classbank:defuser_info(self):a=input('请输入用户信息:')#不写encoding='utf-8'中文会乱码withopen('info.txt','w',encoding='utf-8')asf:f.write(a)defget_info(se......
  • python:安装backgroundremover 0.2.4(Python 3.9.16)
    一,官方代码及文档:https://github.com/nadermx/backgroundremover二,安装backgroundremover的准备工作1,安装pytorch:https://blog.imgtouch.com/index.php/2023/08/03/rocky-linux-an-zhuang-pytorch-pytorch-2-1-python-3-9-16/2, 安装ffmpeg:https://blog.imgtouch.......
  • 使用 python 分割大的文本文件
    在开发过程中会遇到有些大文件,因为比较大,无法打开的情况,这个时候需要进行文件分割,这里使用python进行文件分割,代码如下:importosimportmathimportsysblock_size=int(sys.argv[2])*1024*1024defsplit_file(filepath:str,block_size:int):filesize=os.path.get......
  • rocky linux:安装pytorch(pytorch 2.0.1 / Python 3.9.16)
    一,pytorch官网:https://pytorch.org/如图:根据自己的需求选择版本、平台、语言环境等信息,然后运行命令二,运行pip安装命令:[root@imgbin]#pip3installtorchtorchvisiontorchaudio--index-urlhttps://download.pytorch.org/whl/cpuLookinginindexes:https://......
  • rocky linux:编译安装python3.11.4(rocky linux 9.2)
    一,查看现有的版本:1,本地版本[root@img~]#python--versionPython3.9.162,现在的最新版本:访问官网:https://www.python.org/如图:可以看到线上的最新版本是3.11.4 二,编译/安装:1,下载:先复制下载地址2,从服务器用wget命令下载:[root@imgpython]#wgethttp......
  • python:升级pip版本(Python 3.11.4)
    一,查看当前pip的版本:[[email protected]]#pip--versionpip23.1.2from/usr/local/soft/python3.11.4/lib/python3.11/site-packages/pip(python3.11)二,升级pip:[[email protected]]#python3-mpipinstall--upgradepipLookinginindexes:http://m......