黑马程序员技术交流社区

标题: 猜数字游戏 [打印本页]

作者: 伯爵公子    时间: 2015-7-11 19:30
标题: 猜数字游戏
一个小游戏,可以帮助大家理解对象与对象之间的交互,也就是互相调用方法。这个游戏涉及到guessgame和player两个对象。guessgame会产生介于0-9之间的随机数字,而3个player对象会猜测该数字。

类:GuessGame.class     Player.class       GameLauncher.class

思路:
1、GameLauncher 这个类带有main( )方法,是应用程序的入口点。
2、main( )中会创建出GuessGame对象,并调用它的startGame( )方法。
3、startGame()方法是游戏的起点。它会创建3个Player,然后挑出要猜测的随机数字。它会要求Player猜测并检验结果,过程会被列出来。

代码如下:


class Player
{
        int number = 0;//要被猜的数字
        public void guess()
        {
                number = (int)(Math.random()*10);//随机产生player猜测的数字
                System.out.println("I'm guessing "+number);
        }
}

class GuessGame
{

        Player p1;
        Player p2;
        Player p3;

        public void startGame()
        {
                p1 = new Player();
                p2 = new Player();
                p3 = new Player();

                int guessp1 = 0;
                int guessp2 = 0;
                int guessp3 = 0;

                boolean p1isRight = false;
                boolean p2isRight = false;
                boolean p3isRight = false;

                int targetNumber = (int)(Math.random()*10);
                System.out.println("I'm thinking of a number between 0 and 9 ....");

                while (true)
                {
                        System.out.println("Number to guess is "+targetNumber);

                        p1.guess();
                        p2.guess();
                        p3.guess();

                        guessp1 = p1.number;
                        System.out.println("Player one guessed "+guessp1);

                        guessp2 = p2.number;
                        System.out.println("Player two guessed "+guessp2);

                        guessp3 = p3.number;
                        System.out.println("Player three guessed "+guessp3);

                        if (guessp1 == targetNumber)
                        {
                                p1isRight = true;
                        }
                        if (guessp2 == targetNumber)
                        {
                                p2isRight = true;
                        }
                        if (guessp3 == targetNumber)
                        {
                                p3isRight = true;
                        }

                        if (p1isRight||p2isRight||p3isRight)
                        {
                                System.out.println("We have a winner!");
                                System.out.println("Player one got it right?"+p1isRight);
                                System.out.println("Player two got it right?"+p2isRight);
                                System.out.println("Player three got it right?"+p3isRight);
                                System.out.println("Game is over.");
                                break;
                        }
                        else
                        {
                                System.out.println("No player is right!");
                                System.out.println("Players will have to try again");
                        }
                }
               
        }
}


class GameLauncher
{
        public static void main(String[] args)
        {
                GuessGame game = new GuessGame();
                game.startGame();
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2