剪包锤小游戏(java,命令行)

来源:互联网 发布:365自考网络 编辑:程序博客网 时间:2024/05/23 11:12
  1. /*  =================== 剪包锤游戏 ========================
  2.         功能:
  3.     玩家选择玩游戏或者不玩,出“剪子,包子,锤子”中的一个。
  4.     程序随机出招,然后判断输赢情况,并打印出来
  5.     可以循环玩,直到玩家愿意退出为止。
  6.         不足的地方:
  7.     异常处理。如果玩家输入错误会得到提示并更正输入,
  8.     但如果连续两次错误输入,程序就会结束。
  9.     也就是说,异常判断只有一次有效,不清楚原因。。
  10. ============================================================*/
  11. import java.util.*;
  12. // --------------- 主程序 --------------------
  13. // --------------------------------------------
  14. public class Game_JBC {
  15.     public static void main(String[] args) {
  16.         Scanner in = new Scanner(System.in);
  17.         int i;
  18.         //循环开始
  19.         do {
  20.             System.out.print("开始玩吗?(1.玩 / 2.不玩):");
  21.             i = in.nextInt();
  22.             //异常判断
  23.             read_data:
  24.             if(i!=1 && i!=2) {
  25.                 System.out.print("只可以输入“1”或者“2”,请重新输入:");
  26.                 i = in.nextInt();
  27.                 break read_data;
  28.             }
  29.             //游戏开始
  30.             read_data:
  31.             if (i==1) {
  32.                 int p;
  33.                 System.out.print("出什么呢?(1.剪子 / 2.包子 / 3.锤子): ");
  34.                 p = in.nextInt();
  35.                 //异常判断
  36.                 if(p!=1 && p!=2 && p!=3){
  37.                     System.out.print("只可以输入“1~3”,请重新输入: ");
  38.                     p = in.nextInt();
  39.                     break read_data;
  40.                 }
  41.                 JBC game = new JBC(p);
  42.                 game.computer_cho();
  43.                 System.out.println("你出的是:" + game.player_cho());
  44.                 System.out.println("电脑出了:" + game.computer_cho());
  45.                 game.decide();
  46.                 
  47.                 //继续否?
  48.                 System.out.println("------------------------------");
  49.                 System.out.println("要在玩一次吗~");
  50.             }
  51.         }while(i==1);
  52.         //循环结束,退出游戏
  53.         System.out.println("Bye!");
  54.     }
  55. }
  56. // --------------- 类部分 --------------------
  57. // --------------------------------------------
  58. class JBC {
  59.     //构造器
  60.     JBC(int p) {
  61.         player = p;
  62.     }
  63.     //得到cmputer的出招
  64.     public String computer_cho() {
  65.         Random x = new Random();
  66.         computer = x.nextInt(3);
  67.         //return computer;
  68.         switch (computer) {
  69.             case 0:
  70.                 computer_do = "剪子";
  71.                 break;
  72.             case 1:
  73.                 computer_do = "包子";
  74.                 break;
  75.             case 2:
  76.                 computer_do = "锤子";
  77.                 break;
  78.         }
  79.         return computer_do;
  80.     }
  81.     //得到玩家的出招
  82.     public String player_cho() {
  83.         switch (player) {
  84.             case 1:
  85.                 player_do = "剪子";
  86.                 break;
  87.             case 2:
  88.                 player_do = "包子";
  89.                 break;
  90.             case 3:
  91.                 player_do = "锤子";
  92.                 break;
  93.         }
  94.         return player_do;
  95.     }
  96.     
  97.     //判断输赢
  98.     public void decide() {
  99.         System.out.print("结果是:");
  100.         if (player_do == "包子"){
  101.             if (computer_do == "包子")
  102.                 System.out.println("平了!");
  103.             else if (computer_do == "剪子")
  104.                 System.out.println("你输了!");
  105.             else
  106.                 System.out.println("你赢了!");
  107.             }
  108.         else if (player_do == "剪子"){
  109.             if (computer_do == "包子")
  110.                 System.out.println("你赢了!");
  111.             else if (computer_do == "剪子")
  112.                 System.out.println("平了!");
  113.             else
  114.                 System.out.println("你输了!");
  115.             }
  116.         else {
  117.             if (computer_do == "包子")
  118.                 System.out.println("你输了!");
  119.             else if (computer_do == "剪子")
  120.                 System.out.println("你赢了!");
  121.             else
  122.                 System.out.println("平了!");
  123.         }
  124.     }
  125.     
  126.     //私有成员
  127.     private int player;
  128.     private int computer;
  129.     private String player_do;
  130.     private String computer_do;
  131. }