pythonで基数変換ドリルを作ってみました。
Pythonの勉強がてら基数変換ドリルを作ってみました。
とりあえずは10進数を表示するので対応する2進数4桁を10回続けて答えるというゲームです。
時間と正答率でポイントが決まります。
過去の成績も記録できます。
10進数から2進数を答えるだけでなく、ランダムで16進数や8進数、桁数も可変するようなものも
作れたら作ってみたいですね。
# -*- coding:utf-8 -*- """ ProgramName: RadixDrill """ import time import random import pickle stime = time.time() suc = 0 print '----------------------------------------------------------------------' print ' RadixDrill Start' print '----------------------------------------------------------------------' print 'Try 10 Count' for i in range(10): print 'Decimal -> Binary' # Binary Making x = random.randint(0,15) print 'Question %d' % x bi = '' for i in range(4): bi = str(x % 2) + bi x /= 2 # Maching ans = raw_input('Decimal :') if bi==ans: print 'OK' suc += 1 else: print 'NG!' # Score Display etime = time.time() point = int((100 - (etime - stime)) * 10 * suc / 10.0) print 'correct (%d / 10) time (%d sec)' % (suc, int(etime - stime)) print 'score %dpoint' % point # Score Save data = (point, time.asctime()) try: file = open('radixdrill.dat', 'rb') rdata = pickle.load(file) file.close except IOError: rdata = [] rdata.append(data) rdata.sort() rdata.reverse() file = open('radixdrill.dat', 'wb') pickle.dump(rdata, file) file.close() # Score Ranking print '----------------------------------------' print ' Score Ranking TOP10' print '----------------------------------------' max = 10 for dt in rdata: print '%d point , %s' % dt if not max: break max -= 1