怎么⽤java实现⼈机猜拳?
任务概述:
通过控制台⽅式实现⼀个⼈机对战的猜拳游戏,⽤户通过输⼊ (1.剪⼑ 2.⽯头 3.布),机器随机⽣成(1.剪⼑ 2.⽯头 3.布),胜者积分,n 局以后通过积分的多少判定胜负。
根据任务⽬标的要求,我们可以分成得出以下信息
1个测试类
玩家、机器⼈、游戏场  等3个类
三个类的功能(⽅法⽤蓝⾊表⽰,属性⽤紫⾊表⽰)
为了⽅便⽐较,将(剪⼑,⽯头,布)⽤数字(1,2,3)分别进⾏表⽰
玩家:拳头属性,玩家的得分,对战的局数,玩家出拳
机器:拳头属性,机器的得分,⽣成随机数,
游戏场:1.开始预加载的界⾯ 2.⽐较双⽅的数据(机器⼈的随机数以及玩家输⼊的数据) 3.⽐较后能进⾏积分的积累 4.能⽐
较双⽅积分,并进⾏结果展⽰,以及判定输赢
那,,,以上怎么实现呢?
接下来就是我们的代码了(记得实操呀= ̄ω ̄=)
⾸先是User类
根据⽬标,可以知道我们需要  有 “⽤户出拳”  积分
因为要循环录⼊⽤户输⼊的数据  所以⽤  Scanner 类⽣成  input 对象
属性:user(承载⽤户输⼊的  剪⼑⽯头布)  score(承载⽤户每轮的得分) num(⽤户要进⾏的游戏次数)
⽅法:setUser录⼊⽤户输⼊的数据
/**
* ⽤于获得和存储⽤户的出拳
*/
public class User {
private static Scanner input = new Scanner(System.in);
private int user;//⽤户出拳
int score;//⽤户积分
int num;//对战局数
/**
* 提⽰语,录⼊⽤户出拳数据,并输出⽤户出拳信息
* @return
*/
public int setUser(){
System.out.println("请输⼊:1-剪⼑,2-⽯头,3-布");
user = Int();
if (user==1){
System.out.println("⽤户:剪⼑");
}else if (user==2){
System.out.println("⽤户:⽯头");
}else if (user==3){
System.out.println("⽤户:布");
}println("输⼊错误!请按规则输⼊对应数字!");
return user;
}
}
下⾯是Machine(⼈机)类
重点:随机数
属性:score(承载每轮猜拳 ⼈机的 得分情况),fist(承载随机数后⽣成的剪⼑,⽯头,布)
⽅法:在setId⽅法中 ⽣成Random(随即类)的random(对象)
public class Machine {
private static int fist;
public int score;
/**
* ⽣成随机数
* @return 机器⼈出拳的数据
*/
public int setId(){
Random random = new Random();
int r = Int(3);
fist = r+1;//获取机器⼈的随机出拳
if (fist==1){
System.out.println("机器⼈:剪⼑");
}else if (fist==2){
System.out.println("机器⼈:⽯头");
}else System.out.println("机器⼈:布");
return fist;
简单的java游戏代码
}
}
弄好上⾯的两个基本类,就到了我们的“游戏场”了,这是最复杂的部分
游戏场  ⾃然要有 游戏规则,初始化界⾯,计算以及呈现⽐赛的结果
将每⼀个⾏为都⽤函数写成单独的函数
⽅法有:
1. startMenu()  初始化界⾯,这⾥⾯包括了游戏规则,以及对双⽅出拳的判断,展⽰每轮的得分情况
2. showResult()  将结果展⽰在控制台上
3. Result()  对双⽅的分数做胜负的判断
/**
* ⽤户,机器⼈的出拳进⾏对⽐,
* 对结果进⾏记录
* 然后输出结果
*/
public class Game {
static Scanner input = new Scanner(System.in);
//对⽤户类和机器⼈类进⾏初始化
User user = new User();
Machine machine = new Machine();
/**
* 开始菜单
*/
public void startMenu(){
//--初始化界⾯
System.out.println("=======欢迎来到猜拳游戏=======");
System.out.println();
System.out.println("*******************************");
System.out.println("——————出拳规则:1-剪⼑,2-⽯头,3-布——————");
System.out.println("*******************************");
System.out.println("-------》》》猜拳开始《《《------");
System.out.println("-------------------------------");
//获取⽤户想要进⾏的对战次数
System.out.println("请输⼊对战局数");
user.num = Int();//对象.属性名⽤于直接给其属性赋值,主⽤于在其他类中
user.num = Int();//对象.属性名⽤于直接给其属性赋值,主⽤于在其他类中
int userFist;//⽤户出拳
int machineFist;//机器⼈出拳
for (int i=0; i< user.num; i++){
//获取双⽅出拳
userFist = user.setUser();
machineFist = machine.setId();
if (userFist==machineFist){
System.out.println("结果:"+"第"+i+"局,平局,不积分");
}else if ((userFist==1)&&(machineFist==2)||(userFist==2)&&(machineFist==3)||(userFist==3)&&(machineFist==1)){                System.out.println("结果:"+"第"+i+"局,机器⼈赢,机器⼈积⼀分");
machine.score++;
}else if ((userFist==1)&&(machineFist==3)||(userFist==2)&&(machineFist==1)||(userFist==3)&&(machineFist==2)){                System.out.println("结果:"+"第"+i+"局,玩家赢,玩家积⼀分");
user.score++;
}else {
System.out.println("请按规则出拳!");
break;
}
}
//--显⽰结果
showResult();
}
//以上是初始化界⾯
/**
* 输出对战结果
*/
private void showResult(){
//显⽰对战次数
System.out.println("--------------------");
System.out.println("对战次数:"+user.num);
//显⽰最终得分
System.out.println("姓名\t得分");
System.out.println("⽤户"+"\t"+user.score);
System.out.println("机器⼈"+"\t"+machine.score);
//显⽰对战结果
int result = Result();
System.out.println("------对战结果如下------");
if (result==1){
System.out.println("结果:打成平⼿");
}else if (result==2){
System.out.println("结果:恭喜!您赢了!");//⽤户获胜
}else System.out.println("结果:你输了,别⽓馁,下次再来!");//计算机赢了
System.out.println("游戏结束");
System.out.println("------------------");
}
//以上是输出对战的结果
//下⾯是计算的部分
/**
* 计算⽐赛结果
*/
private int Result(){
if (user.score==machine.score){
return 1;
}else if (user.score>machine.score){
return 2;
}else return 3;
}
}
最后⼀步,⽤测试类进⾏测试(~ ̄▽ ̄)~
public class Guess {
public static void main(String[] args) {
//创建⼀个游戏场
Game game = new Game();
//直接调⽤,开始游戏
game.startMenu();
}
}
这个⼩游戏的代码都⽐较简单,主要是⽅法以及属性的设计,还有逻辑思路。下⾯是成果展⽰啦
最后,我想送⼀句我最喜欢的话给努⼒的你  耐⼼和坚持总能奇迹般地扫除⼀切困难和障碍  ⼀起从菜鸟翻⾝吧!!还有,感谢您能看到这  ✧(≖◡≖✿),我会持续更新的!
还要特别感谢的作者给我提供了思路借鉴(菜鸟哭泣(ノへ`、))

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。