//今天随便写了一个猜拳的游戏,不过很烂的说,剪刀石头布.哈哈..
import java.util.*;
public class Test{
public static void main(String args[]){
System.out.println("游戏规则如下:\n\n出剪刀则输入1 出石头则输入2 出布则输入3 \n");
while(true){
Scanner ob = new Scanner(System.in);
System.out.print("你要出什么拳?:");
int i=ob.nextInt();
int[] s={1,2,3}; 
java.util.Random rand=new java.util.Random(System.currentTimeMillis());
int j=s[Math.abs(rand.nextInt())% s.length];
String p;
if (j==1)
p="剪刀";
else if (j==2)
p="石头";
else
p="布";
System.out.println("电脑猜拳出的是:"+p);
String k;
if((i==1&&j==3)||(i==2&&j==1)||(i==3&&j==2))
k="你赢了";
else if((j==1&&i==3)||(j==2&&i==1)||(j==3&&i==2))
k="电脑赢了";
else if((i==1&&j==1)||(i==2&&j==2)||(i==3&&j==3))
k="两人打平";
else
k="出错!数据输入不合法!";
System.out.println("\n两人猜拳的结果为:"+k+"\n\n");;
}
}
}我是菜鸟,今天没事写出来的..觉得代码很冗杂,请高手帮帮忙压缩一下..谢谢了..

解决方案 »

  1.   

    import java.util.Random;
    import java.util.Scanner;public class Test {    public final static String[] NAME = {"石头", "剪刀", "布"};    public static void main(String[] args){        System.out.println(
                    "游戏规则如下:\n\n" +
                    "出石头则输入 0     出剪刀则输入 1      出布则输入 2        \n");
            
            Random rand = new Random();        while(true) {
                Scanner ob = new Scanner(System.in);
                System.out.print("你要出什么拳?");            int i = ob.nextInt() % 3;
                int j = rand.nextInt(3);
                
                System.out.println("你猜拳出的是:" + NAME[i]);
                System.out.println("电脑猜拳出的是:" + NAME[j]);            String k = null;
                if(i == j) {
                    k = "两人打平";
                } else if((i + 1) % 3 == j) {
                    k = "你赢了";
                } else {
                    k = "你输了";
                }            System.out.println("\n两人猜拳的结果为:" + k + "\n\n");
            }
        }
    }将石头、剪刀、布定义成 0、1、2可以通过 (i + 1) % 3 == j 来判断你是否赢了。
      

  2.   

    http://topic.csdn.net/u/20070625/20/4df3d467-3bd4-4971-8ffa-21dcc648318d.html