玩家类:
import java.util.*;
public class Players {
//玩家角色名
String
userName="";-----------------------------用户名字
//赢的次数
int
userWin=0;----------------------------------用户赢的次数
public void username(){ ----------------------开始写用户的属性和方法 (先写用户属性
在写用户方法)
boolean
isGoOn=false;-------------------------布尔类型
do{
//提示玩家选择角色
System.out.print("请选择角色:(1.刘备\t2.孙权\t3.曹操):");
//接收玩家的选择
Scanner input=new
Scanner(System.in);--------------------------利用键盘获取用户所选择的游戏角色来进行玩出拳游戏
String
role=input.next();--------------------------------------role
只是选择角色一个变量 利用他来判断你是选择的是那个是角色从而进行后面的判断
//根据玩家选择显示出什么拳
if(role.equals("1")){
userName="刘备";-----------------------《1》刘备
}else if(role.equals("2")){
userName="孙权";-----------------------《2》孙权
}else if(role.equals("3")){
userName="曹操";-----------------------《3》曹操
}else {
//如果超出范围就提示重新选择
System.out.println("输入错误!请重新选择!");----------------------如果用户输入的不是《1
2 3》的话 他会跳出错误 叫你重新选择
isGoOn=true;
}
}while(isGoOn);-----------------------------------------------------isGoON
只是定义来表明循环是否重复执行 如果为true执行 flase不执行
}
int
fist=0;//用户的输入---------------------------fist 定义为出拳的数。。。。。defualt为0
public void showFist(){
boolean isGo=false;
do{
//提示玩家选择要出什么拳
System.out.print("请出拳:1.剪刀\t2.石头\t3.布(选择相应数字):");----------------------游戏规则 //记录玩家的选择
Scanner input=new
Scanner(System.in);----------------------------------------------------从键盘输入获取的数据看他是出的什么拳
然后在判断
fist=input.nextInt();
//根据玩家选择显示出什么拳
if(fist==1){
System.out.println("你出拳:剪刀");
}else if(fist==2){
System.out.println("你出拳:石头");
}else if(fist==3){
System.out.println("你出拳:布");
}else {
//如果超出范围就提示重新选择
System.out.println("输入错误!请重新选择!");-----------------------------------------这个跟上面一样要是输入不对的话
也是用来判断一下是否要循环
isGo=true;
}
}while(isGo);
}
}
//上面是用户类 的属性和方法
// 下面我们也要弄一下计算机的属性和方法 差不多跟用户类一样 有一点要注意看
计算机类:
public class Computers {
//计算机名字
String
computerName="匿名";--------------------------------计算机自定义一个名字
//计算机赢的次数
int
computerWin=0;-----------------------------------------计算机赢的次数
int
computerFist=0;--------------------------------------computerFist
跟上面的Fist 是功能是一样的 不过计算机只是随机改变
而用户那边要是从用户那边获取的
public void showFist(){
//电脑获取随机数
computerFist=(int)(Math.random()*3+1);------------------计算机随机出拳的语法结构
//根据获取的随机数提示出什么拳
if(computerFist==1){------------------------------------判断而以 System.out.println("电脑出拳:剪刀");
}else if(computerFist==2){
System.out.println("电脑出拳:石头");
}else if(computerFist==3){
System.out.println("电脑出拳:布");
}
}
}
//这个计算机的类变写完了 不过有人会问 写完了 感觉少了东西耶 不急 我来解释一下
// 用户类里面有(属性和方法)为什么计算机没有
// 计算机是一个固定的也可能说是一个固定的变量吧。。。而现在他只方法啦。。
游戏控制类:
import java.util.Scanner;
public class GameControl {
Players player;----------------------------player
变量用来后面和计算机对比
Computers
computer;------------------------Computer 变量计算机也是用来对比的
// 记录对战次数
int sum =
0;------------------------------sum 变量 用来定义 用户和计算机对比的结果
// 显示欢迎界面
public void initial() {
player = new Players(); // 玩家实例
computer = new Computers();//
电脑实例----------------------把用户和计算机都初始化一下
}
public void welcome() {
System.out
.println("---------------------------------------------------");
System.out.println("\t\t-----------------");
System.out.println("\t\t-- 猜拳,开始 --");
System.out.println("\t\t-----------------");
System.out.println("------------------------------------------------");
}
// 显示出拳规则
public void rule() {
System.out.println("出拳规则:\t1.剪刀\t2.石头\t3.布");
}
// 提示选择角色
public boolean isStart() {
boolean con = true;
// 询问是否开始
System.out.print("是否开始游戏?(y/n):");
Scanner input = new Scanner(System.in);
String yes = input.next();
if (yes.equalsIgnoreCase("y")) {
con = true;
} else {
con = false;
}
return con;
}
//这断代码问你要不是开始游戏 字符串类型来作判断的
public boolean then() {
boolean con = true;
// 询问是否开始
System.out.print("是否继续?(y/n):");
Scanner input = new Scanner(System.in);
String yes = input.next();
if (yes.equalsIgnoreCase("y")) {
con = true;
} else {
con = false;
}
return con;
}
//上面的开始了游戏 下面就开始问要不要断续玩 也是利用String来判断的
public void compare() {
// 比较输赢
if (player.fist >
computer.computerFist) {-------------player.fist
是用户出拳的结果 computer.computerFist
是计算机出拳的结果 用他们来对比一下 显示一下最后的结果
if (player.fist -
computer.computerFist < 2) {
//
显示本次结果
System.out.println("真厉害!这次你赢了!");
//
记录胜利次数
player.userWin += 1;------------------------------记录用户赢的次数
} else {
System.out.println("下次加油!这次你输了!");
computer.computerWin += 1;
}
} else if (player.fist ==
computer.computerFist) {
System.out.println("真没意思,平局!");
} else if
(player.fist
if (computer.computerFist -
player.fist < 2) {
//
显示本次结果
System.out.println("下次加油!这次你输了!");
//
记录胜利次数
player.userWin += 1;
} else {
System.out.println("真厉害!这次你赢了!");
computer.computerWin += 1;
}
}
}
//上面是用户跟计算要对战的输赢次数
public void startGame() {
// 初始化
initial();
// 显示欢迎界面
welcome();
// 显示规则
rule();
// 选择角色
player.username();
// 询问是否开始
if (isStart() == true) {
do {
System.out.println("---------------------------------------------------");
//
用户出拳
player.showFist();
//
电脑出拳
computer.showFist();
// 比较
//
显示结果
compare();
//
记录对战次数
sum +=
1;
System.out.println("---------------------------------------------------");
//
询问是否继续
} while (then());
// 显示对战双方
actors();
// 显示对战次数
times();
// 显示最终胜负
results();
//分割线
System.out.println("----------------------------------------作者:修罗№魂");
} else {
System.out.println("程序结束!");
}
}
public void actors() {
System.out.println(player.userName + " VS " +
computer.computerName);
}
public void times() {
System.out.println("对战次数:" + sum);
}
public void results() {
if (player.userWin >
computer.computerWin) {
System.out.println("恭喜!恭喜!最后还是你赢了.");
} else if (computer.computerWin >
player.userWin) {
System.out.println("算了吧!就你这点水平还不行!");
} else {
System.out.println("平局!");
}
}
}
测试类:
public class StartGame {
public static void main(String[] args) {
// TODO Auto-generated method stub
GameControl game=new GameControl();
game.startGame();
}
}