Skip to content

Instantly share code, notes, and snippets.

@kencoba
Created April 3, 2019 05:42
Show Gist options
  • Save kencoba/1e9f125ceb497d7dfc3dbce7be6a96f6 to your computer and use it in GitHub Desktop.
Save kencoba/1e9f125ceb497d7dfc3dbce7be6a96f6 to your computer and use it in GitHub Desktop.
Touch Typing with Python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
import random
def interval():
start_time = time.time()
def end_time():
return time.time() - start_time
return end_time
def word(level):
chars = "fjdkslaghvmcxzbnrueiwoqpty"
n = ""
for x in range(5):
n += chars[random.randrange(0, level)]
return n
def problem_line(level):
w = []
for x in range(8):
w.append(word(level))
return ' '.join(w)
def difference(problem_line, enter_line):
d = ""
for i in range(len(problem_line)):
if i < len(enter_line):
if problem_line[i] == enter_line[i]:
d += ' '
else:
d += problem_line[i]
return d
def count_wrongs(diff_line):
return len(diff_line) - diff_line.count(' ')
def main(initial_level):
min_level = 2
if min_level <= initial_level:
level = initial_level
else:
level = min_level
while True:
print("level: %d" % level)
problem = problem_line(level)
print(problem)
inter = interval()
enter_line = input().ljust(len(problem))
diff_line = difference(problem, enter_line)
wrongs = count_wrongs(diff_line)
print(diff_line)
if enter_line == "":
pass
else:
if wrongs < 2 and inter() < 25:
level = level + 1
if 3 <= wrongs and 2 < level:
level = level - 1
if __name__ == '__main__':
main(2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment