夏橙M兮 发表于 2018-7-31 10:03

【Java】【分享】面向对象之猜拳游戏(适合小白)

昨天老师布置了猜拳小游戏,我也做了一份。当时自我感觉还不错。结果老师今天花了20分钟讲了一下。发现自己还是不行呀。main方法写的太多。不太简洁。
封上老师的源码:https://www.lanzouj.com/i1j732h
没有比较就没有伤害。下面封上我自己写的源码。我写的代码比较少。
package day06;

import java.util.Scanner;

class Computer{
        private int score;
        public int getScore() {
                return score;
        }
        public void setScore(int score) {
                this.score = score;
        }
        public int punch()
        {
                int rd=(int)(Math.random()*3+1);
                switch(rd){
                case 1:System.out.println("电脑出了石头");break;
                case 2:System.out.println("电脑出了剪刀");break;
                case 3:System.out.println("电脑出了布");
                }
                return rd;
        }
}
class Person{
        private int score;
        private int rd;
        public int getScore() {
                return score;
        }
        public int getRd() {
                return rd;
        }
        public void setRd(int rd) {
                this.rd = rd;
        }
        public void setScore(int score) {
                this.score = score;
        }
        public int punch()
        {
                switch(rd){
                case 1:System.out.println("玩家你出了石头");break;
                case 2:System.out.println("玩家你出了剪刀");break;
                case 3:System.out.println("玩家你出了布");
                }
                return rd;
        }
        }
public class GuessFistGame {
        public static int play(Computer c,Person p,int a){
                int cFist=c.punch();
                int pFist=p.punch();
                System.out.println("----------------游戏结束------------");
                if(cFist==pFist)
                        System.out.println("平局");
                else if((cFist==1 && pFist==2) || (cFist==2 && pFist==3) || (cFist==3 && pFist==1))
                        System.out.println("电脑赢,你输了!");
                else{
                        a++;
                        System.out.println("恭喜你,赢了电脑。");
                }
                return a;

        }
        public static void result(int a,int b){
                System.out.println("总共游戏"+a+"次"+"你赢了电脑"+b+"次");
        }
        public static void main(String[] args) {
                int winP=0;
                int times=0;
                boolean menu=true;
                Computer c=new Computer();
                Person p=new Person();
                Scanner in= new Scanner(System.in);
                while(menu)
                {
                        System.out.println("-----------------猜拳游戏-------------\n"
                                        + "\t\t1.开始-------(1代表石头,2代表剪刀,3代表石头)\n"
                                        + "\t\t2.查看总记录\n"
                                        + "\t\t3.退出游戏\n");
                        System.out.print("请输入您的选项:");
                        int tab=in.nextInt();
                        switch(tab){
                        case 1:
                                while(true){
                                System.out.println("游戏开始,请输入你输入数字1/2/34(返回上一级)");
                                int rd=in.nextInt();
                                if(rd==4)
                                        break;
                                p.setRd(rd);
                                times++;
                                winP=play(c,p,winP);
                                System.out.println("----------------------------");
                                }
                                break;
                        case 2:
                                result(times,winP);
                                break;
                        case 3:
                                menu=false;
                        }
                       
                }
        }
}

checkz 发表于 2018-7-31 13:47

torboxin 发表于 2018-7-31 11:11
五子棋还是控制台程序?没有界面你还能记住自己在那里有棋吗?

***1****************
***1**0*************
***0****************
********************
********************

这样你能懂吗?

夏橙M兮 发表于 2018-7-31 18:00

checkz 发表于 2018-7-31 15:01
我们学基础的时候就是做的这个还有一个控制台的影院售票选座的 对于基础知识很锻炼人的

感觉没有思路呀!有没有源码呀?我钻研一波。

momoo3 发表于 2018-7-31 10:20

学习了,正在学习编程中。

checkz 发表于 2018-7-31 10:53

楼主可以尝试写一个五子棋的控制台程序

心病 发表于 2018-7-31 10:53

学习了学习了

吃西瓜 发表于 2018-7-31 10:57

感谢感谢,正学到面向对象这里

torboxin 发表于 2018-7-31 11:11

checkz 发表于 2018-7-31 10:53
楼主可以尝试写一个五子棋的控制台程序

五子棋还是控制台程序?没有界面你还能记住自己在那里有棋吗?

夏橙M兮 发表于 2018-7-31 14:38

checkz 发表于 2018-7-31 10:53
楼主可以尝试写一个五子棋的控制台程序

感觉这个有点难度呀。工程量感觉有点大。

checkz 发表于 2018-7-31 15:01

夏橙M兮 发表于 2018-7-31 14:38
感觉这个有点难度呀。工程量感觉有点大。

我们学基础的时候就是做的这个还有一个控制台的影院售票选座的 对于基础知识很锻炼人的

jws6994 发表于 2018-7-31 16:04

问一哈,五子棋可以用python写出来吗???   最近开始学
页: [1] 2 3
查看完整版本: 【Java】【分享】面向对象之猜拳游戏(适合小白)