美文网首页
每日一练112——Java剪刀石头布(8kyu)

每日一练112——Java剪刀石头布(8kyu)

作者: 砾桫_Yvan | 来源:发表于2018-11-25 17:16 被阅读0次

题目

让我们玩!你必须返回哪位球员赢了!如果是平局退货Draw!。

例子:

rps('scissors','paper') // Player 1 won!
rps('scissors','rock') // Player 2 won!
rps('paper','paper') // Draw!

测试用例:

import static org.junit.Assert.*;
import org.junit.Test;

public class KataTest {
    
    @Test
    public void test1() {
        System.out.println("Fixed Tests Player 1 won!");
        assertEquals("Player 1 won!", Kata.rps("rock", "scissors"));
        assertEquals("Player 1 won!", Kata.rps("scissors", "paper"));
        assertEquals("Player 1 won!", Kata.rps("paper", "rock"));
    }
    @Test
    public void test2() {
        System.out.println("Fixed Tests Player 2 won!");
        assertEquals("Player 2 won!", Kata.rps("scissors", "rock"));
        assertEquals("Player 2 won!", Kata.rps("paper", "scissors"));
        assertEquals("Player 2 won!", Kata.rps("rock", "paper"));
    }
    @Test
    public void test3() {
        System.out.println("Fixed Tests Draw!");
        assertEquals("Draw!", Kata.rps("scissors", "scissors"));
        assertEquals("Draw!", Kata.rps("paper", "paper"));
        assertEquals("Draw!", Kata.rps("rock", "rock"));
    }
    
}

解题

My笨方法:

public class Kata {
  public static String rps(String p1, String p2) {
    if ("rock".equals(p1) && "scissors".equals(p2)) {
      return "Player 1 won!";
    } else if ("scissors".equals(p1) && "paper".equals(p2)) {
      return "Player 1 won!";
    } else if ("paper".equals(p1) && "rock".equals(p2)) {
      return "Player 1 won!";
    } else if ("scissors".equals(p1) && "rock".equals(p2)) {
      return "Player 2 won!";
    } else if ("paper".equals(p1) && "scissors".equals(p2)) {
      return "Player 2 won!";
    } else if ("rock".equals(p1) && "paper".equals(p2)) {
      return "Player 2 won!";
    } else if ("scissors".equals(p1) && "scissors".equals(p2)) {
      return "Draw!";
    } else if ("paper".equals(p1) && "paper".equals(p2)) {
      return "Draw!";
    } else if ("rock".equals(p1) && "rock".equals(p2)) {
      return "Draw!";
    } else {
      return null;
    }
  }
}

Other:

巨聪明的方法们

public class Kata {
  public static String rps(String p1, String p2) {
    if(p1 == p2) return "Draw!";
    int p = (p1 + p2).equals("scissorspaper") || (p1 + p2).equals("rockscissors") || (p1 + p2).equals("paperrock") ? 1 : 2;
    return "Player " + p + " won!";
  }
}
public class Kata {
  public static String rps(String p1, String p2) {
    return p1.equals(p2) ? "Draw!" : "Player " + ("scissorspaper paperrock rockscissors".contains(p1+p2)?1:2) + " won!";
  }
}
public class Kata {
  public static String rps(String p1, String p2) {
    if (p1 == p2) {
      return "Draw!";
    } else {
      String rules = "rockpaperscissorsrock";
      if (rules.contains(p1+p2)) {
        return "Player 2 won!";
      } else {
        return "Player 1 won!";
      }
    }
  }
}

后记

他人的方法真是非常有趣,值得借鉴。

相关文章

  • 每日一练112——Java剪刀石头布(8kyu)

    题目 让我们玩!你必须返回哪位球员赢了!如果是平局退货Draw!。 例子: 测试用例: 解题 My笨方法: Oth...

  • JAVA学习 石头剪刀布

    Java的石头剪刀布简易判断练习。

  • 石头剪刀布的联想

    小时候-石头剪刀布,你出剪刀我出布,糖果是你的;长大后-石头剪刀布,你出石头我出布,快乐是我们的;石头剪刀布,一个...

  • noip 2014总结

    生活大爆炸版石头剪刀布 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,...

  • 玩转石头剪刀布

    你用肚子玩过石头剪刀布吗?你用膝盖玩过石头剪刀布吗?你用脚掌玩过石头剪刀布吗?你用舌头玩过石头剪刀布吗?你用眼睛玩...

  • 2020-05-27

    “石头剪刀布” 哈哈,你输了,再来再来 “石头剪刀布” 你又输了,怎么回事,再来再来 “石头剪刀布” 你有心事,说...

  • 《自卑与超越》读书笔记

    (一)面对失败 “石头、剪刀、布!石头、剪刀、布!石头、剪刀、布!” “我赢了!”游戏规则是,赢了的人可以前进一格...

  • [米·记]2017.09.06.阴雨

    “石头剪刀布,石头剪刀布,左边剪刀右边石头,变成一只小蜗牛;左边是布右边是布,变成花蝴蝶……”——由磨蹭的米拉刷牙...

  • 温暖的承诺:我帮蜗牛找朋友

    剪刀石头布 剪刀石头布 一把剪刀一块石头变成小白兔 一把剪刀两把剪刀亲亲小白兔 一块石头一块布抓住小白兔 一块布两...

  • 陪孩子玩游戏(4)

    “石头,剪刀,布,我出剪刀。” “石头,剪刀,布,我出剪刀。” “你这是剪刀吗?”孩子还不太会控制手指,只见他伸着...

网友评论

      本文标题:每日一练112——Java剪刀石头布(8kyu)

      本文链接:https://www.haomeiwen.com/subject/zbgpqqtx.html