Моя функция изменяет слишком много элементов в списке, а через некоторое время l oop, что мне делать? - PullRequest
0 голосов
/ 07 февраля 2020

Для школы я должен сделать игру, в которой два игрока пытаются выровнять 4 буквы, чтобы выиграть. В этом коде идея состоит в том, что число «1» идет в нижний ряд, и это будет игра игрока 1. Но вместо того, чтобы показывать только нижний, он заполняет весь столбец, проблема должна быть из jouer(g,j,c) функция, которая играет, потому что именно там мне удалось точно определить ошибку. Но я не вижу, что не так, помогите мне, пожалуйста!

Основная программа:

from align import *
from coup import coup_possible
from grille import grille_vide
from jouer import jouer
from victoire import *

tab = []
a = [0, 0, 0, 0, 0, 0, 0]
g = grille_vide(a, tab)

while True:
    j = 1
    l = 0
    print(g)
    c = input("Joueur " + str(j) + " dans quelle colonne voulez vous jouer ? (0, 6) ")
    c = int(c)
    pos = coup_possible(g, c)

    jouer(g,j,c)

    print(g)
    victoire(g,j,l,c)
    match_nul(g)

Функция jouer(g,j,c), где g - пустая сетка, j число, равное 1 или 2 и c для столбца:

def jouer(g,j,c):
    """Cette fonction joue un coup du joueur j dans la colonne c"""
    l = 0
    for i in range(0, 5):
        #Cette partie vérifie s'il n'y a pas de caractère a la position voulue
        if g[l][c] == 0:
            g[l][c] = j
            break
        if not g[l][c] == 0:
            l = l + 1

    return g

Обратите внимание, что все остальные функции работают, и проблема не в этом, спасибо!

...