2016-04-04 30 views
0

Bir ızgara oluşturdum, ancak etrafta hareket edebilecek bir parça oluşturmada çok fazla sorun yaşıyorum! Ben yönlerde kadar istediği gibi hareket edebilir "karakterinin" bir çeşit sağlanması gerekir "aşağı, sola ve sağa yukarı" Burada şimdiye kadar kod şudur: Ayrıca mümkünse0 Python nesneleri bir ızgarada

import random 


N= int(input("How big would you like the grid to be?")) 
tictac = [] 

for i in range(N): 
    row = [] 
for i in range(N): 
    row.append('O') 
tictac.append(row) 

Izgarada rastgele oluşturulacak hazine ve haydut parçalarına ihtiyacım var.

cevap

1

Sorununuz son derece geniştir. Ancak, kodunuzu geliştirmenin ilk adımı. Bu, hiçbir şey yapmaz. Tekrar tekrar, boş bir liste olmak için satır atar.

for i in range(N): 
    row = [] 
    for j in range(N): 
     row.append('O') 
    tictac.append(row) 

da bunu yapmak için daha hafif verimli ya da zarif yolları olabilir, ama mükemmel olduğunu daha kod gerçek düşünceyi yansıttığını daha önemli olduğunu düşünüyorum: Bu iç yuvasına döngü diğer istiyorum verimli.

Sorularınızın geri kalanı için, daha fazla kod, her seferinde bir özellik uygulamaya çalışın ve daha fazla iyileştirme istemek için paylaşın. Örneğin, bir sonraki sayfada, kılavuza bir karakter yerleştirmeye ve tuş vuruşlarıyla kontrol etmeye odaklanmalı ya da ızgarayı nasıl görüntüleyeceğinize (GUI, metin tabanlı vb.) Odaklanmalısınız.

+0

Teşekkürler, bir karakter yerleştirmeyi denedim bile. Ben onunla mücadele ediyorum, bu yüzden neden oluşturmak ve ızgara – dave

+0

içine bir yer sordu Bu muhtemelen yukarıdan girinti hatası nedeniyle oldu. Ancak, karakterin bir 'X' olduğunu varsayalım. Bir yer seçin, [x, y] 'yerine yerleştirmek istiyorsanız,' 'tictac [x] [y] = 'X' 'yapabilirsiniz. Ardından, tuşa dayalı olarak x ve y'yi değiştirmek için mantığı uygulayın. – Christian

+0

çok teşekkürler, ne zaman bu tictac [x] [y] = "x" yerleştirmek için sorularım için beni affet. Düzenle - Liste dizinini aralık dışı bırakan bir hata mesajı var. – dave