Java:人机猜拳

用户类:

package cn.puruidong.accp_12;
/*
* 用户类,包含输入的用户姓名
*/
import java.util.*;
public class yonghu {
private String name ;
Scanner input = new Scanner (System.in);
public void show(){
System.out.println("请输入姓名:");
name = input.next();
}
}

计算机类:

package cn.puruidong.accp_12;
/*
* 计算机类
* 包含角色选择,及输出
*/
import java.util.Scanner;
public class jisuanji {
int jisuanjiname ;
public void showEr (){
Scanner input = new Scanner (System.in);
System.out.println("请选择计算机的角色:1.刘邦;2.项羽;3.曹操");
jisuanjiname = input.nextInt();
switch (jisuanjiname){
case 1 :
System.out.println("您选择与:\t刘邦对战");
break;
case 2 :
System.out.println("您选择与:\t项羽对战");
break;
case 3:
System.out.println("您选择与:\t曹操对战");
break;
default :
System.out.println("抱歉,火星查无此人!");
break;
}
}

}

游戏类,三个类放在一个文件夹中,运行Game.java:

/*
* 人机对战之游戏类
* 其中包含:用户类调用+计算机类调用
* 自包含:人出拳+计算机出拳
* 来自:第十二章
*/
package cn.puruidong.accp_12;
import java.util.Scanner;
public class Game {
int random ;
int chuquan;
Scanner input = new Scanner (System.in);
public int suiji (){ //计算机随机出拳
random = (int)(Math.random()*10%3+1);
switch (random){
case 1:
System.out.println("计算机出了:剪刀");
break;
case 2:
System.out.println("计算机出了:石头");
break;
case 3:
System.out.println("计算机出了:布");
break;
}
return random;
}
public int chuquan (){ //人出拳

chuquan = input.nextInt();
switch (chuquan){
case 1:
System.out.println("您出了:剪刀");
break;
case 2 :
System.out.println("您出了:石头");
break;
case 3 :
System.out.println("您出了:布");
break;
default :
System.out.println("抱歉,输入错误!");
break;
}

return chuquan ;
}

public static void main (String[]args){
System.out.println("*******************************");
System.out.println("********猜拳\t开始*********");
System.out.println("*******************************");
Scanner input = new Scanner (System.in);
jisuanji center = new jisuanji ();
yonghu ren = new yonghu ();
Game spr = new Game ();
System.out.println("出拳规则:1.剪刀;2.石头;3,布");
String choose;
ren.show();
center.showEr();
int num1 = 0 ; //记录总局数
int num2 = 0 ;//记录人胜利的局数
int num3 = 0;//记录计算机胜利的局数
do{
System.out.println("出拳规则:1.剪刀;2.石头;3,布(请出拳):");
spr.chuquan();
spr.suiji();
int panduan1 = spr.random;//定义将变量spr.random赋给常量panduan1,否则在if判断时,将重复调用random
int panduan2 = spr.chuquan;//同上
if ((panduan1==1&&panduan2==3)||(panduan1==2&&panduan2==1)||( panduan1==3&&panduan2==2)){
System.out.println("恭喜,你赢了");
num2++;
}
else if ((panduan1==1&&panduan2==1)||(panduan1==2&&panduan2==2)||(panduan1==3&&panduan2==3)){
System.out.println("这是平局");
}
else {
System.out.println("o(>﹏<)o你输了真笨"); num3++; } num1++; System.out.println("请问是否进入下一轮(y/n):"); choose = input.next(); }while (!"n".equals(choose));//输入为n时,结束循环,输出结果 System.out.println("总局数:"+num1); System.out.println("人胜利的局数:"+num2); System.out.println("计算机胜利的局数:"+num3); System.out.println("平局是:"+(num1-(num2+num3))); } }

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据