Java:人机猜拳

用户类:

1
2
3
4
5
6
7
8
9
10
11
12
13
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();
    }
}

计算机类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*
 * 人机对战之游戏类
 * 其中包含:用户类调用+计算机类调用
 * 自包含:人出拳+计算机出拳
 * 来自:第十二章
 */
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来减少垃圾评论。了解我们如何处理您的评论数据