제 첫 실용 프로그램이었던 원랜디 조합도우미입니다.
원피스랜덤디펜스라는 게임을 할 때 보다 편하게 하기 위해 만든 프로그램입니다.
소스는 6행만 보시면 됩니다.
6행에 보면 pasi를 import했음을 알 수 있습니다.
pasi의 실행화면입니다.
오늘의 사용코드를 입력해야 다음으로 넘어갈 수 있습니다.
코드발행기에서 오늘의 사용코드를 확인하여 입력해주면 프로그램을 사용할 수 있게됩니다.
#pasi.py
#코드로 잠금을 걸고싶은 부분 앞에 pasi.py를 import해주세요. 그러면 해당 줄 이후는 하루에 한 번 코드를 입력해야 사용할 수 있게됩니다.
import datetime
#클라이언트컴퓨터용
now = datetime.datetime.now()
#요일
dayname = now.weekday()
#연
year = now.year
#월
month = now.month
#일
day = now.day
today = str(year)+str(month)+str(day)
#오늘 사용자가 인증했는지 확인하는 방법.
#아래 파일경로를 임의로 바꿔주세요
f=open('C:/ordhelper/HrPr/run/int/todayis.txt','r')
fcontent=f.read()
f.close()
if str(today) == fcontent:
pass
else:
#code1 = ['a','b','c','d,'e','f','g',h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
#코드생성규칙
code2 = ['Z','C','B','V','E','F','G','H','I','J','K','L','M','N','O','P','X','R','S','T','U','D','W','Q','Y','A']
daylist = ['월','화','수','목','금','토','일']
if dayname %4 ==0:
if dayname ==0:
dayname+=day
oncode = dayname*1067+year+month+day
else:
oncode = dayname*7203+month+year+day
twcode = str(day%4)[0]+str(oncode**3)[4:]+str(day*7)[-1]
#kk is last code
kk=''
a=0
for i in range(len(twcode)):
if i < len(code2):
kk += code2[int(twcode[i])]
else:
kk += code2[int(twcode[i])-len(code2)]
a+=1
if a==4:
kk+='-'
a=0
if kk[-1] =='-':
kk = kk[:-1]
#맞는 코드를 입력할 때까지 무한루프탈출불가능
while True:
usercode = input('코드는 https://blog.naver.com/fox_93에 매일자정(24:00) 업로드 됩니다\n\n사용코드입력\n:')
if usercode == kk:
f=open('C:/ordhelper/HrPr/run/int/todayis.txt','w')
f.write(today)
f.close()
break
else:
print("코드가 틀렸습니다. 정확히 복사해서 붙여넣기 해주세요")
#코드발행기
발행기를 돌리면 오늘부터 for문의 range만큼 일 수의 사용코드가 나옵니다.
적절히 조절해서 코드를 배포하시면 되겠습니다~
import datetime
#발행컴퓨터용
now = datetime.datetime.now()
#요일
dayname = now.weekday()
#연
year = now.year
#월
month = now.month
#일
day = now.day
savedayname=dayname
today = str(year)+str(month)+str(day)
f=open('C:/ordhelper/HrPr/run/int/todayis.txt','r')
fcontent=f.read()
f.close()
if str(today) == fcontent:
print("오늘의 인증이 완료되었습니다.")
pass
for i in range(7):
savedayname = dayname
#code1 = ['a','b','c','d,'e','f','g',h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
code2 = ['Z','C','B','V','E','F','G','H','I','J','K','L','M','N','O','P','X','R','S','T','U','D','W','Q','Y','A']
daylist = ['월','화','수','목','금','토','일']
#코드규칙
if dayname %4 ==0:
if dayname ==0:
savedayname = dayname
dayname+=day
oncode = dayname*1067+year+month+day
else:
oncode = dayname*7203+month+year+day
twcode = str(day%4)[0]+str(oncode**3)[4:]+str(day*7)[-1]
#kk is last code
kk=''
a=0
for i in range(len(twcode)):
if i < len(code2):
kk += code2[int(twcode[i])]
else:
kk += code2[int(twcode[i])-len(code2)]
a+=1
if a==4:
kk+='-'
a=0
if kk[-1] =='-':
kk = kk[:-1]
dayname = savedayname
print(str(year)+'.'+str(month)+'.'+str(day)+str(daylist[dayname])+'요일의 사용코드입니다:\n'+ kk+'\n\n')
day +=1
dayname+=1
#요일변환
if dayname ==7:
dayname =0
#2 4 6 9 11
#월변환
if day ==31:
if month ==2 or month ==4 or month ==6 or month ==9 or month ==11:
day =1
month +=1
if day ==32:
day=1
month +=1
if day ==29 and month ==2:
day =1
month +=1
if month ==13:
month =1
year +=1
'''
while True:
usercode = input('코드는 https://blog.naver.com/fox_93에 매일자정(24:00) 업로드 됩니다\n\n사용코드입력\n:')
if usercode == kk:
f=open('C:/ordhelper/HrPr/run/int/todayis.txt','w')
f.write(today)
f.close()
break
'''
'여기저기 쓰이는 짧은 실용함수 > 파이썬' 카테고리의 다른 글
파이썬 사용자 계정 컨트롤 뚫는 방법 (0) | 2021.09.15 |
---|---|
[파이썬] 파이썬으로 구글메일 사용하기 준비 (0) | 2021.02.13 |
[파이썬] 첨부파일과 함께 메일 보내기 (0) | 2021.02.13 |
[파이썬] 메일 읽기 (4) | 2021.02.13 |
[파이썬] 한 글자씩 출력하기 (1) | 2020.09.23 |