You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Scripted/EnigmePython/chuckNorris.py

112 lines
2.5 KiB

import random as r
# Fonction avec des int (Pas la bonne fonction)
def binaire2unitaire(x):
lentre=[]
unitaire=[]
rep=0
for i in str(x):
lentre.append(i)
pre=lentre[0]
for i in lentre:
if(pre==i):
rep+=1
else:
if(pre=="1"):
unitaire.append(0)
else:
unitaire.append(0)
unitaire.append(0)
unitaire.append(" ")
for j in range(rep):
unitaire.append(0)
unitaire.append(" ")
rep=1
pre=i
if(pre=="1"):
unitaire.append(0)
else:
unitaire.append(0)
unitaire.append(0)
unitaire.append(" ")
for j in range(rep):
unitaire.append(0)
r=""
for i in unitaire:
r=r+str(i)
return r
# fonction avec des str (bonne fonction)
def binaire2unitaireV2(x):
rep=0
pre=x[0]
unitaire=""
for i in x:
if(pre==i):
rep+=1
else:
if(pre=="1"):
unitaire=unitaire+"0 "
else:
unitaire=unitaire+"00 "
for j in range(rep):
unitaire=unitaire+"0"
unitaire=unitaire+" "
rep=1
pre=i
if(pre=="1"):
unitaire=unitaire+"0 "
else:
unitaire=unitaire+"00 "
for i in range(rep):
unitaire=unitaire+"0"
return unitaire
def binaire2unitaireVerif(x):
rep=0
pre=x[0]
unitaire=""
for i in x:
if(pre==i):
rep+=1
else:
if(pre=="1"):
unitaire=unitaire+"0 "
else:
unitaire=unitaire+"00 "
for j in range(rep):
unitaire=unitaire+"0"
unitaire=unitaire+" "
rep=1
pre=i
if(pre=="1"):
unitaire=unitaire+"0 "
else:
unitaire=unitaire+"00 "
for i in range(rep):
unitaire=unitaire+"0"
return unitaire
def testChuckNorris(x):
l="0000000"
if(binaire2unitaireV2(l)!="00 0000000"):
return False
l="1111111"
if(binaire2unitaireV2(l)!="0 0000000"):
return False
l="1101001"
if(binaire2unitaireV2(l)!="0 00 00 0 0 0 00 00 0 0"):
return False
l=""
for i in range(x):
for j in range(r.randint(1,10)):
l=l+str(r.randint(0,1))
if(binaire2unitaireV2(l)!=binaire2unitaireVerif(l)):
return False
l=""
return True
print(testChuckNorris(10))