既然要用到踢人,我想首先范圍應(yīng)該是application,,管理員點(diǎn)踢人之后,給application設(shè)置個屬性,增加一個list,把客戶的id添進(jìn)去,客戶端頁面有一個一直讀取這個list的方法(自動刷新),如果其中有自己的id,就跳轉(zhuǎn)到另一個頁面,然后注銷session,把自己名字從那個list中消除(為下次登陸).
目前創(chuàng)新互聯(lián)建站已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、憑祥網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
這個就是服務(wù)器的一個接口,調(diào)用服務(wù)器的一個踢人的方法,服務(wù)器把此人從聊天列表中刪除了就好了
這個講得麻煩,其實(shí)只是求循環(huán)順序?yàn)??的倍數(shù)的位置?。剩余的就是地球人的位置。
代碼待會兒試著寫個看看。
被扔出的位置已經(jīng)算出來了。
第1輪拋出:位置:09
第2輪拋出:位置:18
第3輪拋出:位置:27
第4輪拋出:位置:06
第5輪拋出:位置:16
第6輪拋出:位置:26
第7輪拋出:位置:07
第8輪拋出:位置:19
第9輪拋出:位置:30
第10輪拋出:位置:12
第11輪拋出:位置:24
第12輪拋出:位置:08
第13輪拋出:位置:22
第14輪拋出:位置:05
第15輪拋出:位置:23
整下整個的代碼。
import java.util.ArrayList;
import java.util.List;
public class CirclePlus {
private ListString seats = new ArrayListString();
//初始化
public CirclePlus(){
if(seats.size()=0){
for(int i=0;i30;i++){
seats.add("位置:"+((i+1)=10?(i+1):"0"+(i+1)));
}
}
}
//踢人方法
public void Kick(int num){
//記錄當(dāng)前被踢人的座位
int tempseat = 0;
//當(dāng)前要踢的座位
int nowseat = 0;
//記錄當(dāng)前是第幾輪
int loop = 1;
//當(dāng)是15輪時退出
while(loop=15){
//要踢的人的座位號是上次被踢的座位號+num,-1是因?yàn)長IST的編號比真實(shí)座位號小1
nowseat = tempseat+num-1;
//????????? System.out.println("nowseat=="+nowseat+"\ntempseat=="+tempseat+"\nloop=="+loop);
//如果要踢的超出當(dāng)前人數(shù)范圍,則從第一個人開始重新算起(減掉當(dāng)前人數(shù))
if(nowseat=seats.size()){
//為符合上面踢人座位號(nowseat)計(jì)算,除去減掉當(dāng)前人數(shù)(seats.size())外,要加回修正值(上面減掉的1),
//以保證 要踢人的座位號(nowseat) 是正確的
tempseat=nowseat-seats.size()-num+1;
}else{
//踢人
System.out.println("第"+loop+"輪拋出:"+seats.remove(nowseat));
//保存當(dāng)前被踢的座位號
tempseat = nowseat;
//輪次增加
loop++;
}
}
System.out.println("踢人后剩余的安全座位號:");
for(String string: seats){
System.out.println(string);
}
}
public static void main(String[] args) {
CirclePlus cp = new CirclePlus();
cp.Kick(9);
}
}
OK了,換成while循環(huán)才弄好。。用for循環(huán)直接算座位號誤差太大了,還是一個個算。