Java入门案列之猜拳小游戏

最近正在学习Java基础知识,终于完成了第一个小demo,记录下来,算是一个小总结与整理,也希望可以帮助到别人。

先看看我写了哪些类:

Player:玩家类;

ComputerPlayer:机器人玩家类,主要用来实现机器人随机出拳;

Game:游戏类,主要实现游戏规则的逻辑,以及正式游戏的逻辑;

TestGuessBox:代码测试类;

Player类:

//玩家类
public class Player {
 private String name; //玩家昵称
 private int score; //玩家积分
 private String box; //玩家出的

 //玩家构造函数,传入玩家昵称与玩家初始积分
 Player(String name,int score){
 this.name=name;
 this.score=score;
 }

 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public int getScore() {
 return score;
 }
 public void setScore(int score) {
 this.score = score;
 }
 public String getBox() {
 return box;
 }
 public void setBox(String box) {
 this.box = box;
 }

}

ComputerPlayer类

public class ComputerPlayer extends Player {

 //机器人玩家构造函数,传入机器人昵称与初始积分
 ComputerPlayer(String name, int score) {
 super("机器人"+name, score);
 // TODO Auto-generated constructor stub
 }

 /**
 * 实现机器人玩家随机出拳的逻辑
 */
 void punch() {
 String[] box = {"剪刀","石头","布"};
 int index =(int) (Math.random()*3);

 this.setBox(box[index]);
 }
}

Game类

import java.util.Scanner;

public class Game {
 Player p; //玩家
 ComputerPlayer cp; //机器人玩家

 //构造函数,得到一个玩家和一个机器人玩家
 Game(Player p, ComputerPlayer cp) {
 this.p = p;
 this.cp = cp;
 }

 //开始游戏
 void start() {
  System.out.println("玩家"+p.getName()+
   "和"+cp.getName()+"开始游戏咯");
  System.out.println("您的初始积分为:"+p.getScore()+
   "\n"+cp.getName()+"的积分是:"+cp.getScore());
  Scanner sc=new Scanner(System.in);
  while(true) {

  System.out.println("请出拳(剪刀石头布,exit退出游戏):");
  String pbox=sc.next();
  if(filter(pbox)) { //过滤器
   if(pbox.equals("exit")) { //退出游戏
   break;
   }else {
   p.setBox(pbox);
   cp.punch();
   System.out.println("您出了:"+p.getBox());
   System.out.println(cp.getName()+"出了:"+cp.getBox());
   int result = ruler(p,cp);
   if(result>0) {
    System.out.println("您赢了,赢得10积分");
    p.setScore(p.getScore()+10);
    cp.setScore(cp.getScore()-10);
   }
   else if(result<0) {
    System.out.println("您输了,扣除10积分");
    p.setScore(p.getScore()-10);
    cp.setScore(cp.getScore()+10);
   }
   else {
    System.out.println("您和机器人打平了!");
   }
   }
  }

  else {
  System.out.println("输入了无法识别的关键字,请重新输入:");
  continue; //退出本次循环,进入下一次循环
  }

  } 

  System.out.println("本轮结束,积分情况如下:");
  System.out.println("您的当前积分:"+p.getScore());
  System.out.println(cp.getName()+"的当前积分:"
  +cp.getScore());

 }

 /**
 * 游戏规则
 *
 * @param p1 玩家1
 * @param cp2 机器玩家2
 * @return 0为打平,1为玩家赢,-1为机器玩家赢
 */
 int ruler(Player p1, Player cp2) {

 if (p1.getBox().equals("剪刀")) {
  if (cp2.getBox().equals("石头"))
  return -1;
  else if (cp2.getBox().equals("布"))
  return 1;
 } else if (p1.getBox().equals("石头")) {
  if (cp2.getBox().equals("剪刀"))
  return 1;
  else if (cp2.getBox().equals("布"))
  return -1;
 } else if (p1.getBox().equals("布")) {
  if (cp2.getBox().equals("剪刀"))
  return -1;
  else if (cp2.getBox().equals("石头"))
  return 1;
 }
 return 0;
 }

 /**
 * 过滤器
 * @param s 需要过滤的文字
 * @return
 */
 boolean filter(String s) {
 if (s.equals("剪刀") || s.equals("石头") || s.equals("布") || s.equals("exit")) {
  return true;
 } else
  return false;
 }
}

TestGuessBox类

public class TestGuessBox {

 public static void main(String[] args) {
 // TODO Auto-generated method stub
 Player p =new Player("小七月",100);
 ComputerPlayer cp=new ComputerPlayer("小丑八怪",100);
 Game game=new Game(p,cp);
 game.start();

 }

}

很简单,理清了思路就很容易写了。如果有错误请指出。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java实现数字猜拳小游戏

    本文编写一个java数字猜拳的小游戏,具体实现很简单 package guenum; import java.util.ArrayList; import java.util.Scanner; public class Demo { // private static Object list; public static void main(String ad[]) { System.out.println("-------------------------------------小游戏---

  • Java实现人机猜拳小游戏

    本文实例完成人机猜拳互动游戏的开发,供大家参考,具体内容如下 阶段一:实验--分析业务,创建用户类 1.分析业务,抽象出类.类的特征和行为 2.创建出用户类 阶段二:实验--创建出计算机类 1.创建计算机类Computer.实现计算机出拳 2.产生一个1-3的随机数,模拟计算机的出拳结果 阶段三:实验--创建游戏类,选择对战对手 1.创建游戏类Game 2.编写游戏类的初始化方法initial() 3.编写游戏类的开始游戏方法startGame() 阶段四:实验--实现一局对战 分别调用用户类和

  • java实现猜拳游戏

    本文实例为大家分享了java实现猜拳游戏的具体代码,供大家参考,具体内容如下 package com.farsight.session7; import java.util.Scanner; /** * 根据输入的数字,判断数组strs的值 然后进行逻辑判断 */ public class 猜拳 { public static void main(String[] args) { String[] strs = { "石头", "剪刀", "布"

  • Java入门案列之猜拳小游戏

    最近正在学习Java基础知识,终于完成了第一个小demo,记录下来,算是一个小总结与整理,也希望可以帮助到别人. 先看看我写了哪些类: Player:玩家类: ComputerPlayer:机器人玩家类,主要用来实现机器人随机出拳: Game:游戏类,主要实现游戏规则的逻辑,以及正式游戏的逻辑: TestGuessBox:代码测试类: Player类: //玩家类 public class Player { private String name; //玩家昵称 private int scor

  • java项目实现猜拳小游戏

    本文实例为大家分享了java实现猜拳小游戏的具体代码,供大家参考,具体内容如下 项目名称 猜拳小游戏 项目描述 玩家与电脑进行猜拳游戏,玩家行为采用输入方式,电脑行为采用随机形式. 代码实现 测试类 public class Test { public static void main(String[] args) { Game game = new Game(); game.start(); } } 主类:实现主方法 public class Game { private People peo

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

    人机猜拳小游戏,只要用到的java面向对象的思维模式.本游戏中有游戏玩家和计算机两个参与者.玩家和计算机都有的属性是姓名和得分.共分为4个类.下图是游侠小程序控制台截图:     以下是源代码: Computer.java类 package com.whf.guess.game; /** * @author :辰 * @version * 创建时间:2017年2月24日 上午8:38:29 * */ public class Computer { String name = "电脑";

  • 使用java实现猜拳小游戏

    本文实例为大家分享了java实现猜拳小游戏的具体代码,供大家参考,具体内容如下 实现下图要求 public class User { private String u_name; private int u_score; public User() { super(); } public User(String name, int score) { super(); this.u_name = name; this.u_score = score; } public String getName

  • java实现简单猜拳小游戏

    本文实例为大家分享了java实现猜拳小游戏的具体代码,供大家参考,具体内容如下 User.java import java.util.Scanner; public class User { String name; int score; public int showFist(){ System.out.println ("请出拳:1.剪刀\t2.石头\t3.布"); Scanner input=new Scanner ( System.in ); int choice=input.

  • java编写的简单移动方块小游戏代码

    本文实例讲述了java编写的简单移动方块小游戏代码.分享给大家供大家参考,具体如下: 运行效果截图如下: 第一次用java编写图形化的界面,还是有些青涩..以后继续努力!!具体代码如下: //Little Box Game by AlexYui //Game.java By 1093710210@ HIT import javax.swing.*; import java.awt.event.*; import java.awt.geom.*; import java.awt.*; import

  • 最常见的猜拳小游戏Android代码实现

    本文实例为大家分享了Android猜拳小游戏,供大家参考,具体内容如下 简单的 页面跳转 和 点击事件 的实现... --> AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.drag

  • python实现猜拳小游戏

    用python实现猜拳小游戏,供大家参考,具体内容如下 本练习旨在养成良好的编码习惯和练习逻辑思考. 1.使用python版本: 3.7.3: 2.代码内容实现如下 #!/usr/bin/env python # -*- coding: utf-8 -*- """ 简单实现猜拳小游戏,默认每回合 五局 Version: 0.1 Author: smartbabble Date: 2018-03-12 """ from random import

  • C++实现产生随机数和相应的猜拳小游戏实例代码

    一.简介 c++中,产生随机数的通用方法就是调用 srand()和 rand()  函数. Rand 单纯的rand()会返回一个0至RAND_MAX之间的随机数值,而RAND_MAX的值与int位数有关,最小是32767.不过rand()是一次性的,因为系统默认的随机数种子为1,只要随机数种子不变,其生成的随机数序列就不会改变. 其实,对于rand()的范围,我们是可以进行人为设定的,只需要在宏定义中定义一个random(int x)函数,就可以生成范围为0至x的随机数值.当然,也可以定义为r

  • python实现人机猜拳小游戏

    今天的这篇文章呢是对人机猜拳小游戏--石头剪刀布的一个描述以及代码展现 石头剪刀布游戏代码的简介:关于石头剪刀布这个小游戏,大致得到思路就是,玩家出一个手势,然后电脑再随机出一个手势,最后再判断是玩家获胜还是电脑获胜.最简单的思路就是将这三个手势是三个代号来表示,然后再去判断代号之间的关系,最后输出胜方. 最一般情况下,最先想到的就是使用1.2.3数字来对三个手势进行代号化,然后再通过代号的大小去判断,如下是对这个方式的简述: 石头   代号   用1来表示 剪刀   代号   用2来表示 布

随机推荐