0e 1er 2ème 3e Histoire finale
Enfin, nous allons créer la partie IA. Merci> <
Comme mentionné dans la partie 1, l'ordinateur sélectionnera essentiellement la «main avec le plus petit nombre de pires candidats».
Le but est une fonction pour trouver le "pire numéro de candidat". Comment trouver le pire candidat, mais vous avez besoin d'une liste de numéros qui satisfont les résultats de vos appels jusqu'à présent. De plus, il serait utile d'avoir une liste de 720 numéros de 012 à 789. Et il semble amusant de préparer une liste qui contient toutes les combinaisons de EAT et BITE, donc je vais d'abord créer ces trois listes et fonctions.
Je l'ai implémenté comme suit
def change(a,b,c):
return [[a,b,c],[a,c,b],[b,a,c],[b,c,a],[c,a,b],[c,b,a]]
ALL=[]
for i in range(0,10):
for j in range(i+1,10):
for k in range(j+1,10):
ALL+=change(i,j,k)
Pour expliquer brièvement le flux Créez une fonction qui renvoie une liste de 3! Trie à partir de 3 nombres J'ai fait toutes les combinaisons pour que les nombres ne soient pas couverts par pour, pour, pour. S'il vous plaît laissez-moi savoir s'il y a une meilleure implémentation (laissez-le à d'autres)
Puisque le nombre est petit, je vais l'écrire honnêtement
EB=[[3,0],[2,1],[2,0],[1,2],[1,1],[1,0],[0,3],[0,2],[0,1],[0,0]]
Ensuite, nous définirons une fonction qui collecte les nombres qui satisfont les résultats de EAT et BITE jusqu'à présent. Le premier mouvement est le même que TOUS, donc au début
KOUHO=ALL
Copions-le. Et chaque fois que je sais MANGER, MORDRE
def CHECK(CALL,EAT,BITE,KOUHO):
X=len(KOUHO)
group=[]
for i in range(X):
if NUMERON(CALL,KOUHO[i])==[EAT,BITE]:
group.append(KOUHO[i])
return group
KOUHO
KOUHO=CHECK(CALL,EAT,BITE,KOUHO)
Vous pouvez le mettre à jour avec.
Vous êtes maintenant prêt à trouver le «pire nombre de candidats».
def BAD(CALL,KOUHO):
CHECK_LIST=[0]*10
for i in range(10):
EAT=EB[i][0]
BITE=EB[i][1]
CHECK_LIST[i]=len(CHECK(CALL,EAT,BITE,KOUHO))
return max(CHECK_LIST)
Par conséquent, tout ce que vous avez à faire est de rechercher entre [0,1,2] et [7,8,9]. Ainsi, la liste des appels com peut être écrite comme suit:
def CALL_LIST(KOUHO):
LIST=[]
EATLIST=[]
cnt=1000
for i in range(720):
if BAD(ALL[i],KOUHO)<cnt:
cnt=BAD(ALL[i],KOUHO)
LIST=[]
EATLIST=[]
if len(CHECK(ALL[i],3,0,KOUHO))>=1:
EATLIST.append(ALL[i])
else:
LIST.append(ALL[i])
elif BAD(ALL[i],KOUHO)==cnt:
if len(CHECK(ALL[i],3,0,KOUHO))>=1:
EATLIST.append(ALL[i])
else:
LIST.append(ALL[i])
if len(EATLIST)==0:
return LIST
else:
return EATLIST
Si vous essayez de confirmer dans la situation que les candidats restants sont [1,2,3], [1,3,2], [2,4,1]
print(CALL_LIST([[1,2,3],[1,3,2],[2,4,1]]))
#[[1, 2, 3], [1, 3, 2]]
Revenu. Cela semble correct.
Maintenant que vous avez le cerveau du com, créons un environnement de combat !!
Recommended Posts