这个简单的小游戏由三部分组成:
玩家猜拳,计算机猜拳(随机生成),然后比较,几局下来进行总的评判。
/**
模拟玩家
*/
import java.util.Scanner;
public class Player
{
private Scanner sc;
public Player()
{
sc = new Scanner(System.in);
}
//玩家出拳
public int showFist()
{
System.out.println("玩家请出拳:1、石头 2、剪子 3、布(请输入相应的数字)");
int fist = sc.nextInt();
switch(fist)
{
case 1:
System.out.println("玩家出拳:石头!");
break;
case 2:
System.out.println("玩家出拳:剪子!");
break;
case 3:
System.out.println("玩家出拳:布!");
}
return fist;
}
}
/**
*模拟计算机
*/
import java.util.Random;
public class Computer
{
private Random r;
public Computer()
{
r = new Random();
}
//计算机出拳
public int showFist()
{
int fist = r.nextInt(3) + 1; //随机产生1 2 3这三个整数
switch(fist)
{
case 1:
System.out.println("计算机出拳:石头!");
break;
case 2:
System.out.println("计算机出拳:剪子!");
break;
case 3:
System.out.println("计算机出拳:布!");
}
return fist;
}
}
import java.util.Scanner;
public class Game
{
private Computer computer;
private Player player;
private int count; //游戏进行的总轮数
private int cScore; //计算机得分
private int pScore; //玩家得分
public Game()
{
count = 0;
cScore = 0;
pScore = 0;
computer = new Computer();
player = new Player();
}
//模拟游戏进行过程
public void start()
{
Scanner sc = new Scanner(System.in);
System.out.println("---------------------欢迎进入石头剪子布游戏---------------------");
System.out.print("玩家要开始游戏吗?(y/n):");
String str = sc.next();
while("y".equals(str) || "Y".equals(str))
{
//进行一轮游戏
//1.玩家出拳
int pFist = player.showFist();
//2.玩家出拳
int cFist = computer.showFist();
//3.进行一轮评判
judge(pFist, cFist);
//4.提示玩家是否进行下一轮游戏
System.out.print("\n要继续进行下一轮游戏吗?(y/n):");
str = sc.next();
}
//进行本次游戏总的评判
//备注:最后的评判是根据pScore,cScore和count来决定的,而这三者都是类的数据成员,可以直接使用。
//所以就不需要在finalJudge这个方法中传入参数
finalJudge();
}
//进行一轮游戏胜负的评判
public void judge(int pFist, int cFist)
{
count++;
if((cFist == 1 && pFist == 2) || (cFist == 2 && pFist == 3)
|| (cFist == 3 && pFist == 1))
{
cScore++; //计算机得分
System.out.println("抱歉,本轮玩家输了!");
}
else if((cFist == 2 && pFist == 1) || (cFist == 3 && pFist == 2)
|| (cFist == 1 && pFist == 3))
{
pScore++; //玩家得分
System.out.println("恭喜,本轮玩家获胜了!");
}
else
{
System.out.println("真衰,本轮平了!");
}
}
//进行总的评判
public void finalJudge()
{
System.out.println("本轮游戏总共进行了" + count + "轮,玩家获胜" + pScore + "轮,计算机获胜"
+ cScore + "轮,平了" + (count - pScore - cScore) + "轮!");
if(cScore > pScore)
{
System.out.println("最后结果:呵呵,笨笨,下次加油!");
}
else if(cScore < pScore)
{
System.out.println("最后结果:恭喜玩家获胜!");
}
else
{
System.out.println("最后结果:走着瞧,下次再决胜负!");
}
}
public static void main(String[] args)
{
Game game = new Game();
game.start();
}
}