Java人机猜拳

Java题 专栏收录该内容
1 篇文章 0 订阅

**第一次发 可能不怎么完美 **

package Game;

import java.util.Scanner;
/**

  • 用户类
  • @author 老肖
  • /
    public class Person {
    //编写属性
    String name;//用户名
    int score;//积分
    //编写用户玩的方法
    public int showFirst(){
    System.out.println(“请出拳:1.石头 2.剪刀 3.布(请输入相对应的数字):”);
    Scanner sc = new Scanner(System.in);//引用扫描器
    int choice = sc.nextInt();
    switch(choice){
    case 1:
    System.out.println(“你出拳:石头”);
    break;
    case 2:
    System.out.println(“你出拳:剪刀”);
    break;
    case 3:
    System.out.println(“你出拳:布”);
    break;
    default:
    System.out.println(“输入有误!”);
    break;
    }
    return choice;
    }
    }

package Game;
/**

  • 电脑类
  • @author 老肖
  • */
    public class Computer {
    //编写属性
    String name;//电脑名
    int score;//电脑积分
    //电脑输出的方法
    public int chuQuan(){
    int random = (int) (Math.random() * 3 + 1);// 产生1到3的随机数
    switch (random) {
    case 1:
    System.out.println(name+“出拳:石头”);
    break;
    case 2:
    System.out.println(name+“出拳:剪刀”);
    break;
    case 3:
    System.out.println(name+“出拳:布”);
    break;
    default:
    System.out.println(“输入有误,请重新输入:”);
    }
    return random;
    }
    }

package Game;

import java.util.Scanner;
/**

  • 游戏类
  • @author 老肖

*/
public class guessing {
Scanner sc = new Scanner(System.in);//引用扫描器
//属性
Person Person;//用户玩家
Computer Computer;//电脑玩家
int count;//对战次数
int score;//分数

//游戏类的初始化方法
public void initia(){
	//创建用户对象
	Person = new Person();
	//创建电脑对象
	Computer = new Computer();
	//初始化对战次数为0
	count = 0;
}


//开始游戏的方法
public void startGame(){
	System.out.println("--------------------欢迎进入游戏世界-----------------------\n\n");
	System.out.println("\t\t*******************");
	System.out.println("\t\t**\t猜拳,开始\t**");
	System.out.println("\t\t*******************\n\n");
	System.out.println("出拳规则:1.石头 2.剪刀 3.布");
	System.out.println("请选择对方角色(1:刘备 2:孙权 3:曹操)");
	int choose = sc.nextInt();//接收用户选择的角色
	switch(choose){
	case 1:
		Computer.name = "刘备";//把值赋给电脑类的name
		System.out.println("你选择了"+Computer.name+"对战");
		break;
	case 2:
		Computer.name = "孙权";
		System.out.println("你选择了"+Computer.name+"对战");
		break;
	case 3:
		Computer.name = "曹操";
		System.out.println("你选择了"+Computer.name+"对战");
		break;
		default:
			System.out.println("输入有误!");
			break;
	}
	System.out.println("请输入你的姓名:");
	Person.name = sc.next();
	System.out.println("要开始吗(y/n)");
	String con = sc.next();
	if(con.equals("n")){//如果不开始输入"n"的话 就提示退出
		System.out.println("系统退出!");
	}
		int perFist;//用户出的拳
		int comFist;//计算机出的拳
		while(con.equals("y")){
		//出拳
		perFist = Person.showFirst();//调用用户类的方法
		comFist = Computer.chuQuan();//调用电脑类的方法
		//裁决
		if((perFist == 1 && comFist == 1) || 
				(perFist == 2 && comFist == 2) || 
					(perFist == 3 && comFist == 3)){
			System.out.println("结果:和局!\n"); //平局
		}else if((perFist == 1 && comFist == 3) || 
				(perFist == 2 && comFist == 1) || 
					(perFist == 3 && comFist == 2)){
			System.out.println("You lost!");//用户输了
			Computer.score++;//记录电脑赢的分数
		}else{
			System.out.println("You win!");//用户赢了
			Person.score++;//记录用户赢的分数
		}
		count++;//对战次数依次加一
		System.out.println("是否进入下一轮(y/n)");
		con = sc.next();	
	}
		//如果结束 则显示最后的结果
		showResult();
}	
	//显示最后的输出结果
	public void showResult(){
	System.out.println("------------------------------------------------");
	System.out.println(Computer.name+"\tVS\t"+Person.name);
	System.out.println("对战次数:"+count);
	System.out.println("姓名"+"\t"+"积分");
	System.out.println(Person.name+"\t"+Person.score);
	System.out.println(Computer.name+"\t"+Computer.score);
	if(Person.score>Computer.score){//如果用户的分数大于电脑的分数 则用户赢
		System.out.println(Person.name+"赢了!");
	}else{
		System.out.println(Computer.name+"赢了!");
	}
	System.out.println("-------------------------------------------------");
}

}

package Game;

public class test {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	/*//创建用户类的对象
	Person per = new Person();
	per.showFirst();//调用用户类的方法
	//创建电脑类的对象
	Computer com = new Computer();
	com.chuQuan();//调用电脑类的方法*/	
	
	//创建游戏类的对象
	guessing g = new guessing();
	g.initia();//调用初始化方法
	g.startGame();//调用开始游戏的方法
}

}

  • 2
    点赞
  • 1
    评论
  • 5
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值