java 猜拳游戏代码分享

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q54244125/article/details/77281487
面向对象的思维去理解
package com.game.guess;

/**
 * 计算机类
 * 
 */
public class Computer {
       String name = "电脑"; // 名字
       int score = 0;;       // 积分
       
       /**
        * 出拳
        * @return 出拳结果:1.剪刀 2.石头 3.布
        */
       public int showFist(){
    	   // 产生随机数
    	   int show = (int)(Math.random()*10)%3 + 1;  //产生随机数,表示电脑出拳
    	   
    	   // 输出出拳结果并返回
    	   switch(show){
    	      case 1:
    	    	  System.out.println(name+"出拳: 剪刀");
    	    	  break;
    	      case 2:
    	    	  System.out.println(name+"出拳: 石头");
    	    	  break;
    	      case 3: 
    	    	  System.out.println(name+"出拳: 布");
    	    	  break;
    	   }
    	   return show;
       }
}


package com.game.guess;
import java.util.Scanner;
/**
 * 用户类
 *
 */
public class Person { 
	String name = "匿名";  // 名字
    int score = 0;         // 积分  
       /**
       * 出拳
       * @return 出拳结果:1.剪刀 2.石头 3.布
       */
      public int showFist(){
    	  // 接收用户的选择
    	  Scanner input = new Scanner(System.in);
    	  System.out.print("\n请出拳:1.剪刀 2.石头 3.布 (输入相应数字) :");
    	  int show = input.nextInt();
    	  
    	  // 输出出拳结果,并返回
    	  switch(show){
    	      case 1: 
    	    	  System.out.println("你出拳: 剪刀");
    	    	  break;
    	      case 2:
    	    	  System.out.println("你出拳: 石头");
    	    	  break;
    	      case 3: 
    	    	  System.out.println("你出拳: 布");
    	    	  break;
    	  }
    	  return show;
      }
}


package com.game.guess;

import java.util.Scanner;

/**
 * 游戏类 :实现对战结果显示
 */
public class Game {
	Person person; // 甲方
	Computer computer; // 乙方
	int count; // 对战次数

	/**
	 * 初始化
	 */
	public void initial() {
		person = new Person();
		computer = new Computer();
		count = 0;
	}

	/**
	 * 开始游戏
	 */
	public void startGame() {
		initial(); // 初始化
		System.out.println("----------------欢 迎 进 入 游 戏 世 界----------------\n");
		System.out.println("\n\t\t******************");
		System.out.println("\t\t**  猜拳, 开始    **");
		System.out.println("\t\t******************");
		System.out.println("\n\n出拳规则:1.剪刀 2.石头 3.布");
		/* 选择对方角色 */
		System.out.print("请选择对方角色(1:乔布斯 2:比尔盖茨 3:马云): ");
		Scanner input = new Scanner(System.in);
		int role = input.nextInt();
		if (role == 1) {
			computer.name = "刘备";
		} else if (role == 2) {
			computer.name = "孙权";
		} else if (role == 3) {
			computer.name = "曹操";
		}
		System.out.println("你选择了 " + computer.name + "对战");

		System.out.print("\n要开始吗?(y/n) ");
		String con = input.next();
		int perFist; // 用户出的拳
		int compFist; // 计算机出的拳
		while (con.equals("y")) {
			/* 1)出拳 */
			perFist = person.showFist();
			compFist = computer.showFist();
			/* 2)裁决 */
			if ((perFist == 1 && compFist == 1) || (perFist == 2 && compFist == 2) || (perFist == 3 && compFist == 3)) {
				System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧 !\n");
				// 平局
			} else if ((perFist == 1 && compFist == 3) || (perFist == 2 && compFist == 1)
					|| (perFist == 3 && compFist == 2)) {
				System.out.println("结果: 恭喜, 你赢了!"); // 用户赢
				person.score++;
			} else {
				System.out.println("结果说:^_^,你输了,真笨!\n"); // 计算机赢
				computer.score++;
			}
			count++;
			// 3)判断,是否要继续游戏
			System.out.print("\n是否开始下一轮(y/n):  ");
			con = input.next();
		}
		/* 显示结果 */
		showResult();
	}

	/**
	 * 显示比赛结果
	 */
	public void showResult() {
		/* 显示最后结果 */
		System.out.println("---------------------------------------------------");
		System.out.println(computer.name + "  VS  " + person.name);
		System.out.println("对战次数:" + count);

		int result = calcResult();
		if (result == 1) {
			System.out.println("结果:打成平手,下次再和你一分高下!");
		} else if (result == 2) {
			System.out.println("结果:恭喜恭喜!"); // 用户获胜
		} else {
			System.out.println("结果:呵呵,笨笨,下次加油啊!"); // 计算机获胜
		}
		System.out.println("---------------------------------------------------");
	}

	/**
	 * 计算比赛结果
	 * 
	 * @return 1:战平;2:用户赢;3:电脑赢
	 */
	public int calcResult() {
		if (person.score == computer.score) {
			return 1; // 战平
		} else if (person.score > computer.score) {
			return 2; // 用户赢
		} else {
			return 3; // 电脑赢
		}

	}
}

package test;

import com.game.guess.Game;

/**
 * 人机互动版猜拳游戏 
 * 程序入口
 */
public class StartGuess {
	public static void main(String[] args) {
		Game Game= new Game();
		Game.startGame();
	}
}


猜你喜欢

转载自blog.csdn.net/q54244125/article/details/77281487