Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def __init__(self, width, height):
self.width = width
self.height = height
n = 5
self.player = Entity(on_blue(green(bold(u'5'))), width // 2, height // 2 - 2, speed=5)
self.npcs = [Entity(on_blue(red(u'X')), i * width // (n * 2), j * height // (n * 2))
for i in range(1, 2*n, 2)
for j in range(1, 2*n, 2)]
self.turn = 0
def test_ljust_rjust(self):
""""""
b = fmtstr(u'ab', 'blue', 'on_red', 'bold')
g = fmtstr(u'cd', 'green', 'on_red', 'bold')
s = b + g
self.assertEqual(s.ljust(6), b + g + on_red(' '))
self.assertEqual(s.rjust(6), on_red(' ') + b + g)
# doesn't add empties to end
self.assertEqual(s.ljust(4), b + g)
self.assertEqual(s.rjust(4), b + g)
# behavior if background different
s = on_blue('a') + on_green('b')
self.assertEqual(s.ljust(3), fmtstr('ab '))
self.assertEqual(s.rjust(3), fmtstr(' ab'))
s = blue(on_blue('a')) + green(on_green('b'))
self.assertEqual(s.ljust(3), blue('a') + green('b') + fmtstr(' '))
self.assertEqual(s.rjust(3), fmtstr(' ') + blue('a') + green('b'))
#using fillchar
self.assertEqual(s.ljust(3, '*'), fmtstr('ab*'))
self.assertEqual(s.rjust(3, '*'), fmtstr('*ab'))
def test_multiple_bfs_splice(self):
self.assertEqual(fmtstr('a') + blue('b'),
on_blue(' '*2).splice(fmtstr('a')+blue('b'), 0, 2))
self.assertEqual(on_red('yo') + on_blue(' '),
on_blue(' '*5).splice(on_red('yo'), 0, 2))
self.assertEqual(' ' + on_red('yo') + on_blue(' '),
on_blue(' '*6).splice(' ' + on_red('yo'), 0, 3))
self.assertEqual(on_blue("hey") + ' ' + on_red('yo') + on_blue(' '),
on_blue(' '*9).splice(on_blue("hey") + ' ' + on_red('yo'), 0, 6))
self.assertEqual(on_blue(' '*5) + on_blue("hey") + ' ' + on_red('yo') + on_blue(' '),
on_blue(' '*14).splice(on_blue("hey") + ' ' + on_red('yo'), 5, 11))
def test_bg(self):
on_red('asdf')
on_blue('asdf')
self.assertTrue(True)
def test_multiple_bfs_splice(self):
self.assertEqual(fmtstr('a') + blue('b'),
on_blue(' '*2).splice(fmtstr('a')+blue('b'), 0, 2))
self.assertEqual(on_red('yo') + on_blue(' '),
on_blue(' '*5).splice(on_red('yo'), 0, 2))
self.assertEqual(' ' + on_red('yo') + on_blue(' '),
on_blue(' '*6).splice(' ' + on_red('yo'), 0, 3))
self.assertEqual(on_blue("hey") + ' ' + on_red('yo') + on_blue(' '),
on_blue(' '*9).splice(on_blue("hey") + ' ' + on_red('yo'), 0, 6))
self.assertEqual(on_blue(' '*5) + on_blue("hey") + ' ' + on_red('yo') + on_blue(' '),
on_blue(' '*14).splice(on_blue("hey") + ' ' + on_red('yo'), 5, 11))
from __future__ import unicode_literals # convenient for Python 2
import random
from curtsies import FullscreenWindow, Input, FSArray
from curtsies.fmtfuncs import red, bold, green, on_blue, yellow
print(yellow('this prints normally, not to the alternate screen'))
with FullscreenWindow() as window:
with Input() as input_generator:
msg = red(on_blue(bold('Press escape to exit')))
a = FSArray(window.height, window.width)
a[0:1, 0:msg.width] = [msg]
window.render_to_terminal(a)
for c in input_generator:
if c == '':
break
elif c == '':
a = FSArray(window.height, window.width)
else:
s = repr(c)
row = random.choice(range(window.height))
column = random.choice(range(window.width-len(s)))
color = random.choice([red, green, on_blue, yellow])
a[row, column:column+len(s)] = [color(s)]
window.render_to_terminal(a)