1 public class One { 2 //叫数字小游戏 3 public static void main(String args[]){ 4 Scanner in=new Scanner(System.in); 5 String regex="-?[0-9]+";//用来判断是否为数字 6 LinkedList<String> list=new LinkedList<String>(); 7 list.add("A"); 8 list.add("B"); 9 list.add("C"); 10 list.add("D"); 11 list.add("E"); 12 System.out.println("游戏规则,从第一个开始,叫数字继续游戏,后面的按照提示操作,剩最后一个为胜利者,若中途有人叫非数字结束游戏"); 13 Iterator<String> iter=list.iterator(); 14 System.out.print("当前圈中的人:");//游戏开始前的成员 15 while(iter.hasNext()){ 16 String s=iter.next(); 17 System.out.print(s+" "); 18 } 19 System.out.println(""); 20 int x=1; 21 while(list.size()>1){ 22 System.out.println("第"+x+"轮 "+list.getFirst()+"叫数字:"); 23 String num=in.nextLine(); 24 int n; 25 if(num.matches(regex)){//判断,若为自然数,则继续 26 n=-Integer.parseInt(num); 27 x++; 28 } 29 else{ 30 System.out.println("不是数字,游戏结束!"); 31 break; 32 } 33 Collections.rotate(list, n);//rotate方法从索引为0开始,i的位置变为(i-n)mod(list.size) 34 System.out.print(list.removeFirst()+"退出圈子 "); 35 Iterator<String> iter1=list.iterator(); 36 System.out.print("当前圈中剩下:"); 37 while(iter1.hasNext()){ 38 String s=iter1.next(); 39 System.out.print(s+" "); 40 } 41 System.out.println(""); 42 System.out.println(""); 43 } 44 45 if(list.size()==1){//如果最后只剩下一个,则最后一个胜利 46 System.out.println("最后剩下:"+list.get(0)); 47 } 48 } 49 }