Change indentation to spaces

This commit is contained in:
Pavle Portic 2021-01-17 18:33:13 +01:00
parent f0b9eaa0c3
commit 5706ccf986
Signed by: TheEdgeOfRage
GPG Key ID: 6758ACE46AA2A849
3 changed files with 604 additions and 590 deletions

9
.editorconfig Normal file
View File

@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 4

984
colors.py
View File

@ -10,505 +10,505 @@ import curses
def init_21_colors(): def init_21_colors():
curses.init_color(1, 0, 0, 0) curses.init_color(1, 0, 0, 0)
curses.init_color(2, 1000, 0, 0) curses.init_color(2, 1000, 0, 0)
curses.init_color(3, 1000, 333, 0) curses.init_color(3, 1000, 333, 0)
curses.init_color(4, 1000, 666, 0) curses.init_color(4, 1000, 666, 0)
curses.init_color(5, 1000, 1000, 0) curses.init_color(5, 1000, 1000, 0)
curses.init_color(6, 666, 1000, 0) curses.init_color(6, 666, 1000, 0)
curses.init_color(7, 333, 1000, 0) curses.init_color(7, 333, 1000, 0)
curses.init_color(8, 0, 1000, 0) curses.init_color(8, 0, 1000, 0)
curses.init_color(9, 0, 1000, 333) curses.init_color(9, 0, 1000, 333)
curses.init_color(10, 0, 1000, 666) curses.init_color(10, 0, 1000, 666)
curses.init_color(11, 0, 1000, 1000) curses.init_color(11, 0, 1000, 1000)
curses.init_color(12, 0, 666, 1000) curses.init_color(12, 0, 666, 1000)
curses.init_color(13, 0, 333, 1000) curses.init_color(13, 0, 333, 1000)
curses.init_color(14, 0, 0, 1000) curses.init_color(14, 0, 0, 1000)
curses.init_color(15, 333, 0, 1000) curses.init_color(15, 333, 0, 1000)
curses.init_color(16, 666, 0, 1000) curses.init_color(16, 666, 0, 1000)
curses.init_color(17, 1000, 0, 1000) curses.init_color(17, 1000, 0, 1000)
curses.init_color(18, 1000, 0, 666) curses.init_color(18, 1000, 0, 666)
curses.init_color(19, 1000, 0, 333) curses.init_color(19, 1000, 0, 333)
curses.init_color(20, 1000, 0, 0) curses.init_color(20, 1000, 0, 0)
curses.init_color(21, 800, 800, 800) curses.init_color(21, 800, 800, 800)
curses.init_color(22, 50, 50, 50) curses.init_color(22, 50, 50, 50)
curses.init_pair(1, 0, 1) curses.init_pair(1, 0, 1)
curses.init_pair(2, 0, 2) curses.init_pair(2, 0, 2)
curses.init_pair(3, 0, 3) curses.init_pair(3, 0, 3)
curses.init_pair(4, 0, 4) curses.init_pair(4, 0, 4)
curses.init_pair(5, 0, 5) curses.init_pair(5, 0, 5)
curses.init_pair(6, 0, 6) curses.init_pair(6, 0, 6)
curses.init_pair(7, 0, 7) curses.init_pair(7, 0, 7)
curses.init_pair(8, 0, 8) curses.init_pair(8, 0, 8)
curses.init_pair(9, 0, 9) curses.init_pair(9, 0, 9)
curses.init_pair(10, 0, 10) curses.init_pair(10, 0, 10)
curses.init_pair(11, 0, 11) curses.init_pair(11, 0, 11)
curses.init_pair(12, 0, 12) curses.init_pair(12, 0, 12)
curses.init_pair(13, 0, 13) curses.init_pair(13, 0, 13)
curses.init_pair(14, 0, 14) curses.init_pair(14, 0, 14)
curses.init_pair(15, 0, 15) curses.init_pair(15, 0, 15)
curses.init_pair(16, 0, 16) curses.init_pair(16, 0, 16)
curses.init_pair(17, 0, 17) curses.init_pair(17, 0, 17)
curses.init_pair(18, 0, 18) curses.init_pair(18, 0, 18)
curses.init_pair(19, 0, 19) curses.init_pair(19, 0, 19)
curses.init_pair(20, 0, 20) curses.init_pair(20, 0, 20)
curses.init_pair(21, 21, 22) curses.init_pair(21, 21, 22)
return 21 return 21
def init_21_monochrome(): def init_21_monochrome():
curses.init_color(1, 0, 0, 0) curses.init_color(1, 0, 0, 0)
curses.init_color(2, 50, 50, 50) curses.init_color(2, 50, 50, 50)
curses.init_color(3, 100, 100, 100) curses.init_color(3, 100, 100, 100)
curses.init_color(4, 150, 150, 150) curses.init_color(4, 150, 150, 150)
curses.init_color(5, 200, 200, 200) curses.init_color(5, 200, 200, 200)
curses.init_color(6, 250, 250, 250) curses.init_color(6, 250, 250, 250)
curses.init_color(7, 300, 300, 300) curses.init_color(7, 300, 300, 300)
curses.init_color(8, 350, 350, 350) curses.init_color(8, 350, 350, 350)
curses.init_color(9, 400, 400, 400) curses.init_color(9, 400, 400, 400)
curses.init_color(10, 450, 450, 450) curses.init_color(10, 450, 450, 450)
curses.init_color(11, 500, 500, 500) curses.init_color(11, 500, 500, 500)
curses.init_color(12, 550, 550, 550) curses.init_color(12, 550, 550, 550)
curses.init_color(13, 600, 600, 600) curses.init_color(13, 600, 600, 600)
curses.init_color(14, 650, 650, 650) curses.init_color(14, 650, 650, 650)
curses.init_color(15, 700, 700, 700) curses.init_color(15, 700, 700, 700)
curses.init_color(16, 750, 750, 750) curses.init_color(16, 750, 750, 750)
curses.init_color(17, 800, 800, 800) curses.init_color(17, 800, 800, 800)
curses.init_color(18, 850, 850, 850) curses.init_color(18, 850, 850, 850)
curses.init_color(19, 900, 900, 900) curses.init_color(19, 900, 900, 900)
curses.init_color(20, 950, 950, 950) curses.init_color(20, 950, 950, 950)
curses.init_pair(1, 0, 1) curses.init_pair(1, 0, 1)
curses.init_pair(2, 0, 2) curses.init_pair(2, 0, 2)
curses.init_pair(3, 0, 3) curses.init_pair(3, 0, 3)
curses.init_pair(4, 0, 4) curses.init_pair(4, 0, 4)
curses.init_pair(5, 0, 5) curses.init_pair(5, 0, 5)
curses.init_pair(6, 0, 6) curses.init_pair(6, 0, 6)
curses.init_pair(7, 0, 7) curses.init_pair(7, 0, 7)
curses.init_pair(8, 0, 8) curses.init_pair(8, 0, 8)
curses.init_pair(9, 0, 9) curses.init_pair(9, 0, 9)
curses.init_pair(10, 0, 10) curses.init_pair(10, 0, 10)
curses.init_pair(11, 0, 11) curses.init_pair(11, 0, 11)
curses.init_pair(12, 0, 12) curses.init_pair(12, 0, 12)
curses.init_pair(13, 0, 13) curses.init_pair(13, 0, 13)
curses.init_pair(14, 0, 14) curses.init_pair(14, 0, 14)
curses.init_pair(15, 0, 15) curses.init_pair(15, 0, 15)
curses.init_pair(16, 0, 16) curses.init_pair(16, 0, 16)
curses.init_pair(17, 0, 17) curses.init_pair(17, 0, 17)
curses.init_pair(18, 0, 18) curses.init_pair(18, 0, 18)
curses.init_pair(19, 0, 19) curses.init_pair(19, 0, 19)
curses.init_pair(20, 0, 20) curses.init_pair(20, 0, 20)
curses.init_pair(21, 17, 2) curses.init_pair(21, 17, 2)
return 21 return 21
def init_101_colors(): def init_101_colors():
curses.init_color(1, 0, 0, 0) curses.init_color(1, 0, 0, 0)
curses.init_color(2, 800, 159, 159) curses.init_color(2, 800, 159, 159)
curses.init_color(3, 800, 199, 159) curses.init_color(3, 800, 199, 159)
curses.init_color(4, 800, 238, 159) curses.init_color(4, 800, 238, 159)
curses.init_color(5, 800, 277, 159) curses.init_color(5, 800, 277, 159)
curses.init_color(6, 800, 316, 159) curses.init_color(6, 800, 316, 159)
curses.init_color(7, 800, 355, 159) curses.init_color(7, 800, 355, 159)
curses.init_color(8, 800, 395, 159) curses.init_color(8, 800, 395, 159)
curses.init_color(9, 800, 434, 159) curses.init_color(9, 800, 434, 159)
curses.init_color(10, 800, 473, 159) curses.init_color(10, 800, 473, 159)
curses.init_color(11, 800, 512, 159) curses.init_color(11, 800, 512, 159)
curses.init_color(12, 800, 551, 159) curses.init_color(12, 800, 551, 159)
curses.init_color(13, 800, 591, 159) curses.init_color(13, 800, 591, 159)
curses.init_color(14, 800, 630, 159) curses.init_color(14, 800, 630, 159)
curses.init_color(15, 800, 669, 159) curses.init_color(15, 800, 669, 159)
curses.init_color(16, 800, 708, 159) curses.init_color(16, 800, 708, 159)
curses.init_color(17, 800, 747, 159) curses.init_color(17, 800, 747, 159)
curses.init_color(18, 800, 786, 159) curses.init_color(18, 800, 786, 159)
curses.init_color(19, 773, 800, 159) curses.init_color(19, 773, 800, 159)
curses.init_color(20, 734, 800, 159) curses.init_color(20, 734, 800, 159)
curses.init_color(21, 695, 800, 159) curses.init_color(21, 695, 800, 159)
curses.init_color(22, 656, 800, 159) curses.init_color(22, 656, 800, 159)
curses.init_color(23, 617, 800, 159) curses.init_color(23, 617, 800, 159)
curses.init_color(24, 577, 800, 159) curses.init_color(24, 577, 800, 159)
curses.init_color(25, 538, 800, 159) curses.init_color(25, 538, 800, 159)
curses.init_color(26, 499, 800, 159) curses.init_color(26, 499, 800, 159)
curses.init_color(27, 460, 800, 159) curses.init_color(27, 460, 800, 159)
curses.init_color(28, 421, 800, 159) curses.init_color(28, 421, 800, 159)
curses.init_color(29, 382, 800, 159) curses.init_color(29, 382, 800, 159)
curses.init_color(30, 342, 800, 159) curses.init_color(30, 342, 800, 159)
curses.init_color(31, 303, 800, 159) curses.init_color(31, 303, 800, 159)
curses.init_color(32, 264, 800, 159) curses.init_color(32, 264, 800, 159)
curses.init_color(33, 225, 800, 159) curses.init_color(33, 225, 800, 159)
curses.init_color(34, 186, 800, 159) curses.init_color(34, 186, 800, 159)
curses.init_color(35, 159, 800, 173) curses.init_color(35, 159, 800, 173)
curses.init_color(36, 159, 800, 212) curses.init_color(36, 159, 800, 212)
curses.init_color(37, 159, 800, 251) curses.init_color(37, 159, 800, 251)
curses.init_color(38, 159, 800, 290) curses.init_color(38, 159, 800, 290)
curses.init_color(39, 159, 800, 329) curses.init_color(39, 159, 800, 329)
curses.init_color(40, 159, 800, 368) curses.init_color(40, 159, 800, 368)
curses.init_color(41, 159, 800, 408) curses.init_color(41, 159, 800, 408)
curses.init_color(42, 159, 800, 447) curses.init_color(42, 159, 800, 447)
curses.init_color(43, 159, 800, 486) curses.init_color(43, 159, 800, 486)
curses.init_color(44, 159, 800, 525) curses.init_color(44, 159, 800, 525)
curses.init_color(45, 159, 800, 564) curses.init_color(45, 159, 800, 564)
curses.init_color(46, 159, 800, 604) curses.init_color(46, 159, 800, 604)
curses.init_color(47, 159, 800, 643) curses.init_color(47, 159, 800, 643)
curses.init_color(48, 159, 800, 682) curses.init_color(48, 159, 800, 682)
curses.init_color(49, 159, 800, 721) curses.init_color(49, 159, 800, 721)
curses.init_color(50, 159, 800, 760) curses.init_color(50, 159, 800, 760)
curses.init_color(51, 159, 800, 799) curses.init_color(51, 159, 800, 799)
curses.init_color(52, 159, 760, 800) curses.init_color(52, 159, 760, 800)
curses.init_color(53, 159, 721, 800) curses.init_color(53, 159, 721, 800)
curses.init_color(54, 159, 682, 800) curses.init_color(54, 159, 682, 800)
curses.init_color(55, 159, 643, 800) curses.init_color(55, 159, 643, 800)
curses.init_color(56, 159, 604, 800) curses.init_color(56, 159, 604, 800)
curses.init_color(57, 159, 564, 800) curses.init_color(57, 159, 564, 800)
curses.init_color(58, 159, 525, 800) curses.init_color(58, 159, 525, 800)
curses.init_color(59, 159, 486, 800) curses.init_color(59, 159, 486, 800)
curses.init_color(60, 159, 447, 800) curses.init_color(60, 159, 447, 800)
curses.init_color(61, 159, 408, 800) curses.init_color(61, 159, 408, 800)
curses.init_color(62, 159, 368, 800) curses.init_color(62, 159, 368, 800)
curses.init_color(63, 159, 329, 800) curses.init_color(63, 159, 329, 800)
curses.init_color(64, 159, 290, 800) curses.init_color(64, 159, 290, 800)
curses.init_color(65, 159, 251, 800) curses.init_color(65, 159, 251, 800)
curses.init_color(66, 159, 212, 800) curses.init_color(66, 159, 212, 800)
curses.init_color(67, 159, 173, 800) curses.init_color(67, 159, 173, 800)
curses.init_color(68, 186, 159, 800) curses.init_color(68, 186, 159, 800)
curses.init_color(69, 225, 159, 800) curses.init_color(69, 225, 159, 800)
curses.init_color(70, 264, 159, 800) curses.init_color(70, 264, 159, 800)
curses.init_color(71, 303, 159, 800) curses.init_color(71, 303, 159, 800)
curses.init_color(72, 342, 159, 800) curses.init_color(72, 342, 159, 800)
curses.init_color(73, 382, 159, 800) curses.init_color(73, 382, 159, 800)
curses.init_color(74, 421, 159, 800) curses.init_color(74, 421, 159, 800)
curses.init_color(75, 460, 159, 800) curses.init_color(75, 460, 159, 800)
curses.init_color(76, 499, 159, 800) curses.init_color(76, 499, 159, 800)
curses.init_color(77, 538, 159, 800) curses.init_color(77, 538, 159, 800)
curses.init_color(78, 577, 159, 800) curses.init_color(78, 577, 159, 800)
curses.init_color(79, 617, 159, 800) curses.init_color(79, 617, 159, 800)
curses.init_color(80, 656, 159, 800) curses.init_color(80, 656, 159, 800)
curses.init_color(81, 695, 159, 800) curses.init_color(81, 695, 159, 800)
curses.init_color(82, 734, 159, 800) curses.init_color(82, 734, 159, 800)
curses.init_color(83, 773, 159, 800) curses.init_color(83, 773, 159, 800)
curses.init_color(84, 800, 159, 786) curses.init_color(84, 800, 159, 786)
curses.init_color(85, 800, 159, 747) curses.init_color(85, 800, 159, 747)
curses.init_color(86, 800, 159, 708) curses.init_color(86, 800, 159, 708)
curses.init_color(87, 800, 159, 669) curses.init_color(87, 800, 159, 669)
curses.init_color(88, 800, 159, 630) curses.init_color(88, 800, 159, 630)
curses.init_color(89, 800, 159, 591) curses.init_color(89, 800, 159, 591)
curses.init_color(90, 800, 159, 551) curses.init_color(90, 800, 159, 551)
curses.init_color(91, 800, 159, 512) curses.init_color(91, 800, 159, 512)
curses.init_color(92, 800, 159, 473) curses.init_color(92, 800, 159, 473)
curses.init_color(93, 800, 159, 434) curses.init_color(93, 800, 159, 434)
curses.init_color(94, 800, 159, 395) curses.init_color(94, 800, 159, 395)
curses.init_color(95, 800, 159, 355) curses.init_color(95, 800, 159, 355)
curses.init_color(96, 800, 159, 316) curses.init_color(96, 800, 159, 316)
curses.init_color(97, 800, 159, 277) curses.init_color(97, 800, 159, 277)
curses.init_color(98, 800, 159, 238) curses.init_color(98, 800, 159, 238)
curses.init_color(99, 800, 159, 199) curses.init_color(99, 800, 159, 199)
curses.init_color(100, 800, 159, 159) curses.init_color(100, 800, 159, 159)
curses.init_color(101, 800, 800, 800) curses.init_color(101, 800, 800, 800)
curses.init_color(102, 50, 50, 50) curses.init_color(102, 50, 50, 50)
curses.init_pair(1, 0, 1) curses.init_pair(1, 0, 1)
curses.init_pair(2, 0, 2) curses.init_pair(2, 0, 2)
curses.init_pair(3, 0, 3) curses.init_pair(3, 0, 3)
curses.init_pair(4, 0, 4) curses.init_pair(4, 0, 4)
curses.init_pair(5, 0, 5) curses.init_pair(5, 0, 5)
curses.init_pair(6, 0, 6) curses.init_pair(6, 0, 6)
curses.init_pair(7, 0, 7) curses.init_pair(7, 0, 7)
curses.init_pair(8, 0, 8) curses.init_pair(8, 0, 8)
curses.init_pair(9, 0, 9) curses.init_pair(9, 0, 9)
curses.init_pair(10, 0, 10) curses.init_pair(10, 0, 10)
curses.init_pair(11, 0, 11) curses.init_pair(11, 0, 11)
curses.init_pair(12, 0, 12) curses.init_pair(12, 0, 12)
curses.init_pair(13, 0, 13) curses.init_pair(13, 0, 13)
curses.init_pair(14, 0, 14) curses.init_pair(14, 0, 14)
curses.init_pair(15, 0, 15) curses.init_pair(15, 0, 15)
curses.init_pair(16, 0, 16) curses.init_pair(16, 0, 16)
curses.init_pair(17, 0, 17) curses.init_pair(17, 0, 17)
curses.init_pair(18, 0, 18) curses.init_pair(18, 0, 18)
curses.init_pair(19, 0, 19) curses.init_pair(19, 0, 19)
curses.init_pair(20, 0, 20) curses.init_pair(20, 0, 20)
curses.init_pair(21, 0, 21) curses.init_pair(21, 0, 21)
curses.init_pair(22, 0, 22) curses.init_pair(22, 0, 22)
curses.init_pair(23, 0, 23) curses.init_pair(23, 0, 23)
curses.init_pair(24, 0, 24) curses.init_pair(24, 0, 24)
curses.init_pair(25, 0, 25) curses.init_pair(25, 0, 25)
curses.init_pair(26, 0, 26) curses.init_pair(26, 0, 26)
curses.init_pair(27, 0, 27) curses.init_pair(27, 0, 27)
curses.init_pair(28, 0, 28) curses.init_pair(28, 0, 28)
curses.init_pair(29, 0, 29) curses.init_pair(29, 0, 29)
curses.init_pair(30, 0, 30) curses.init_pair(30, 0, 30)
curses.init_pair(31, 0, 31) curses.init_pair(31, 0, 31)
curses.init_pair(32, 0, 32) curses.init_pair(32, 0, 32)
curses.init_pair(33, 0, 33) curses.init_pair(33, 0, 33)
curses.init_pair(34, 0, 34) curses.init_pair(34, 0, 34)
curses.init_pair(35, 0, 35) curses.init_pair(35, 0, 35)
curses.init_pair(36, 0, 36) curses.init_pair(36, 0, 36)
curses.init_pair(37, 0, 37) curses.init_pair(37, 0, 37)
curses.init_pair(38, 0, 38) curses.init_pair(38, 0, 38)
curses.init_pair(39, 0, 39) curses.init_pair(39, 0, 39)
curses.init_pair(40, 0, 40) curses.init_pair(40, 0, 40)
curses.init_pair(41, 0, 41) curses.init_pair(41, 0, 41)
curses.init_pair(42, 0, 42) curses.init_pair(42, 0, 42)
curses.init_pair(43, 0, 43) curses.init_pair(43, 0, 43)
curses.init_pair(44, 0, 44) curses.init_pair(44, 0, 44)
curses.init_pair(45, 0, 45) curses.init_pair(45, 0, 45)
curses.init_pair(46, 0, 46) curses.init_pair(46, 0, 46)
curses.init_pair(47, 0, 47) curses.init_pair(47, 0, 47)
curses.init_pair(48, 0, 48) curses.init_pair(48, 0, 48)
curses.init_pair(49, 0, 49) curses.init_pair(49, 0, 49)
curses.init_pair(50, 0, 50) curses.init_pair(50, 0, 50)
curses.init_pair(51, 0, 51) curses.init_pair(51, 0, 51)
curses.init_pair(52, 0, 52) curses.init_pair(52, 0, 52)
curses.init_pair(53, 0, 53) curses.init_pair(53, 0, 53)
curses.init_pair(54, 0, 54) curses.init_pair(54, 0, 54)
curses.init_pair(55, 0, 55) curses.init_pair(55, 0, 55)
curses.init_pair(56, 0, 56) curses.init_pair(56, 0, 56)
curses.init_pair(57, 0, 57) curses.init_pair(57, 0, 57)
curses.init_pair(58, 0, 58) curses.init_pair(58, 0, 58)
curses.init_pair(59, 0, 59) curses.init_pair(59, 0, 59)
curses.init_pair(60, 0, 60) curses.init_pair(60, 0, 60)
curses.init_pair(61, 0, 61) curses.init_pair(61, 0, 61)
curses.init_pair(62, 0, 62) curses.init_pair(62, 0, 62)
curses.init_pair(63, 0, 63) curses.init_pair(63, 0, 63)
curses.init_pair(64, 0, 64) curses.init_pair(64, 0, 64)
curses.init_pair(65, 0, 65) curses.init_pair(65, 0, 65)
curses.init_pair(66, 0, 66) curses.init_pair(66, 0, 66)
curses.init_pair(67, 0, 67) curses.init_pair(67, 0, 67)
curses.init_pair(68, 0, 68) curses.init_pair(68, 0, 68)
curses.init_pair(69, 0, 69) curses.init_pair(69, 0, 69)
curses.init_pair(70, 0, 70) curses.init_pair(70, 0, 70)
curses.init_pair(71, 0, 71) curses.init_pair(71, 0, 71)
curses.init_pair(72, 0, 72) curses.init_pair(72, 0, 72)
curses.init_pair(73, 0, 73) curses.init_pair(73, 0, 73)
curses.init_pair(74, 0, 74) curses.init_pair(74, 0, 74)
curses.init_pair(75, 0, 75) curses.init_pair(75, 0, 75)
curses.init_pair(76, 0, 76) curses.init_pair(76, 0, 76)
curses.init_pair(77, 0, 77) curses.init_pair(77, 0, 77)
curses.init_pair(78, 0, 78) curses.init_pair(78, 0, 78)
curses.init_pair(79, 0, 79) curses.init_pair(79, 0, 79)
curses.init_pair(80, 0, 80) curses.init_pair(80, 0, 80)
curses.init_pair(81, 0, 81) curses.init_pair(81, 0, 81)
curses.init_pair(82, 0, 82) curses.init_pair(82, 0, 82)
curses.init_pair(83, 0, 83) curses.init_pair(83, 0, 83)
curses.init_pair(84, 0, 84) curses.init_pair(84, 0, 84)
curses.init_pair(85, 0, 85) curses.init_pair(85, 0, 85)
curses.init_pair(86, 0, 86) curses.init_pair(86, 0, 86)
curses.init_pair(87, 0, 87) curses.init_pair(87, 0, 87)
curses.init_pair(88, 0, 88) curses.init_pair(88, 0, 88)
curses.init_pair(89, 0, 89) curses.init_pair(89, 0, 89)
curses.init_pair(90, 0, 90) curses.init_pair(90, 0, 90)
curses.init_pair(91, 0, 91) curses.init_pair(91, 0, 91)
curses.init_pair(92, 0, 92) curses.init_pair(92, 0, 92)
curses.init_pair(93, 0, 93) curses.init_pair(93, 0, 93)
curses.init_pair(94, 0, 94) curses.init_pair(94, 0, 94)
curses.init_pair(95, 0, 95) curses.init_pair(95, 0, 95)
curses.init_pair(96, 0, 96) curses.init_pair(96, 0, 96)
curses.init_pair(97, 0, 97) curses.init_pair(97, 0, 97)
curses.init_pair(98, 0, 98) curses.init_pair(98, 0, 98)
curses.init_pair(99, 0, 99) curses.init_pair(99, 0, 99)
curses.init_pair(100, 0, 100) curses.init_pair(100, 0, 100)
curses.init_pair(101, 101, 102) curses.init_pair(101, 101, 102)
return 101 return 101
def init_101_monochrome(): def init_101_monochrome():
curses.init_color(1, 0, 0, 0) curses.init_color(1, 0, 0, 0)
curses.init_color(2, 10, 10, 10) curses.init_color(2, 10, 10, 10)
curses.init_color(3, 20, 20, 20) curses.init_color(3, 20, 20, 20)
curses.init_color(4, 30, 30, 30) curses.init_color(4, 30, 30, 30)
curses.init_color(5, 40, 40, 40) curses.init_color(5, 40, 40, 40)
curses.init_color(6, 50, 50, 50) curses.init_color(6, 50, 50, 50)
curses.init_color(7, 60, 60, 60) curses.init_color(7, 60, 60, 60)
curses.init_color(8, 70, 70, 70) curses.init_color(8, 70, 70, 70)
curses.init_color(9, 80, 80, 80) curses.init_color(9, 80, 80, 80)
curses.init_color(10, 90, 90, 90) curses.init_color(10, 90, 90, 90)
curses.init_color(11, 100, 100, 100) curses.init_color(11, 100, 100, 100)
curses.init_color(12, 110, 110, 110) curses.init_color(12, 110, 110, 110)
curses.init_color(13, 120, 120, 120) curses.init_color(13, 120, 120, 120)
curses.init_color(14, 130, 130, 130) curses.init_color(14, 130, 130, 130)
curses.init_color(15, 140, 140, 140) curses.init_color(15, 140, 140, 140)
curses.init_color(16, 150, 150, 150) curses.init_color(16, 150, 150, 150)
curses.init_color(17, 160, 160, 160) curses.init_color(17, 160, 160, 160)
curses.init_color(18, 170, 170, 170) curses.init_color(18, 170, 170, 170)
curses.init_color(19, 180, 180, 180) curses.init_color(19, 180, 180, 180)
curses.init_color(20, 190, 190, 190) curses.init_color(20, 190, 190, 190)
curses.init_color(21, 200, 200, 200) curses.init_color(21, 200, 200, 200)
curses.init_color(22, 210, 210, 210) curses.init_color(22, 210, 210, 210)
curses.init_color(23, 220, 220, 220) curses.init_color(23, 220, 220, 220)
curses.init_color(24, 230, 230, 230) curses.init_color(24, 230, 230, 230)
curses.init_color(25, 240, 240, 240) curses.init_color(25, 240, 240, 240)
curses.init_color(26, 250, 250, 250) curses.init_color(26, 250, 250, 250)
curses.init_color(27, 260, 260, 260) curses.init_color(27, 260, 260, 260)
curses.init_color(28, 270, 270, 270) curses.init_color(28, 270, 270, 270)
curses.init_color(29, 280, 280, 280) curses.init_color(29, 280, 280, 280)
curses.init_color(30, 290, 290, 290) curses.init_color(30, 290, 290, 290)
curses.init_color(31, 300, 300, 300) curses.init_color(31, 300, 300, 300)
curses.init_color(32, 310, 310, 310) curses.init_color(32, 310, 310, 310)
curses.init_color(33, 320, 320, 320) curses.init_color(33, 320, 320, 320)
curses.init_color(34, 330, 330, 330) curses.init_color(34, 330, 330, 330)
curses.init_color(35, 340, 340, 340) curses.init_color(35, 340, 340, 340)
curses.init_color(36, 350, 350, 350) curses.init_color(36, 350, 350, 350)
curses.init_color(37, 360, 360, 360) curses.init_color(37, 360, 360, 360)
curses.init_color(38, 370, 370, 370) curses.init_color(38, 370, 370, 370)
curses.init_color(39, 380, 380, 380) curses.init_color(39, 380, 380, 380)
curses.init_color(40, 390, 390, 390) curses.init_color(40, 390, 390, 390)
curses.init_color(41, 400, 400, 400) curses.init_color(41, 400, 400, 400)
curses.init_color(42, 410, 410, 410) curses.init_color(42, 410, 410, 410)
curses.init_color(43, 420, 420, 420) curses.init_color(43, 420, 420, 420)
curses.init_color(44, 430, 430, 430) curses.init_color(44, 430, 430, 430)
curses.init_color(45, 440, 440, 440) curses.init_color(45, 440, 440, 440)
curses.init_color(46, 450, 450, 450) curses.init_color(46, 450, 450, 450)
curses.init_color(47, 460, 460, 460) curses.init_color(47, 460, 460, 460)
curses.init_color(48, 470, 470, 470) curses.init_color(48, 470, 470, 470)
curses.init_color(49, 480, 480, 480) curses.init_color(49, 480, 480, 480)
curses.init_color(50, 490, 490, 490) curses.init_color(50, 490, 490, 490)
curses.init_color(51, 500, 500, 500) curses.init_color(51, 500, 500, 500)
curses.init_color(52, 510, 510, 510) curses.init_color(52, 510, 510, 510)
curses.init_color(53, 520, 520, 520) curses.init_color(53, 520, 520, 520)
curses.init_color(54, 530, 530, 530) curses.init_color(54, 530, 530, 530)
curses.init_color(55, 540, 540, 540) curses.init_color(55, 540, 540, 540)
curses.init_color(56, 550, 550, 550) curses.init_color(56, 550, 550, 550)
curses.init_color(57, 560, 560, 560) curses.init_color(57, 560, 560, 560)
curses.init_color(58, 570, 570, 570) curses.init_color(58, 570, 570, 570)
curses.init_color(59, 580, 580, 580) curses.init_color(59, 580, 580, 580)
curses.init_color(60, 590, 590, 590) curses.init_color(60, 590, 590, 590)
curses.init_color(61, 600, 600, 600) curses.init_color(61, 600, 600, 600)
curses.init_color(62, 610, 610, 610) curses.init_color(62, 610, 610, 610)
curses.init_color(63, 620, 620, 620) curses.init_color(63, 620, 620, 620)
curses.init_color(64, 630, 630, 630) curses.init_color(64, 630, 630, 630)
curses.init_color(65, 640, 640, 640) curses.init_color(65, 640, 640, 640)
curses.init_color(66, 650, 650, 650) curses.init_color(66, 650, 650, 650)
curses.init_color(67, 660, 660, 660) curses.init_color(67, 660, 660, 660)
curses.init_color(68, 670, 670, 670) curses.init_color(68, 670, 670, 670)
curses.init_color(69, 680, 680, 680) curses.init_color(69, 680, 680, 680)
curses.init_color(70, 690, 690, 690) curses.init_color(70, 690, 690, 690)
curses.init_color(71, 700, 700, 700) curses.init_color(71, 700, 700, 700)
curses.init_color(72, 710, 710, 710) curses.init_color(72, 710, 710, 710)
curses.init_color(73, 720, 720, 720) curses.init_color(73, 720, 720, 720)
curses.init_color(74, 730, 730, 730) curses.init_color(74, 730, 730, 730)
curses.init_color(75, 740, 740, 740) curses.init_color(75, 740, 740, 740)
curses.init_color(76, 750, 750, 750) curses.init_color(76, 750, 750, 750)
curses.init_color(77, 760, 760, 760) curses.init_color(77, 760, 760, 760)
curses.init_color(78, 770, 770, 770) curses.init_color(78, 770, 770, 770)
curses.init_color(79, 780, 780, 780) curses.init_color(79, 780, 780, 780)
curses.init_color(80, 790, 790, 790) curses.init_color(80, 790, 790, 790)
curses.init_color(81, 800, 800, 800) curses.init_color(81, 800, 800, 800)
curses.init_color(82, 810, 810, 810) curses.init_color(82, 810, 810, 810)
curses.init_color(83, 820, 820, 820) curses.init_color(83, 820, 820, 820)
curses.init_color(84, 830, 830, 830) curses.init_color(84, 830, 830, 830)
curses.init_color(85, 840, 840, 840) curses.init_color(85, 840, 840, 840)
curses.init_color(86, 850, 850, 850) curses.init_color(86, 850, 850, 850)
curses.init_color(87, 860, 860, 860) curses.init_color(87, 860, 860, 860)
curses.init_color(88, 870, 870, 870) curses.init_color(88, 870, 870, 870)
curses.init_color(89, 880, 880, 880) curses.init_color(89, 880, 880, 880)
curses.init_color(90, 890, 890, 890) curses.init_color(90, 890, 890, 890)
curses.init_color(91, 900, 900, 900) curses.init_color(91, 900, 900, 900)
curses.init_color(92, 910, 910, 910) curses.init_color(92, 910, 910, 910)
curses.init_color(93, 920, 920, 920) curses.init_color(93, 920, 920, 920)
curses.init_color(94, 930, 930, 930) curses.init_color(94, 930, 930, 930)
curses.init_color(95, 940, 940, 940) curses.init_color(95, 940, 940, 940)
curses.init_color(96, 950, 950, 950) curses.init_color(96, 950, 950, 950)
curses.init_color(97, 960, 960, 960) curses.init_color(97, 960, 960, 960)
curses.init_color(98, 970, 970, 970) curses.init_color(98, 970, 970, 970)
curses.init_color(99, 980, 980, 980) curses.init_color(99, 980, 980, 980)
curses.init_color(100, 990, 990, 990) curses.init_color(100, 990, 990, 990)
curses.init_pair(1, 0, 1) curses.init_pair(1, 0, 1)
curses.init_pair(2, 0, 2) curses.init_pair(2, 0, 2)
curses.init_pair(3, 0, 3) curses.init_pair(3, 0, 3)
curses.init_pair(4, 0, 4) curses.init_pair(4, 0, 4)
curses.init_pair(5, 0, 5) curses.init_pair(5, 0, 5)
curses.init_pair(6, 0, 6) curses.init_pair(6, 0, 6)
curses.init_pair(7, 0, 7) curses.init_pair(7, 0, 7)
curses.init_pair(8, 0, 8) curses.init_pair(8, 0, 8)
curses.init_pair(9, 0, 9) curses.init_pair(9, 0, 9)
curses.init_pair(10, 0, 10) curses.init_pair(10, 0, 10)
curses.init_pair(11, 0, 11) curses.init_pair(11, 0, 11)
curses.init_pair(12, 0, 12) curses.init_pair(12, 0, 12)
curses.init_pair(13, 0, 13) curses.init_pair(13, 0, 13)
curses.init_pair(14, 0, 14) curses.init_pair(14, 0, 14)
curses.init_pair(15, 0, 15) curses.init_pair(15, 0, 15)
curses.init_pair(16, 0, 16) curses.init_pair(16, 0, 16)
curses.init_pair(17, 0, 17) curses.init_pair(17, 0, 17)
curses.init_pair(18, 0, 18) curses.init_pair(18, 0, 18)
curses.init_pair(19, 0, 19) curses.init_pair(19, 0, 19)
curses.init_pair(20, 0, 20) curses.init_pair(20, 0, 20)
curses.init_pair(21, 0, 21) curses.init_pair(21, 0, 21)
curses.init_pair(22, 0, 22) curses.init_pair(22, 0, 22)
curses.init_pair(23, 0, 23) curses.init_pair(23, 0, 23)
curses.init_pair(24, 0, 24) curses.init_pair(24, 0, 24)
curses.init_pair(25, 0, 25) curses.init_pair(25, 0, 25)
curses.init_pair(26, 0, 26) curses.init_pair(26, 0, 26)
curses.init_pair(27, 0, 27) curses.init_pair(27, 0, 27)
curses.init_pair(28, 0, 28) curses.init_pair(28, 0, 28)
curses.init_pair(29, 0, 29) curses.init_pair(29, 0, 29)
curses.init_pair(30, 0, 30) curses.init_pair(30, 0, 30)
curses.init_pair(31, 0, 31) curses.init_pair(31, 0, 31)
curses.init_pair(32, 0, 32) curses.init_pair(32, 0, 32)
curses.init_pair(33, 0, 33) curses.init_pair(33, 0, 33)
curses.init_pair(34, 0, 34) curses.init_pair(34, 0, 34)
curses.init_pair(35, 0, 35) curses.init_pair(35, 0, 35)
curses.init_pair(36, 0, 36) curses.init_pair(36, 0, 36)
curses.init_pair(37, 0, 37) curses.init_pair(37, 0, 37)
curses.init_pair(38, 0, 38) curses.init_pair(38, 0, 38)
curses.init_pair(39, 0, 39) curses.init_pair(39, 0, 39)
curses.init_pair(40, 0, 40) curses.init_pair(40, 0, 40)
curses.init_pair(41, 0, 41) curses.init_pair(41, 0, 41)
curses.init_pair(42, 0, 42) curses.init_pair(42, 0, 42)
curses.init_pair(43, 0, 43) curses.init_pair(43, 0, 43)
curses.init_pair(44, 0, 44) curses.init_pair(44, 0, 44)
curses.init_pair(45, 0, 45) curses.init_pair(45, 0, 45)
curses.init_pair(46, 0, 46) curses.init_pair(46, 0, 46)
curses.init_pair(47, 0, 47) curses.init_pair(47, 0, 47)
curses.init_pair(48, 0, 48) curses.init_pair(48, 0, 48)
curses.init_pair(49, 0, 49) curses.init_pair(49, 0, 49)
curses.init_pair(50, 0, 50) curses.init_pair(50, 0, 50)
curses.init_pair(51, 0, 51) curses.init_pair(51, 0, 51)
curses.init_pair(52, 0, 52) curses.init_pair(52, 0, 52)
curses.init_pair(53, 0, 53) curses.init_pair(53, 0, 53)
curses.init_pair(54, 0, 54) curses.init_pair(54, 0, 54)
curses.init_pair(55, 0, 55) curses.init_pair(55, 0, 55)
curses.init_pair(56, 0, 56) curses.init_pair(56, 0, 56)
curses.init_pair(57, 0, 57) curses.init_pair(57, 0, 57)
curses.init_pair(58, 0, 58) curses.init_pair(58, 0, 58)
curses.init_pair(59, 0, 59) curses.init_pair(59, 0, 59)
curses.init_pair(60, 0, 60) curses.init_pair(60, 0, 60)
curses.init_pair(61, 0, 61) curses.init_pair(61, 0, 61)
curses.init_pair(62, 0, 62) curses.init_pair(62, 0, 62)
curses.init_pair(63, 0, 63) curses.init_pair(63, 0, 63)
curses.init_pair(64, 0, 64) curses.init_pair(64, 0, 64)
curses.init_pair(65, 0, 65) curses.init_pair(65, 0, 65)
curses.init_pair(66, 0, 66) curses.init_pair(66, 0, 66)
curses.init_pair(67, 0, 67) curses.init_pair(67, 0, 67)
curses.init_pair(68, 0, 68) curses.init_pair(68, 0, 68)
curses.init_pair(69, 0, 69) curses.init_pair(69, 0, 69)
curses.init_pair(70, 0, 70) curses.init_pair(70, 0, 70)
curses.init_pair(71, 0, 71) curses.init_pair(71, 0, 71)
curses.init_pair(72, 0, 72) curses.init_pair(72, 0, 72)
curses.init_pair(73, 0, 73) curses.init_pair(73, 0, 73)
curses.init_pair(74, 0, 74) curses.init_pair(74, 0, 74)
curses.init_pair(75, 0, 75) curses.init_pair(75, 0, 75)
curses.init_pair(76, 0, 76) curses.init_pair(76, 0, 76)
curses.init_pair(77, 0, 77) curses.init_pair(77, 0, 77)
curses.init_pair(78, 0, 78) curses.init_pair(78, 0, 78)
curses.init_pair(79, 0, 79) curses.init_pair(79, 0, 79)
curses.init_pair(80, 0, 80) curses.init_pair(80, 0, 80)
curses.init_pair(81, 0, 81) curses.init_pair(81, 0, 81)
curses.init_pair(82, 0, 82) curses.init_pair(82, 0, 82)
curses.init_pair(83, 0, 83) curses.init_pair(83, 0, 83)
curses.init_pair(84, 0, 84) curses.init_pair(84, 0, 84)
curses.init_pair(85, 0, 85) curses.init_pair(85, 0, 85)
curses.init_pair(86, 0, 86) curses.init_pair(86, 0, 86)
curses.init_pair(87, 0, 87) curses.init_pair(87, 0, 87)
curses.init_pair(88, 0, 88) curses.init_pair(88, 0, 88)
curses.init_pair(89, 0, 89) curses.init_pair(89, 0, 89)
curses.init_pair(90, 0, 90) curses.init_pair(90, 0, 90)
curses.init_pair(91, 0, 91) curses.init_pair(91, 0, 91)
curses.init_pair(92, 0, 92) curses.init_pair(92, 0, 92)
curses.init_pair(93, 0, 93) curses.init_pair(93, 0, 93)
curses.init_pair(94, 0, 94) curses.init_pair(94, 0, 94)
curses.init_pair(95, 0, 95) curses.init_pair(95, 0, 95)
curses.init_pair(96, 0, 96) curses.init_pair(96, 0, 96)
curses.init_pair(97, 0, 97) curses.init_pair(97, 0, 97)
curses.init_pair(98, 0, 98) curses.init_pair(98, 0, 98)
curses.init_pair(99, 0, 99) curses.init_pair(99, 0, 99)
curses.init_pair(100, 0, 100) curses.init_pair(100, 0, 100)
curses.init_pair(101, 81, 2) curses.init_pair(101, 81, 2)
return 101
return 101

View File

@ -7,7 +7,7 @@
# Distributed under terms of the BSD-3-Clause license. # Distributed under terms of the BSD-3-Clause license.
import numpy as np import numpy as np # type: ignore
import curses import curses
import colors import colors
@ -24,124 +24,129 @@ Y_MID = 0
def get_points(cols, rows): def get_points(cols, rows):
x_min = X_MID - X_SCALE * (1 / (2 ** ZOOM_LEVEL)) x_min = X_MID - X_SCALE * (1 / (2 ** ZOOM_LEVEL))
x_max = X_MID + X_SCALE * (1 / (2 ** ZOOM_LEVEL)) x_max = X_MID + X_SCALE * (1 / (2 ** ZOOM_LEVEL))
y_min = Y_MID - Y_SCALE * (1 / (2 ** ZOOM_LEVEL)) y_min = Y_MID - Y_SCALE * (1 / (2 ** ZOOM_LEVEL))
y_max = Y_MID + Y_SCALE * (1 / (2 ** ZOOM_LEVEL)) y_max = Y_MID + Y_SCALE * (1 / (2 ** ZOOM_LEVEL))
x = np.linspace(x_min, x_max, cols) x = np.linspace(x_min, x_max, cols)
y = np.linspace(y_min, y_max, rows) y = np.linspace(y_min, y_max, rows)
return x, y return x, y
def calculate_point(x, y): def calculate_point(x, y):
global ITERATIONS global ITERATIONS
z = 0 z = 0
p = (x - 0.25) ** 2 + y ** 2 p = (x - 0.25) ** 2 + y ** 2
if p * (p + (x - 0.25)) < 0.25 * (y ** 2): if p * (p + (x - 0.25)) < 0.25 * (y ** 2):
return -1 return -1
if (x + 1) ** 2 + y ** 2 <= 0.0625:
return -1
for i in range(MAX_ITERS): if (x + 1) ** 2 + y ** 2 <= 0.0625:
ITERATIONS += 1 return -1
z = z ** 2 + complex(x, y)
if abs(z) >= 2:
return i
return -1 for i in range(MAX_ITERS):
ITERATIONS += 1
z = z ** 2 + complex(x, y)
if abs(z) >= 2:
return i
return -1
def calculate_set(cols, rows): def calculate_set(cols, rows):
global ITERATIONS global ITERATIONS
ITERATIONS = 0 ITERATIONS = 0
x, y = get_points(cols, rows) x, y = get_points(cols, rows)
matrix = np.zeros([rows, cols]) matrix = np.zeros([rows, cols])
for i in range(rows): for i in range(rows):
for j in range(cols): for j in range(cols):
matrix[i, j] = calculate_point(x[j], y[i]) matrix[i, j] = calculate_point(x[j], y[i])
return matrix return matrix
def print_set(screen, cols, rows, matrix, char): def print_set(screen, cols, rows, matrix, char):
screen.clear() screen.clear()
for i in range(rows): for i in range(rows):
for j in range(cols): for j in range(cols):
iteration = matrix[i, j] iteration = matrix[i, j]
if iteration == -1: if iteration == -1:
screen.addstr(i, j, ' ', curses.color_pair(1)) screen.addstr(i, j, ' ', curses.color_pair(1))
else: else:
color_index = (int(iteration) + 2) % COLOR_COUNT color_index = (int(iteration) + 2) % COLOR_COUNT
color_index = 2 if color_index < 2 else color_index color_index = 2 if color_index < 2 else color_index
screen.addstr(i, j, ' ', curses.color_pair(color_index)) screen.addstr(i, j, ' ', curses.color_pair(color_index))
screen.addstr(rows, 0, f'Max Iterations: {MAX_ITERS}, Zoom: {ZOOM_LEVEL}, Iterations: {ITERATIONS}, Char: {char}', curses.color_pair(COLOR_COUNT)) screen.addstr(
screen.refresh() rows,
0,
f'Max Iterations: {MAX_ITERS}, Zoom: {ZOOM_LEVEL}',
curses.color_pair(COLOR_COUNT),
)
screen.refresh()
def handle_keyboard(char): def handle_keyboard(char):
global X_MID global X_MID
global Y_MID global Y_MID
global ZOOM_LEVEL global ZOOM_LEVEL
global MAX_ITERS global MAX_ITERS
global MONOCHROME global MONOCHROME
global COLOR_COUNT global COLOR_COUNT
if char == 113: # Quit if char == 113: # Quit
return True return True
elif char == 258: # Down elif char == 258: # Down
Y_MID += Y_SCALE * (1 / (2 ** (ZOOM_LEVEL + 1))) Y_MID += Y_SCALE * (1 / (2 ** (ZOOM_LEVEL + 1)))
return False return False
elif char == 259: # Up elif char == 259: # Up
Y_MID -= Y_SCALE * (1 / (2 ** (ZOOM_LEVEL + 1))) Y_MID -= Y_SCALE * (1 / (2 ** (ZOOM_LEVEL + 1)))
return False return False
elif char == 260: # Left elif char == 260: # Left
X_MID -= X_SCALE * (1 / (2 ** (ZOOM_LEVEL + 1))) X_MID -= X_SCALE * (1 / (2 ** (ZOOM_LEVEL + 1)))
return False return False
elif char == 261: # Right elif char == 261: # Right
X_MID += X_SCALE * (1 / (2 ** (ZOOM_LEVEL + 1))) X_MID += X_SCALE * (1 / (2 ** (ZOOM_LEVEL + 1)))
return False return False
elif char == 40: # Zoom out elif char == 40: # Zoom out
if ZOOM_LEVEL > 0: if ZOOM_LEVEL > 0:
ZOOM_LEVEL -= 1 ZOOM_LEVEL -= 1
return False return False
elif char == 41: # Zoom in elif char == 41: # Zoom in
ZOOM_LEVEL += 1 ZOOM_LEVEL += 1
return False return False
elif char == 61: # Zoom reset elif char == 61: # Zoom reset
ZOOM_LEVEL = 0 ZOOM_LEVEL = 0
return False return False
elif char == 43: # Iterations up elif char == 43: # Iterations up
MAX_ITERS += 1 MAX_ITERS += 1
return False return False
elif char == 45: # Iterations down elif char == 45: # Iterations down
MAX_ITERS = 1 if MAX_ITERS == 1 else MAX_ITERS - 1 MAX_ITERS = 1 if MAX_ITERS == 1 else MAX_ITERS - 1
return False return False
elif char == 99: # Toggle colors elif char == 99: # Toggle colors
if MONOCHROME: if MONOCHROME:
COLOR_COUNT = colors.init_101_colors() COLOR_COUNT = colors.init_101_colors()
MONOCHROME = False MONOCHROME = False
else: else:
COLOR_COUNT = colors.init_101_monochrome() COLOR_COUNT = colors.init_101_monochrome()
MONOCHROME = True MONOCHROME = True
return False return False
def main(screen): def main(screen):
global COLOR_COUNT global COLOR_COUNT
rows, cols = screen.getmaxyx() rows, cols = screen.getmaxyx()
rows -= 1 rows -= 1
COLOR_COUNT = colors.init_101_colors() COLOR_COUNT = colors.init_101_colors()
char = 0 char = 0
while True: while True:
matrix = calculate_set(cols, rows) matrix = calculate_set(cols, rows)
print_set(screen, cols, rows, matrix, char) print_set(screen, cols, rows, matrix, char)
char = screen.getch() char = screen.getch()
if handle_keyboard(char): if handle_keyboard(char):
break break
if __name__ == '__main__': if __name__ == '__main__':
curses.wrapper(main) curses.wrapper(main)