Çıktımın tahtadaki mevcut duruma bağlı olarak False değerini Doğru döndürmesi için ne gibi değişiklikler yapmalıyım?

0

Soru

Bu yüzden t2048'in kolay bir versiyonunu oluşturmaya çalışıyorum ve bu yüzden mevcut tahtaya dayanarak herhangi bir hareketin mümkün olup olmadığını bularak başlamaya çalışıyorum ve bir işlevim var ispossible(board: Board) o olsun bu Doğru veya Yanlış döndürür

2048'in ne anlama geldiğini bilmiyorsanız, oyun budur... https://play2048.co/

Tüm oyunu yeniden yaratmaya çalışmıyorum, sadece bunun işe yarayan basit bir versiyonunu yapmaya çalışıyorum.

def ispossible(board: Board)
    for i in range(0, board):
        for j in range(1, board):
            if [i][j - 1] == 0 and [i][j] > 0:
                return True
            elif ([i][j - 1] == [i][j]) and [i][j - 1] != 0:
                return True
    return False

Ancak, bunu bir girdi olarak koyduğumda bir 'Hata' aldığım için bu hiç işe yaramıyor

print(ispossible([4,3,2,2],[2,2,8,16], [16,4,4,4], [4,4,4,4]))

Ne bu işleri yapmak için değiştirmeli miyim??

error-handling list python
2021-11-24 04:20:52
1

En iyi cevabı

1

Sorunun yorumlarında da belirtildiği gibi, önce tek bir liste listesinde kendi listeniz olarak geçmelisiniz. Board. Örnek kodunuzla ilgili başka bir sorun, dizine eklemiyor olmanızdır. board değişken. Bunun yerine, kod 1 boyutunda bir liste oluşturuyor i tek öğe olarak ve daha sonra erişen j-1inci endeksi. Muhtemelen şöyle bir şey yapmak istemişsindir. board[i][j - 1] yerine [i][j - 1]. Aynı şey diğer liste erişimleriniz için de geçerlidir.

2021-11-24 05:49:47

yani temelde her [i] ' nin önünde, yazı tahtası yazmalı mıyım?
Joshua Bradley

evet, çünkü şu anda [i] sadece aşağıdaki gibi bir liste anlamına gelir [0] dış döngünün ilk yinelemesinde. board[i] ıth satırı anlamına gelir board
rchome

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................