62,614
社区成员
发帖
与我相关
我的任务
分享
package perfect;
import java.util.Random;
public class Computer
{
// private String name;
// private int score;
int a,m;
String name2;
public void showFist()// 电脑出拳方法
{
Random r1 = new Random();
a = r1.nextInt(3);// 随机生成一个1~3的数字,对应石头剪刀布。
Random r2 = new Random();//生成电脑姓名的随机数。
m = r2.nextInt(3);
if (m == 0)
{
name2 = "曹操";
// System.out.print("曹操");
// c.showFist();
}
else if (m == 1)
{
name2 = "孙权";
// System.out.print("孙权");
// c.showFist();
}
else if (m == 2)
{
name2 = "刘备";
System.out.print("刘备");
// c.showFist();
}
if (a == 0)//生成随机数,对应前面的人名
{
System.out.println(name2 + "出的是 石头!");
}
else if (a == 1)
{
System.out.println(name2 + "出的是 剪刀!");
}
else if (a == 2)
{
System.out.println(name2 + "出的是 布!");
}
// Computer c = new Computer();//对computer进行实例化,用于调取showFist方法。
// score ++;
}
}
package perfect;
import java.util.Scanner;
public class Game
{
// private Person person; // 甲方
// private Computer computer; // 乙方
// private int count;// 对战次数
String str2, str3;
static String name,cycle;// 关于姓名输入的字符串
public int lost, win, deuce; //
/**
* 初始化
*/
public void initial()
{
// 初始化工作
for (int i = 0; i <= 16; i++)
{
System.out.print("*");
}
System.out.println();
System.out.println("**" + " 开始 " + " 游戏 " + " ** ");
for (int i = 0; i <= 16; i++)
{
System.out.print("*");
}
System.out.println();
System.out.println("出拳规则:0、石头 ,1、剪刀 ,2、布");
System.out.print("请输入你的姓名:");
Scanner s = new Scanner(System.in);
boolean b = true;
while (b)// 对所输入的姓名的字符串进行非空循环
{
name = s.nextLine();//定义name的值
setName(name);//设置姓名
// System.out.println("name = " + name);//程序初期用于测试是否讲name的值传入Person的showFist()方法
if (!name.equals(""))// 判断所输入的字符串是后为空
{
b = false;
// System.out.println("name = " + name);//初期用于测试是否传入name的值
}
else
// 若为空则重新输入
{
System.out.print("你没有输入姓名,无法开始游戏,是否继续(y/n):");
Scanner s2 = new Scanner(System.in);
String str = s2.next();
if ("y".equals(str))
{
b = true;
System.out.print("请输入你的姓名:");
}
else
{
b = false;
System.exit(0);
}
}
}
}
public String getName()
{
return this.name;
}
public void setName(String name)
{
this.name = name;
}
/**
* 开始游戏
*/
public void startGame()// 开始游戏,控制游戏逻辑
{
Person p = new Person();
Computer c = new Computer();
Scanner s = new Scanner(System.in);
Game game = new Game();
boolean b = true;
while (b)//对有事是否重新开始游戏进行一个循环对“n”则结束,“y”执行下一轮。
{
System.out.println("是否继续游戏(y/n)?");
String cycle = s.nextLine();
if (cycle.equals("n"))
{
b = false;
break;
}
else if (cycle.equals("y"))
{
p.showFist();
c.showFist();
// System.out.println(p.n);//程序初期用于检查n的值时候传进来。
// System.out.println(c.a);//程序初期用于检查a的值时候传进来。
if (p.n == c.a)// 首先经过计算,确定了所有返回的可能值,通过if语句判断输出的值
{
System.out.println("deuce");
deuce++;
}
else if (p.n - c.a == 1 || p.n - c.a == -2)
{
System.out.println("lost");
lost++;
// System.out.println(p.n);//程序初期用于检查n的值时候传进来。
// System.out.println(c.a);//程序初期用于检查a的值时候传进来。
}
else
{
System.out.println("win");
win++;
}
for (int i = 0; i <= 16; i++)
{
System.out.print("-");
}
System.out.println();
System.out.println("deuce:\t" + deuce);
System.out.println("win:\t" + win);
System.out.println("lost:\t" + lost);
b = true;
}
else{
System.out.println("输入有误,是否重新输入(y/n)");
Scanner s7 = new Scanner(System.in);
String str7 = s7.next();
}
}
}
/**
* 显示比赛结果
*/
public void showResult()
{
/* 显示最后结果 */
// 打印玩了多少局,电脑获胜还是人获胜
Game game = new Game();
game.startGame();
for (int i = 0; i <= 16; i++)
{
System.out.print("-");
}
System.out.println();
if (game.win > game.lost)
{
System.out.println("You are winner");
}
else if (game.win < game.lost)
{
System.out.println("You are loser");
}
else
{
System.out.println("You are deuce");
}
}
/**
* 计算比赛结果
*/
// public int calcResult()
// {
// return 0;
// }
}
package perfect;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Person
{
// private String name = "匿名";
// private int score;
int n;
public void showFist() // 人出拳
{
System.out.print("你将出:");
Scanner s = new Scanner(System.in);
Game game = new Game();
// 对用户输入的数字进行判断
boolean b = true;
while (b)
{
boolean b1 = false;
do{
try//捕获程序输入字符串异常。
{
n = s.nextInt();
b1 = true;
}
catch (InputMismatchException n)//取出异常
{
s.next();
System.out.println("输入有误,是否重新输入(y/n)");
Scanner s5 = new Scanner(System.in);
String str5 = s5.next();
if ("y".equals(str5))//对异常进行判断,满足条件则继续执行
{
b = true;
System.out.print("你将出:");
}
else if("n".equals(str5))
{
b = false;
System.exit(0);
}
else//不满足条件则停止程序运行
{
System.out.println("输入有误,是否重新输入(y/n)");
// Scanner s6 = new Scanner(System.in);
String str6 = s5.next();
}
}
}while(!b1);//直到不满足条件(!false = true)退出循环
if (n < 3)//随机出石头剪刀布
{
switch (n)
{
case 0:
System.out.print(game.name + "出的是 石头!");
break;
case 1:
System.out.print(game.name + "出的是 剪刀!");
break;
case 2:
System.out.print(game.name + "出的是 布!");
break;
}
b = false;
// 用户输入错误,让其选择是否重新输入
}
else//输入错误后重新输入
{
System.out.print("您的输入错误,是否继续(y/n):");
Scanner s2 = new Scanner(System.in);
String str = s2.next();
if ("y".equals(str))
{
b = true;
System.out.print("你将出:");
}
else
{
b = false;
System.exit(0);
}
}
}
}
}
package perfect;
public class StartGuess {
/**
* 人机互动版猜拳游戏
* @param args
*/
public static void main(String[] args) {
//游戏入口
Game game = new Game();
game.initial();
game.showResult();
game.startGame();
}
}
这个是我在学校写的猜拳游戏的代码,希望对楼主有帮助