SHARE
TWEET

Untitled

a guest Dec 14th, 2019 83 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import os
  2. import random
  3. import time
  4. import sys
  5. import math
  6.  
  7. xsize = 70
  8. ysize = 20
  9. vram=[]
  10. progs=['help','menu','tp','notepad']
  11.  
  12. def setup_window():                                                          # размер окна консоли
  13.     global xsize
  14.     global ysize
  15.     os.system("mode con cols={} lines={}".format(xsize,ysize+1))
  16.  
  17. setup_window()                             # задание размеров окна консоли
  18.  
  19.  
  20. def screen_cls():                          # очистка экрана (предотвращат мигание)
  21.     os.system("cls")
  22.  
  23. def vram_clear():                          # чистая видеопамять
  24.     global ysize
  25.     global xsize
  26.     global vram
  27.     vram=[]
  28.  
  29.     for i in range(xsize*ysize):
  30.         vram.append([' '])
  31.  
  32. vram_clear()                                                                 # инициализация "видеопамяти" при запуске
  33.  
  34. def render():                                                                # рендер переданной видепамяти
  35.     global vram
  36.     global xsize
  37.     global ysize
  38.  
  39.     for i in range(len(vram)):                                               # алгоритм рендера
  40.         if i%xsize==0:  print(vram[i][0], sep='')
  41.         else:           print(vram[i][0], end='', sep='')
  42.  
  43.  
  44. def vin(char,x,y):                    # функция доступа к знакомесатм по координатам
  45.     global vram
  46.     global xsize
  47.     ind = y * xsize + x+1                # вычисление смещения знакоместа
  48.  
  49.     vram[ind][0]=char             # запись значения в знакоместо
  50.     #return vram                  # археологи говорят, что это когда-то было нужно
  51.  
  52.  
  53. def draw_arr(arr):                                                           # оцтань от этого, потом переделаешь
  54.     for i in range(len(arr)):
  55.         vin('8',i,arr[i])
  56.         for j in range(0,arr[i]):
  57.             vin('|', i, j)
  58.     render()
  59.  
  60.  
  61. def vin_string(word, x, y):
  62.     for i in range(len(word)):
  63.         vin(word[i],x+i,y)
  64.  
  65. def tp():
  66.     global xsize
  67.     global ysize
  68.     vram_clear()
  69.     word = 'ti pidor'
  70.     for i in range(len(word)):
  71.         vin(word[i], i, 1)  # записть word в видепамять со 4 элемента 2 строки
  72.     for i in range(xsize):
  73.         vin('_', i, 0)
  74.     render()
  75.     cin()
  76.  
  77. def help():
  78.     global xsize
  79.     global ysize
  80.     vram_clear()
  81.  
  82.     vin_string('ширина окна - {} знакомест'.format(xsize), 0, 0)
  83.     vin_string('высота окна - {} знакомест'.format(ysize), 0, 1)
  84.     vin_string('_'*xsize, 0, 2)
  85.  
  86.  
  87.     render()
  88.     cin()
  89.  
  90. def menu():
  91.     global xsize
  92.     global ysize
  93.     global progs
  94.     vram_clear()
  95.     render()
  96.  
  97.     vin_string('PythonOs v0.001|', 0, 0)
  98.     vin_string('͞' * xsize, 0, 1)
  99.  
  100.     vin_string('aviable programs: ',1,2)
  101.     for i in range(len(progs)):
  102.         vin_string('- '+progs[i], 0, 3+i)
  103.  
  104.     render()
  105.     cin()
  106.  
  107. def notepad():
  108.     global xsize
  109.     global ysize
  110.  
  111.     vram_clear()
  112.     vin_string('PythonOs NotePad v0.0001', 0, 0)
  113.     vin_string('͞' * xsize, 0, 1)
  114.     for i in range(2,ysize-2):
  115.         b=str(i-1)
  116.         if len(b)<2:
  117.             b+=' '
  118.         vin_string(b+':', 0, i)
  119.     render()
  120.     inp = ''
  121.     count=2;
  122.  
  123.     while True:
  124.         print()
  125.         inp = input()
  126.         render()
  127.         if inp == 'close' or inp == 'exit' or inp == 'quit' or inp=='menu':
  128.             menu()
  129.         elif inp == 'clear':
  130.             notepad()
  131.         else:
  132.             vin(inp,3,count)
  133.             render()
  134.             count+=1;
  135.  
  136. def zastavka(t):
  137.     vram_clear()
  138.     vin_string('͞' * xsize, 0, 4)
  139.     vin_string('͞' * xsize, 0, 13)
  140.     vin_string(' '*(xsize//2-len('PythonOS')//2)+'PythonOS', 0, 15)
  141.     render()
  142.     for i in range(xsize):
  143.         vin('=',i,16)
  144.         time.sleep(random.randint(5,10)/100)
  145.         vin('0',i,8+int(math.sin(i/2)*4))
  146.         render()
  147.  
  148. def cin():
  149.     global progs
  150.     global xsize
  151.     global ysize
  152.     global progs
  153.     inp = ''
  154.  
  155.     while not inp:
  156.         print()
  157.         inp = input()
  158.         render()
  159.  
  160.     if inp in progs:
  161.         exec('{}()'.format(inp))
  162.  
  163.  
  164. def main():
  165.     global xsize
  166.     global ysize
  167.     global vram
  168.     zastavka(2)
  169.     menu()
  170.  
  171.  
  172.  
  173. main()
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top