喊数字小游戏 Major^

 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 }
rotate
基础学习
原文地址:https://www.cnblogs.com/qinmeizhen/p/6763279.html