2017-04-24 1 views
0

그래서 spigot 플러그인을 개발 중입니다. 그것은 친구에 관한 것입니다. 그 사람이 친구의 목록을 보도록 명령을하면 페이지가 있어야하고 모든 페이지에는 7 명의 친구가 있어야합니다. 것은 친구 목록이 항상 같은 사람과 친구 목록이 아니라는 것입니다.목록에 대해 여러 페이지를 얻으려면 어떻게해야합니까?

사례 나는 10 명의 친구가 있습니다. 첫 페이지에는 7 명의 친구가 있고 두 번째 페이지에는 나머지 3 명이 있습니다. 사례 70 명의 친구가 있습니다. 10 페이지가 있습니다.

편집 : 혼란 스러울 수 있습니다. 내 질문은 : 어떻게 내가 예제에서 그것을 만들 수 있습니다. 플레이어는/친구 목록을 수행합니다. 친구가 7 명인 경우 1 페이지를 표시하고, 친구가없는 경우 7 명을 표시합니다. 두 번째 페이지가 더 있습니다 :/친구 목록 2. 등등.

+1

[Minimal, Complete, Verifiable example] (https://stackoverflow.com/help/mcve)을 작성하십시오 –

+1

너무 광범위한 질문입니다. 그리고 stackoverflow 대신에 spigot forum에 게시하면 더 좋습니다. – Flood2d

+1

찾고있는 것은 이름이 있습니다. '페이지 매김'을 찾으십시오 –

답변

0

친구를 어떻게 볼 수 있습니까?
GUI (Inventar) 또는 채팅 중입니까? GUI에 대한
코드 (완료되지 않음) :

ArrayList<String> players = new ArrayList<>(); 
int pages = ((players.size-(players.size()%7))/7)+(players.size()%7 == 0 ? 0 : 1); 
ArrayList<String>[] pages = new ArrayList<>()[pages]; 
int lastpage = 0; 
int i = 0; 
for(String name : players) 
{ 
    pages[lastpage].add(name);  
    i++; 
    if(i == 6){ 
     i = 0; 
     lastpage ++; 
    } 
} 

페이지는 페이지의 배열입니다. 표시 방법은 당신의 욕망입니다.

+0

응답 해 주셔서 감사 드리며 채팅에 표시합니다. GUI는 좋을 것이나 나는 GUI를 위해 아무것도하지 않았다. –

+0

당신이 그 대답을 좋아한다면 그것을 바로 확인하십시오! 나는 그에게 감사 할 것이다. 스카이프에서 GUI 전화를 걸면 : introtv – Niton

2

이것은 필요한 페이지 수를 계산하는 코드입니다. 그것은 95 %의 시간 동안 작동합니다. 누구든지 더 나은 솔루션을 알고 있다면이 알고리즘을 개선하기 위해이 알고리즘을 수정하십시오.

int friendsPerPage = 5; 
int friendsIHave = 20; 

int pages = (friendsIHave/friendsPerPage) + (friendsIHave % friendsPerPage == 0 ? 0 : 1); 

친구 목록 (LISTHERE)을받는 방법을 알고 있다고 생각합니다. LISTHERE를 페이지 변수에 저장합시다. 그런 다음 우리는 단순히 내용을 인쇄 할 수 있습니다 :

int page = ... // you have to make this one 
int max = page * friendsPerPage; 
int min = max - friendsPerPage; 
for(int i = min + 1; i <= max; i++) { // loop through all friends in that page 
    // access your friend array here and print it out using "i" 
} 

을 나는 그것이 궤도에 당신을 얻을 바랍니다!

관련 문제