2016-04-02 4 views
0

Java'da bir masa oyunu üzerinde çalışıyorum ve harflerin tahtaya yerleştirildiğinde birbirlerinin "birbirine" temas ettiğini doğrulamak istiyorum. Bir List<Letter> kullanıyorum. Harfler yerleştirildiğinde, dikey veya yatay olarak hizalandığını doğrularım (harflerin (x,y) pozisyonlarını kullanarak). Ayrıca Letter sınıfım için 2 adet özel Comparators yaptım, bundan sonra List<Letter>'u x veya y konumuna göre sıralayabilirim (sözcüğün dikey veya yatay olarak hizalanmasına bağlı olarak).Nesne Listesi üzerinden yineleyin ve özniteliklerin (int) birbirini izlediğini doğrulayın (örn: 1,2,3,4), (3,4,5,6) ancak (1,2,5) veya (3) , 4,5,7))

Şimdi harflerin birbirlerini "birbirine" dokunduğunu doğrulamak için, x'in (veya y'nin nasıl hizalandığına bağlı olarak) örneğin: 1,2,3,4 ve değil 1,2,3,5 gibi bir şey olduğunu doğrulamak zorundayım. 3 ve 4 harfleri arasında bir "boşluk".

List<Letter> aracılığıyla yinelemeliyim, ancak foreach içinde hangi testi yapmam gerektiğini tam olarak bilmiyorum. İlk nesnenin x'unu bir sonraki nesnenin x ile karşılaştırmalı ve x'in konumu +1 olmalıdır.

Açıkçası umuyorum ki, kodumun bazı parçacıkları ve içerdiği sınıflar, böylece yapıyı biraz anlayabilirsiniz. İngilizce benim ilk borcum değil, bu yüzden herhangi bir kesinleşmeye ihtiyacınız olup olmadığını sormaya çekinmeyin. Yardımın için şimdiden teşekkürler!

Stackoverflow'ta pek yayınlamamış olduğum için mesajın burada biçimlendirilmesi için elimden gelenin en iyisini yapmaya çalıştım, umarım sizin için okunabilir olur! o zaman sadece bir seferde Letter unsurlarından biri erişmek mümkün olacak çünkü

public class Letter { 
int x,y; 

public int getX() { 
//... 
} 
public int getY() { 
//... 
} 

public static Comparator<Letter> COMPARE_BY_X = (Letter a, Letter b) -> { 
// ... 
} 

public static Comparator<Letter> COMPARE_BY_Y = (Letter a, Letter b) -> { 
// ... 
} 

public int hashCode() { 
//... 
} 
public boolean equals() { 
//... 
} 

} 


public class VerifyWord(List<Letter> word) { 

private List<Letter> word; 
//... 


// list is sorted 
for (Letter t : word) { 
// what should I put there???? 
} 


//... 

} 

cevap