Недавно откопал говнокод с времён, когда душил питона. Почитал, кринжанул и теперь хочу поделиться им, чтобы у вас напрочь пропало желание здороваться со мной за руку АХТУНГ! То, что вы увидите, может нанести непоправимый ущерб мозгу import random import time import os import sys import socket import platform import json ####clear#### def clear(): if platform.system() == 'Windows': os.system('cls') elif platform.system() == 'Linux': os.system('clear') clear() #####Colors#### reset = '\u001b[0m' green = '\033[92m' cyan = '\033[36m' yellow = '\033[33m' red = '\u001b[31m' magenta = '\u001b[35m' bmagenta = '\u001b[35;1m' byellow = '\u001b[33;1m' ####Player#### lang = 'en' singleplayer = True saved = False playerchar = f'{yellow}@{cyan}' name = '' hunger = 100 hp = 50 money = 0 defense = 10 damage = 0 inventory = [] if saved == False: inventory.append('If you are reading this then you are a cheater') xpos = random.choice(range(1, 40)) ypos = random.choice(range(1, 10)) ####boss#### bosshp = 100 bossdef = 20 bosdamage = 20 ####save#### def save(): global name global hp global hunger global money global damage global defense data = { "name": name, "hp": hp, "hunger": hunger, "money": money, "damage": damage, "defense": defense } to_json = {'inventory': inventory} with open('save_inventory.json', 'w') as f: json.dump(to_json, f) with open('save_profile.json', 'w') as f: json.dump(data, f) ####load#### def load(): global name global hp global hunger global money global damage global defense global inventory newinventory = [] with open('save_inventory.json') as file: templates = json.loads(file.read()) for section, commands in templates.items(): newinventory.append(commands) inventory = newinventory[0] with open('save_profile.json', 'r') as file: prof = json.load(file) hp = prof["hp"] hunger = prof["hunger"] name = prof["name"] money = prof["money"] damage = prof["damage"] defense = prof["defense"] saved == True #print(inventory) ####multiplayer#### #def multipl(mhost): #if mhost = True: #sock = socket.socket() #sock.bind(('', 9090)) #sock.bind(('', 9091)) #sock.listen(1) #sock.accept() ####Map#### chars = '~`-' mapS = [41, 11] objects = {} def mapSize(x, y): global mapS mapS = [x, y] def addObject(name, x, y, symbol): objects[name] = [x, y, symbol] def makeMAP(): for y in range(mapS[1]): line = '' numy = y + 1 for x in range(mapS[0]): numx = x + 1 for place in objects: if objects[place][:2] == [numx, numy]: line += objects[place][2] break else: t = random.choice(chars) line += t print(cyan + line) print(reset) ####Game#### if lang == 'en': ####Hunger#### def phunger(): global hunger if random.randint(0, 100) > 70: mhun = random.randint(1, 5) hunger -= mhun print(f'{red}Your hunger fell on: ' + str(mhun) + f'.{reset}') ####Alerts#### def alerts(): global hunger global hp if hunger < 10: print(f'{red}You are starving{reset}') mph = random.randint(5, 10) hp -= mph print(f'{red}HP left: ' + str(mph) + f'.{reset}') if hp < 5: print(f'{red}You are dying{reset}') if hp < 0: clear() print(f'{red}You are dead{reset}') sys.exit(1) ####inventory#### def inv(): i = 1 while i < len(inventory): print(bmagenta + str(i) + ': ' + inventory[i] + reset) i += 1 alerts() ####npc#### def NPC(): global money if random.randint(0,100) > 80: names = ['Carl', 'Lisa', 'Alex', 'Ivan'] items = ['salmon', 'bread', 'cod', 'metal piece', 'stone', 'wood piece'] print(f'{magenta}You saw a boat. You swam to her. A man sat in it.{reset}') print(f'{green}Hi my name is ' + random.choice(names) + f'. I am a merchant.{reset}') sp = random.randint(1, 5) si = random.choice(items) bi = random.choice(items) bp = random.randint(1, 5) print(f'{green}I sell ' + si + ' for ' + str(sp) +' coin(s). And buy ' + bi + ' for ' + str(bp) + f' coin(s){reset}') print(byellow + 'Your balance: ' + str(money) + reset) print(byellow + 'Your inventory: ' + reset) inv() bos = input(byellow + 'Enter sell or buy (0 for exit): ' + reset) if bos == 'buy': if money >= sp: money -= sp inventory.append(si) clear() addObject("Player", xpos, ypos, playerchar) makeMAP() else: print(red + 'You don\'t have enough money' + reset) elif bos == 'sell': sell = int(input(byellow + 'Enter item slot: ' + reset)) if bi == inventory[sell]: son = input(bmagenta + 'You want sell: ' + bi + '(y/n): ' + reset) if son == 'y': print(bmagenta + 'You sell: ' + inventory[sell] + '. You earn: ' + str(bp) + reset) money += bp del inventory[sell] else: print(green + ' Goodbye. Good luck to you. ' + reset) elif bos == '0': print(green + ' Goodbye. Good luck to you. ' + reset) else: print(red + 'Incorrect command!' + reset) ####*******#### def *******(fitime): fitime += 1 if fitime <= 30: for i in range(1, fitime): fish = ['salmon', 'cod', 'wood piece', 'wood piece', 'metal piece'] rfish = random.choice(fish) inventory.append(rfish) print(f'{magenta}You caught: ' + rfish + f'.{reset}') phunger() alerts() time.sleep(1) ####treasure#### def treasure(): global money commontreasure = ['salmon', 'cod', 'wood piece', 'stone'] raretreasure = ['small heal potion', 'metal piece', 'bread'] epictreasure = ['strange key', 'metal ingot', 'bread'] rt = random.randint(0, 100) if 95 > rt > 90: onet = random.choice(commontreasure) twot = random.choice(commontreasure) mon = random.randint(1, 10) money += mon inventory.append(onet) inventory.append(onet) print(bmagenta + 'You find common treasure. You get: ' + onet + ', ' + twot + '. You get: ' + str(mon) + ' coins.' + reset) time.sleep(1) if 98 > rt > 95: ronet = random.choice(raretreasure) rtwot = random.choice(raretreasure) mon = random.randint(10, 20) money += mon inventory.append(ronet) inventory.append(rtwot) print(bmagenta + 'You find rare treasure. You get: ' + ronet + ', ' + rtwot + '. You get: ' + str(mon) + ' coins.' + reset) time.sleep(1) if 100 > rt > 98: eonet = random.choice(epictreasure) etwot = random.choice(epictreasure) mon = random.randint(20, 30) money += mon inventory.append(eonet) inventory.append(etwot) print(bmagenta + 'You find epic treasure. You get: ' + eonet + ', ' + etwot + '. You get: ' + str(mon) + ' coins.' + reset) time.sleep(1) ####use item#### def useitem(item): global hunger global hp global damage global defense useitem = inventory[item] if useitem == 'salmon': print(bmagenta + 'You use: salmon. You get 10 hunger.' + reset) del inventory[item] hunger += 10 if useitem == 'cod': print(bmagenta + 'You use: cod. You get 10 hunger.' + reset) del inventory[item] hunger += 10 if useitem == 'bread': print(bmagenta + 'You use: bread. You get 30 hunger.' + reset) del inventory[item] hunger += 30 if useitem == 'small heal potion': print(bmagenta + 'You use: small heal potion. You get 10 hp.' + reset) del inventory[item] hp += 10 if useitem == 'basic sword': print(bmagenta + 'You equipped: basic sword. You get 10 damage.' + reset) del inventory[item] damage += 10 if useitem == 'rare sword': print(bmagenta + 'You equipped: rare sword. You get 30 damage.' + reset) del inventory[item] damage += 30 ####attack#### def mobattack(): global hp global damage global defense global name global money global bosdamage global bossdef global bosshp bar = ''' +----------------+ |1. attack | |2. use item | |0. exit | +----------------+ ''' mobs = ['shark', 'pirate'] mob = random.choice(mobs) mobhp = random.randint(1, 20) mobdamage = random.randint(1, 10) mobdefense = random.randint(1, 10) if random.randint(0, 100) > 95: print(bmagenta + mob + ' attacket you!' + reset) print(bmagenta + mob + ': ' + str(mobhp) + ' hp, ' + str(mobdamage) + ' damage, ' + str(mobdefense) + ' defense.') print(bmagenta + name + ': ' + str(hp) + ' hp, ' + str(damage) + ' damage, ' + str(defense) + ' defense.') while True: clear() makeMAP() print(byellow + mob + ': ' + str(mobhp) + ' hp, ' + str(mobdamage) + ' damage, ' + str(mobdefense) + ' defense.') print(byellow + name + ': ' + str(hp) + ' hp, ' + str(damage) + ' damage, ' + str(defense) + ' defense.') print(byellow + bar + reset) fch = input(byellow + '> ' + reset) if fch == '1': print(bmagenta + 'You attack ' + mob + reset) md = mobhp - (damage - mobdefense) if md >= mobhp: print(red + 'You cannot attack a mob. Because his defense is very strong.' + reset) elif md < mobhp: print(bmagenta + 'You damaged a mob in: ' + str(mobhp - md) + reset) mobhp = md print(bmagenta + mob + ' attack you' + reset) pd = hp - (mobdamage - defense) if pd >= hp: print(red + 'Mob cannot attack you. Because your defense is very strong.' + reset) elif pd < hp: print(bmagenta + 'Mob damaged you in: ' + str(hp - pd) + reset) hp = pd if mobhp <= 0 or hp <= 0: if mobhp <= 0: loot = random.randint(1, 10) print(bmagenta + 'You kill ' + mob + ' and get ' + str(loot) + 'coin(s)') money += loot break elif fch == '2': print(f'{byellow}Inventory: ' + reset) inv() aus = int(input(byellow + 'Enter item slot(0 exit): ' + reset)) useitem(aus) clear() elif fch == '0': print(bmagenta + 'You left the fight' + reset) break else: print(f'{red}Command not found{reset}') if random.randint(0, 1000) > 999: print(bmagenta + 'Boss attacket you!' + reset) print(bmagenta + 'Boss: ' + str(bosshp) + ' hp, ' + str(bosdamage) + ' damage, ' + str(bossdef) + ' defense.') print(bmagenta + name + ': ' + str(hp) + ' hp, ' + str(damage) + ' damage, ' + str(defense) + ' defense.') clear() while True: makeMAP() print(byellow + bar + reset) fch = input(byellow + '> ' + reset) if fch == '1': print(bmagenta + 'You attack boss' + reset) bd = bosshp - (damage - bossdef) if bd >= bosshp: print(red + 'You cannot attack a boss. Because his defense is very strong.' + reset) elif bd < bosshp: print(bmagenta + 'You damaged a boss in: ' + str(bosshp - bd) + reset) bosshp = bd print(bmagenta + 'Boss attack you' + reset) pd = hp - (bosdamage - defense) if pd >= hp: print(red + 'Boss cannot attack you. Because your defense is very strong.' + reset) elif pd < hp: print(bmagenta + 'The boss did damage in: ' + str(hp - pd) + reset) hp = pd if mobhp <= 0 or hp <= 0: if mobhp <= 0: loot = random.randint(1, 100) print(bmagenta + 'You kill boss and get ' + str(loot) + 'coin(s)') if random.randint(1, 100) > 70: print(bmagenta + 'You get rare sword!' + reset) inventory.append('rare sword') money += loot break elif fch == '2': print(f'{byellow}Inventory: ' + reset) inv() aus = int(input(byellow + 'Enter item slot(0 exit): ' + reset)) useitem(aus) clear() elif fch == '0': print(bmagenta + 'You left the fight' + reset) break else: print(f'{red}Command not found{reset}') alerts() time.sleep(2) clear() ####Move function#### def makeMove(direction, amount): global xpos global ypos if direction == 'w': for i in range(0, amount): if 1 >= amount > 50: print(red + 'Too small or large value' + reset) break else: if ypos > 0: ypos -= 1 elif ypos < 1: ypos += 11 clear() makeMAP() addObject("Player", xpos, ypos, playerchar) print(f'{magenta}Please wait...{reset}') phunger() alerts() NPC() treasure() mobattack() time.sleep(2) if direction == 's': for i in range(0, amount): if 1 >= amount > 50: print(red + 'Too small or large value' + reset) break else: if ypos < 12: ypos += 1 elif ypos > 11: ypos -= 11 clear() makeMAP() addObject("Player", xpos, ypos, playerchar) print(f'{magenta}Please wait...{reset}') print(str(xpos) + ' ' + str(ypos)) phunger() alerts() NPC() treasure() mobattack() time.sleep(2) if direction == 'd': for i in range(0, amount): if 1 >= amount > 50: print(red + 'Too small or large value' + reset) break else: if xpos < 42: xpos += 1 elif xpos >= 42: xpos -= 41 clear() addObject("Player", xpos, ypos, playerchar) makeMAP() print(f'{magenta}Please wait...{reset}') print(str(xpos) + ' ' + str(ypos)) phunger() alerts() NPC() treasure() mobattack() time.sleep(2) if direction == 'a': for i in range(0, amount): if 1 >= amount > 50: print(red + 'Too small or large value' + reset) break else: if xpos > 0: xpos -= 1 elif xpos <= 0: xpos += 41 clear() addObject("Player", xpos, ypos, playerchar) makeMAP() print(f'{magenta}Please wait...{reset}') print(str(xpos) + ' ' + str(ypos)) phunger() alerts() NPC() treasure() mobattack() time.sleep(2) ####main screen#### ms = ''' #----------------# | The legend | | of | | this ocean | #----------------# |1. singleplayer | |2. multiplayer | | 3. exit | #----------------# ''' ch = 0 while ch != 1: print(byellow + ms + reset) msc = input(byellow + '> ' + reset) if msc == '1': lon = input(byellow + ' Load player or create new: ' + reset) if lon == 'load': try: load() singleplayer = True print(bmagenta + 'Wait...' + reset) ch = 1 time.sleep(2) clear() saved = True except: print(red + 'File is missing or damaged' + reset) elif lon == 'new': name = input(byellow + 'Please enter your name: ' + reset) singleplayer = True print(bmagenta + 'Wait...' + reset) ch = 1 time.sleep(2) clear() else: print(red + 'Try enter load or new!' + reset) time.sleep(1) clear() elif msc == '2': singleplayer = False print(bmagenta + 'Sorry, multiplayer is not available right now' + reset) time.sleep(2) clear() elif msc == '3': print(byellow + ' Goodbye. Good luck to you. ' + reset) time.sleep(2) clear() sys.exit(1) else: clear() ####Menu#### addObject("Player", xpos, ypos, playerchar) makeMAP() if saved == False: inventory.append('basic sword') while True: aclist = ''' Action list: 1. ******* 2. move 3. profile 4. use item 0. exit ''' print(byellow + aclist) paction = input(yellow + '> ' + reset) if paction == '1': ftime = int(input(byellow + 'Enter ******* time: ' + reset)) *******(ftime) clear() makeMAP() elif paction == '2': dr = input(f'{byellow}Enter w, a, s, d to select a direction(0 for exit): ' + reset) if dr != '0': am = int(input(f'{byellow}Enter the number of steps: ' + reset)) makeMove(dr, am) elif paction == '3': print(f'{byellow}Profile: ' + reset) print(f'{byellow}Name: ' + name + reset) print(f'{byellow}HP: ' + str(hp) + reset) print(f'{byellow}Hunger: ' + str(hunger) + reset) print(f'{byellow}Money: ' + str(money) + reset) print(f'{byellow}Inventory: ' + reset) inv() if input(byellow + 'Enter 0 for exit: ' + reset) == '0': clear() makeMAP() else: print(f'{red}Command not found{reset}') elif paction == '4': print(f'{byellow}Inventory: ' + reset) inv() us = int(input(byellow + 'Enter item slot(0 exit): ' + reset)) useitem(us) elif paction == '0': save() print(byellow + ' Goodbye. Good luck to you. ' + reset) sys.exit(1) else: print(f'{red}Command not found{reset}') Python import random import time import os import sys import socket import platform import json ####clear#### def clear(): if platform.system() == 'Windows': os.system('cls') elif platform.system() == 'Linux': os.system('clear') clear() #####Colors#### reset = '\u001b[0m' green = '\033[92m' cyan = '\033[36m' yellow = '\033[33m' red = '\u001b[31m' magenta = '\u001b[35m' bmagenta = '\u001b[35;1m' byellow = '\u001b[33;1m' ####Player#### lang = 'en' singleplayer = True saved = False playerchar = f'{yellow}@{cyan}' name = '' hunger = 100 hp = 50 money = 0 defense = 10 damage = 0 inventory = [] if saved == False: inventory.append('If you are reading this then you are a cheater') xpos = random.choice(range(1, 40)) ypos = random.choice(range(1, 10)) ####boss#### bosshp = 100 bossdef = 20 bosdamage = 20 ####save#### def save(): global name global hp global hunger global money global damage global defense data = { "name": name, "hp": hp, "hunger": hunger, "money": money, "damage": damage, "defense": defense } to_json = {'inventory': inventory} with open('save_inventory.json', 'w') as f: json.dump(to_json, f) with open('save_profile.json', 'w') as f: json.dump(data, f) ####load#### def load(): global name global hp global hunger global money global damage global defense global inventory newinventory = [] with open('save_inventory.json') as file: templates = json.loads(file.read()) for section, commands in templates.items(): newinventory.append(commands) inventory = newinventory[0] with open('save_profile.json', 'r') as file: prof = json.load(file) hp = prof["hp"] hunger = prof["hunger"] name = prof["name"] money = prof["money"] damage = prof["damage"] defense = prof["defense"] saved == True #print(inventory) ####multiplayer#### #def multipl(mhost): #if mhost = True: #sock = socket.socket() #sock.bind(('', 9090)) #sock.bind(('', 9091)) #sock.listen(1) #sock.accept() ####Map#### chars = '~`-' mapS = [41, 11] objects = {} def mapSize(x, y): global mapS mapS = [x, y] def addObject(name, x, y, symbol): objects[name] = [x, y, symbol] def makeMAP(): for y in range(mapS[1]): line = '' numy = y + 1 for x in range(mapS[0]): numx = x + 1 for place in objects: if objects[place][:2] == [numx, numy]: line += objects[place][2] break else: t = random.choice(chars) line += t print(cyan + line) print(reset) ####Game#### if lang == 'en': ####Hunger#### def phunger(): global hunger if random.randint(0, 100) > 70: mhun = random.randint(1, 5) hunger -= mhun print(f'{red}Your hunger fell on: ' + str(mhun) + f'.{reset}') ####Alerts#### def alerts(): global hunger global hp if hunger < 10: print(f'{red}You are starving{reset}') mph = random.randint(5, 10) hp -= mph print(f'{red}HP left: ' + str(mph) + f'.{reset}') if hp < 5: print(f'{red}You are dying{reset}') if hp < 0: clear() print(f'{red}You are dead{reset}') sys.exit(1) ####inventory#### def inv(): i = 1 while i < len(inventory): print(bmagenta + str(i) + ': ' + inventory[i] + reset) i += 1 alerts() ####npc#### def NPC(): global money if random.randint(0,100) > 80: names = ['Carl', 'Lisa', 'Alex', 'Ivan'] items = ['salmon', 'bread', 'cod', 'metal piece', 'stone', 'wood piece'] print(f'{magenta}You saw a boat. You swam to her. A man sat in it.{reset}') print(f'{green}Hi my name is ' + random.choice(names) + f'. I am a merchant.{reset}') sp = random.randint(1, 5) si = random.choice(items) bi = random.choice(items) bp = random.randint(1, 5) print(f'{green}I sell ' + si + ' for ' + str(sp) +' coin(s). And buy ' + bi + ' for ' + str(bp) + f' coin(s){reset}') print(byellow + 'Your balance: ' + str(money) + reset) print(byellow + 'Your inventory: ' + reset) inv() bos = input(byellow + 'Enter sell or buy (0 for exit): ' + reset) if bos == 'buy': if money >= sp: money -= sp inventory.append(si) clear() addObject("Player", xpos, ypos, playerchar) makeMAP() else: print(red + 'You don\'t have enough money' + reset) elif bos == 'sell': sell = int(input(byellow + 'Enter item slot: ' + reset)) if bi == inventory[sell]: son = input(bmagenta + 'You want sell: ' + bi + '(y/n): ' + reset) if son == 'y': print(bmagenta + 'You sell: ' + inventory[sell] + '. You earn: ' + str(bp) + reset) money += bp del inventory[sell] else: print(green + ' Goodbye. Good luck to you. ' + reset) elif bos == '0': print(green + ' Goodbye. Good luck to you. ' + reset) else: print(red + 'Incorrect command!' + reset) ####*******#### def *******(fitime): fitime += 1 if fitime <= 30: for i in range(1, fitime): fish = ['salmon', 'cod', 'wood piece', 'wood piece', 'metal piece'] rfish = random.choice(fish) inventory.append(rfish) print(f'{magenta}You caught: ' + rfish + f'.{reset}') phunger() alerts() time.sleep(1) ####treasure#### def treasure(): global money commontreasure = ['salmon', 'cod', 'wood piece', 'stone'] raretreasure = ['small heal potion', 'metal piece', 'bread'] epictreasure = ['strange key', 'metal ingot', 'bread'] rt = random.randint(0, 100) if 95 > rt > 90: onet = random.choice(commontreasure) twot = random.choice(commontreasure) mon = random.randint(1, 10) money += mon inventory.append(onet) inventory.append(onet) print(bmagenta + 'You find common treasure. You get: ' + onet + ', ' + twot + '. You get: ' + str(mon) + ' coins.' + reset) time.sleep(1) if 98 > rt > 95: ronet = random.choice(raretreasure) rtwot = random.choice(raretreasure) mon = random.randint(10, 20) money += mon inventory.append(ronet) inventory.append(rtwot) print(bmagenta + 'You find rare treasure. You get: ' + ronet + ', ' + rtwot + '. You get: ' + str(mon) + ' coins.' + reset) time.sleep(1) if 100 > rt > 98: eonet = random.choice(epictreasure) etwot = random.choice(epictreasure) mon = random.randint(20, 30) money += mon inventory.append(eonet) inventory.append(etwot) print(bmagenta + 'You find epic treasure. You get: ' + eonet + ', ' + etwot + '. You get: ' + str(mon) + ' coins.' + reset) time.sleep(1) ####use item#### def useitem(item): global hunger global hp global damage global defense useitem = inventory[item] if useitem == 'salmon': print(bmagenta + 'You use: salmon. You get 10 hunger.' + reset) del inventory[item] hunger += 10 if useitem == 'cod': print(bmagenta + 'You use: cod. You get 10 hunger.' + reset) del inventory[item] hunger += 10 if useitem == 'bread': print(bmagenta + 'You use: bread. You get 30 hunger.' + reset) del inventory[item] hunger += 30 if useitem == 'small heal potion': print(bmagenta + 'You use: small heal potion. You get 10 hp.' + reset) del inventory[item] hp += 10 if useitem == 'basic sword': print(bmagenta + 'You equipped: basic sword. You get 10 damage.' + reset) del inventory[item] damage += 10 if useitem == 'rare sword': print(bmagenta + 'You equipped: rare sword. You get 30 damage.' + reset) del inventory[item] damage += 30 ####attack#### def mobattack(): global hp global damage global defense global name global money global bosdamage global bossdef global bosshp bar = ''' +----------------+ |1. attack | |2. use item | |0. exit | +----------------+ ''' mobs = ['shark', 'pirate'] mob = random.choice(mobs) mobhp = random.randint(1, 20) mobdamage = random.randint(1, 10) mobdefense = random.randint(1, 10) if random.randint(0, 100) > 95: print(bmagenta + mob + ' attacket you!' + reset) print(bmagenta + mob + ': ' + str(mobhp) + ' hp, ' + str(mobdamage) + ' damage, ' + str(mobdefense) + ' defense.') print(bmagenta + name + ': ' + str(hp) + ' hp, ' + str(damage) + ' damage, ' + str(defense) + ' defense.') while True: clear() makeMAP() print(byellow + mob + ': ' + str(mobhp) + ' hp, ' + str(mobdamage) + ' damage, ' + str(mobdefense) + ' defense.') print(byellow + name + ': ' + str(hp) + ' hp, ' + str(damage) + ' damage, ' + str(defense) + ' defense.') print(byellow + bar + reset) fch = input(byellow + '> ' + reset) if fch == '1': print(bmagenta + 'You attack ' + mob + reset) md = mobhp - (damage - mobdefense) if md >= mobhp: print(red + 'You cannot attack a mob. Because his defense is very strong.' + reset) elif md < mobhp: print(bmagenta + 'You damaged a mob in: ' + str(mobhp - md) + reset) mobhp = md print(bmagenta + mob + ' attack you' + reset) pd = hp - (mobdamage - defense) if pd >= hp: print(red + 'Mob cannot attack you. Because your defense is very strong.' + reset) elif pd < hp: print(bmagenta + 'Mob damaged you in: ' + str(hp - pd) + reset) hp = pd if mobhp <= 0 or hp <= 0: if mobhp <= 0: loot = random.randint(1, 10) print(bmagenta + 'You kill ' + mob + ' and get ' + str(loot) + 'coin(s)') money += loot break elif fch == '2': print(f'{byellow}Inventory: ' + reset) inv() aus = int(input(byellow + 'Enter item slot(0 exit): ' + reset)) useitem(aus) clear() elif fch == '0': print(bmagenta + 'You left the fight' + reset) break else: print(f'{red}Command not found{reset}') if random.randint(0, 1000) > 999: print(bmagenta + 'Boss attacket you!' + reset) print(bmagenta + 'Boss: ' + str(bosshp) + ' hp, ' + str(bosdamage) + ' damage, ' + str(bossdef) + ' defense.') print(bmagenta + name + ': ' + str(hp) + ' hp, ' + str(damage) + ' damage, ' + str(defense) + ' defense.') clear() while True: makeMAP() print(byellow + bar + reset) fch = input(byellow + '> ' + reset) if fch == '1': print(bmagenta + 'You attack boss' + reset) bd = bosshp - (damage - bossdef) if bd >= bosshp: print(red + 'You cannot attack a boss. Because his defense is very strong.' + reset) elif bd < bosshp: print(bmagenta + 'You damaged a boss in: ' + str(bosshp - bd) + reset) bosshp = bd print(bmagenta + 'Boss attack you' + reset) pd = hp - (bosdamage - defense) if pd >= hp: print(red + 'Boss cannot attack you. Because your defense is very strong.' + reset) elif pd < hp: print(bmagenta + 'The boss did damage in: ' + str(hp - pd) + reset) hp = pd if mobhp <= 0 or hp <= 0: if mobhp <= 0: loot = random.randint(1, 100) print(bmagenta + 'You kill boss and get ' + str(loot) + 'coin(s)') if random.randint(1, 100) > 70: print(bmagenta + 'You get rare sword!' + reset) inventory.append('rare sword') money += loot break elif fch == '2': print(f'{byellow}Inventory: ' + reset) inv() aus = int(input(byellow + 'Enter item slot(0 exit): ' + reset)) useitem(aus) clear() elif fch == '0': print(bmagenta + 'You left the fight' + reset) break else: print(f'{red}Command not found{reset}') alerts() time.sleep(2) clear() ####Move function#### def makeMove(direction, amount): global xpos global ypos if direction == 'w': for i in range(0, amount): if 1 >= amount > 50: print(red + 'Too small or large value' + reset) break else: if ypos > 0: ypos -= 1 elif ypos < 1: ypos += 11 clear() makeMAP() addObject("Player", xpos, ypos, playerchar) print(f'{magenta}Please wait...{reset}') phunger() alerts() NPC() treasure() mobattack() time.sleep(2) if direction == 's': for i in range(0, amount): if 1 >= amount > 50: print(red + 'Too small or large value' + reset) break else: if ypos < 12: ypos += 1 elif ypos > 11: ypos -= 11 clear() makeMAP() addObject("Player", xpos, ypos, playerchar) print(f'{magenta}Please wait...{reset}') print(str(xpos) + ' ' + str(ypos)) phunger() alerts() NPC() treasure() mobattack() time.sleep(2) if direction == 'd': for i in range(0, amount): if 1 >= amount > 50: print(red + 'Too small or large value' + reset) break else: if xpos < 42: xpos += 1 elif xpos >= 42: xpos -= 41 clear() addObject("Player", xpos, ypos, playerchar) makeMAP() print(f'{magenta}Please wait...{reset}') print(str(xpos) + ' ' + str(ypos)) phunger() alerts() NPC() treasure() mobattack() time.sleep(2) if direction == 'a': for i in range(0, amount): if 1 >= amount > 50: print(red + 'Too small or large value' + reset) break else: if xpos > 0: xpos -= 1 elif xpos <= 0: xpos += 41 clear() addObject("Player", xpos, ypos, playerchar) makeMAP() print(f'{magenta}Please wait...{reset}') print(str(xpos) + ' ' + str(ypos)) phunger() alerts() NPC() treasure() mobattack() time.sleep(2) ####main screen#### ms = ''' #----------------# | The legend | | of | | this ocean | #----------------# |1. singleplayer | |2. multiplayer | | 3. exit | #----------------# ''' ch = 0 while ch != 1: print(byellow + ms + reset) msc = input(byellow + '> ' + reset) if msc == '1': lon = input(byellow + ' Load player or create new: ' + reset) if lon == 'load': try: load() singleplayer = True print(bmagenta + 'Wait...' + reset) ch = 1 time.sleep(2) clear() saved = True except: print(red + 'File is missing or damaged' + reset) elif lon == 'new': name = input(byellow + 'Please enter your name: ' + reset) singleplayer = True print(bmagenta + 'Wait...' + reset) ch = 1 time.sleep(2) clear() else: print(red + 'Try enter load or new!' + reset) time.sleep(1) clear() elif msc == '2': singleplayer = False print(bmagenta + 'Sorry, multiplayer is not available right now' + reset) time.sleep(2) clear() elif msc == '3': print(byellow + ' Goodbye. Good luck to you. ' + reset) time.sleep(2) clear() sys.exit(1) else: clear() ####Menu#### addObject("Player", xpos, ypos, playerchar) makeMAP() if saved == False: inventory.append('basic sword') while True: aclist = ''' Action list: 1. ******* 2. move 3. profile 4. use item 0. exit ''' print(byellow + aclist) paction = input(yellow + '> ' + reset) if paction == '1': ftime = int(input(byellow + 'Enter ******* time: ' + reset)) *******(ftime) clear() makeMAP() elif paction == '2': dr = input(f'{byellow}Enter w, a, s, d to select a direction(0 for exit): ' + reset) if dr != '0': am = int(input(f'{byellow}Enter the number of steps: ' + reset)) makeMove(dr, am) elif paction == '3': print(f'{byellow}Profile: ' + reset) print(f'{byellow}Name: ' + name + reset) print(f'{byellow}HP: ' + str(hp) + reset) print(f'{byellow}Hunger: ' + str(hunger) + reset) print(f'{byellow}Money: ' + str(money) + reset) print(f'{byellow}Inventory: ' + reset) inv() if input(byellow + 'Enter 0 for exit: ' + reset) == '0': clear() makeMAP() else: print(f'{red}Command not found{reset}') elif paction == '4': print(f'{byellow}Inventory: ' + reset) inv() us = int(input(byellow + 'Enter item slot(0 exit): ' + reset)) useitem(us) elif paction == '0': save() print(byellow + ' Goodbye. Good luck to you. ' + reset) sys.exit(1) else: print(f'{red}Command not found{reset}')
Симпатия, этот скрипт выглядит как часть игры, написанной на Python. Вот основные моменты, которые можно выделить: 1. **Очистка экрана**: В зависимости от операционной системы (Windows или Linux) скрипт очищает экран консоли. 2. **Цвета**: Определены ANSI-коды для различных цветов текста, которые могут использоваться для вывода в консоли. 3. **Игрок**: Инициализируются переменные, связанные с игроком, такие как имя, здоровье (hp), голод (hunger), деньги (money), защита (defense), урон (damage) и инвентарь (inventory). Если игра не сохранена, в инвентарь добавляется строка "If you are reading this then you are a cheater". 4. **Босс**: Инициализируются параметры босса, такие как здоровье (bosshp), защита (bossdef) и урон (bosdamage). 5. **Сохранение и загрузка**: Реализованы функции `save()` и `load()`, которые сохраняют и загружают состояние игры в/из JSON-файлов. Состояние включает в себя параметры игрока и инвентарь. скрипт, вероятно, является частью более крупного проекта, так как здесь нет основной игровой логики или интерфейса взаимодействия с игроком.
FBernardeschi, я когда это отрыл, то был рад, потому что долго искал этот проект, и одновременно от кринжа умиралч смотря на свой код