1. 程式人生 > >2017全國大學生資訊保安競賽Reverse 填數遊戲

2017全國大學生資訊保安競賽Reverse 填數遊戲

參考的writeup在這:

使用的程式碼為py:

'''
f = open('data.txt')

num = 0
a = []
for line in f:
	print line,line[1]
	if line[1] == '0':
		a.append('?')
	else:
		a.append(line[1])
print a
for i in xrange(0,len(a)):
	print a[i],
	if i % 9 == 8:
		print
'''

f1 = open('C:\\input.txt')
f2 = open('C:\\output.txt')
num = 0
str1 = ''
str2 = ''
ans = ''
for line in f1:
	str1 += line
for line in f2:
	str2 += line
for i in xrange(0,len(str1)):
	if str1[i] == '?':
		ans += str2[i]
	elif str1[i]>='1' and str1[i]<='9':
		ans += '0'
print ans

input和output的兩個數獨矩陣:

? ? 7 5 ? ? ? 6 ?
? 2 ? ? 1 ? ? ? 7
9 ? ? ? 3 ? 4 ? ?
2 ? 1 ? ? ? ? ? ?
? 3 ? 1 ? ? ? ? 5
? ? ? ? ? ? 7 1 ?
4 ? ? ? ? 8 2 ? ?
? ? 5 9 ? ? ? 8 ?
? 8 ? ? ? 1 ? ? 3


3 4 7 5 8 9 1 6 2
5 2 8 4 1 6 9 3 7
9 1 6 2 3 7 4 5 8
2 6 1 8 7 5 3 4 9
7 3 9 1 6 4 8 2 5
8 5 4 3 9 2 7 1 6
4 9 3 6 5 8 2 7 1
1 7 5 9 2 3 6 8 4
6 8 2 7 4 1 5 9 3