软件编程
位置:首页>> 软件编程>> java编程>> java面向对象之人机猜拳小游戏

java面向对象之人机猜拳小游戏

作者:辰小狼睡不醒  发布时间:2021-12-20 18:12:34 

标签:java,猜拳游戏

人机猜拳小游戏,只要用到的java面向对象的思维模式。本游戏中有游戏玩家和计算机两个参与者。玩家和计算机都有的属性是姓名和得分。共分为4个类。下图是游侠小程序控制台截图:

java面向对象之人机猜拳小游戏 
java面向对象之人机猜拳小游戏 
java面向对象之人机猜拳小游戏

以下是源代码:

Computer.java类


package com.whf.guess.game;
/**
* @author :辰
* @version
* 创建时间:2017年2月24日 上午8:38:29
*
*/
public class Computer {

String name = "电脑";//名字
 int score = 0;//积分

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;
 }

}

Person.java 类


package com.whf.guess.game;

import java.util.Scanner;

/**
* @author :辰
* @version
* 创建时间:2017年2月24日 上午8:45:41
*
*/
public class Person {

String name = "匿名"; //名字
 int score = 0;   //积分  

public int showFist(){
   //接收用户的选择
   Scanner input = new Scanner(System.in);
   System.out.println("\n请出拳:1.剪刀 2.石头  3.布");
   int show = input.nextInt();
   //输出出拳结果,并且返回
   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;
 }

}

Game.java类。包含游戏的比赛核心代码


package com.whf.guess.game;

import java.util.Scanner;

/**
* @author :辰
* @version
* 创建时间:2017年2月24日 上午8:37:06
*
*/
public class Game<computer> {

Person person ; //甲方

Computer computer;// 乙方

int count;// 对战次数

public void inital(){
   person = new Person();
   computer = new Computer();
   count = 0;
 }
 //开始游戏
 public void startGame(){
   System.err.println("-------------欢迎进入猜拳游戏---------------");
   System.out.println();
   System.out.println("******************************************");
   System.out.println("——————出拳规则:1.剪刀  2.石头  3.布——————————");
   System.out.println("-------------》》》猜拳开始《《《------------");
   System.err.println("-------------------------------------------");
   Scanner input = new Scanner(System.in);
   String exit="n";//退出系统
   do {
     inital();//初始化
     //选择对手
     System.out.println("选择你的对手1.马云   2.马化腾   3.马大姐  ");
     int role = input.nextInt();
     if (role ==1) {
       computer.name="马云";
     }else if (role == 2) {
       computer.name="马化腾";
     }else if (role == 3) {
       computer.name="马大姐";
     }

//游戏玩家输入姓名
     System.out.println("请输入你的姓名:");
     person.name=input.next();
     System.out.println(person.name+"  VS  "+computer.name+"对战\n");
     //开始游戏
     System.out.println("要开始吗?(y/n)");
     //开始一局游戏
     String start = input.next();
     int perFist;//游戏用户出拳
     int comFist;//计算机出拳
     while (start.equals("y")) {
       //出拳
       perFist = person.showFist();
       comFist = computer.showFist();
       //判断胜负
       if ((perFist==1&&comFist==1)||(perFist==2&&comFist==2)||(perFist==3&&comFist==3)) {
         System.err.println("结果:和局,真衰!\n");//平局
       }else if ((perFist==2&&comFist==1)||(perFist==3&&comFist==2)||(perFist==1&&comFist==3)) {
         System.err.println("结果:你赢了,真帅!\n");//胜利
         person.score++;
       }else {
         System.err.println("结果是:^_^,你输了,下载再战!\n");//计算机赢
         computer.score++;
       }
       count++;
       System.out.println("是否进行下一轮(y/n)");
       start = input.next();

}
     //显示结果
     showResult();
     System.out.println("\n要开始下一局吗?(y/n):");
     exit = input.next();
     System.out.println();

} while (!exit.equals("n"));

System.out.println("系统退出");
 }
 private void showResult() {
   // TODO Auto-generated method stub
   //显示对战次数
   System.out.println("------------------------------");
   System.out.println(computer.name+"  VS  "+person.name);
   System.out.println("对战次数:"+count);
   //显示最终得分
   System.out.println("\n姓名\t得分");
   System.out.println(person.name+"\t"+person.score);
   System.out.println(computer.name+"\t"+computer.score+"\n");

//显示对战结果
   int result = calcResult();
   if (result==1) {
     System.err.println("结果:打成平手,下次再和你一分高下");
   }else if (result==2) {
     System.err.println("结果:恭喜恭喜你赢得比赛");
   }else
   {
     System.err.println("结果:不气馁,下次再来");//计算机赢
   }
   System.out.println("--------------------------");

}

//计算比赛结果
 private int calcResult() {
   // TODO Auto-generated method stub
   if (person.score == computer.score) {
     return 1;//战平
   }else if (person.score > computer.score) {
     return 2;//游戏玩家赢
   }else {
     return 3;//惜败
   }
 }

}

StartGuess.java类


package com.whf.guess.game;
/**
* @author :辰
* @version
* 创建时间:2017年2月24日 上午9:35:36
*
*/
public class StartGuess {
 public static void main(String[] args) {
   Game game = new Game();

game.inital();

game.startGame();
 }

}

来源:https://blog.csdn.net/chenfengbao/article/details/58596563

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com