首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

初学者跪求问关于猜拳的java有关问题

2012-12-19 
菜鸟跪求问关于猜拳的java问题kadai/Hand.javapackage kadaipublic interface Hand {int wins(Hand hand)

菜鸟跪求问关于猜拳的java问题
kadai/Hand.java
package kadai;
public interface Hand {
int wins(Hand hand);
int getNum();
}

*****************************************************************************
test/MyHandTest.java

package test;
import static org.junit.Assert.*;
import java.util.Arrays;
import kadai.Hand;
import kotae.MyHand;
import org.junit.Test;
public class MyHandTest {
@Test
public void testWins() {
int[][] result = {{0,-1,-1,-1},{1,0,1,-1},{1,-1,0,1},{1,1,-1,0}};
for(int i=0;i<result.length;i++){
Hand h = new MyHand(i);
int[] test = new int[4];
for(int j=0; j<test.length; j++){
test[j]= h.wins(new MyHand(j));
}
assertEquals(Arrays.toString(result[i]),Arrays.toString(test));
}
}
@Test
public void testGetnum() {
for(int i=0; i<4; i++){
assertEquals(i,new MyHand(i).getNum());
}
}
@Test
public void testToString() {
String[] te = new String[]{"Yasumi", "Gu", "Choki", "Pa"};
for(int i=0; i<4; i++){
assertEquals(te[i],new MyHand(i).toString());
}
}
interface Expected {
boolean expected(int i, int j);
}
class Expected0 implements Expected {
@Override
public boolean expected(int i, int j) {
return i==1;
}
}
class ExpectedTaikakusen implements Expected {
@Override
public boolean expected(int i, int j) {
return i==j;
}
}
interface Relation {
boolean relation(Hand h1, Hand h2);
}
class EqualRelation implements Relation {
@Override
public boolean relation(Hand h1, Hand h2) {
return h1.equals(h2);
}
}
class HashRelation implements Relation {
@Override
public boolean relation(Hand h1, Hand h2) {
return h1.hashCode()==h2.hashCode();
}
}
class TestHand {
private Hand[] hh1;
private Hand[] hh2;
private Relation r;
private Expected e;
public TestHand(Hand[] hh1, Hand[] hh2, Expected e, Relation r){
this.hh1 = hh1;
this.hh2 = hh2;
this.e = e;
this.r = r;
}
public void test() {
for(int i=0; i<4; i++){
for(int j=0; j<4; j++){
if(e.expected(i,j)){
assertTrue(r.relation(hh1[i],hh2[j]));
}else{
assertFalse(r.relation(hh1[i],hh2[j]));
}
}
}
}
}
@Test
public void testEquals(){
for(int i=0;i<4;i++){
Hand h = new MyHand(i);
assertFalse(h.equals(null));
assertFalse(h.equals("abc"));
assertFalse(h.equals("Gu"));
assertFalse(h.equals("Choki"));
assertFalse(h.equals("Pa"));
assertFalse(h.equals("Yasumi"));
assertFalse(h.equals(new Gagyo(2)));
assertFalse(h.equals(new Chaki(4)));
assertFalse(h.equals(new Pagyo(0)));
assertFalse(h.equals(randomString()));
assertFalse(h.equals(new Integer((int) (Math.random()*1000))));


if(i==1){
assertTrue(h.equals(new Hand0()));
}else{
assertFalse(h.equals(new Hand0()));
}
}
TestHand h0 = new TestHand(getMyHandArray(), getHand0Array(),
new Expected0(), new EqualRelation());
h0.test();
TestHand h1 = new TestHand(getMyHandArray(), getMyHandArray(),
new ExpectedTaikakusen(), new EqualRelation());
h1.test();
}
private String randomString() {
StringBuilder sb = new StringBuilder();
int length = (int) (Math.random()*10);
for(int i=0; i< length; i++){
sb.append(Math.random()*('Z'-'A')+'A');
}
return sb.toString();
}
public Hand[] getHand0Array() {
return new Hand[]{new Hand0(), new Hand0(), new Hand0(), new Hand0()};
}
private Hand[] getMyHandArray() {
return new Hand[]{new MyHand(0), new MyHand(1), new MyHand(2), new MyHand(3)};
}
@Test
public void testHashCode(){
TestHand h0 = new TestHand(getMyHandArray(), getHand0Array(),
new Expected0(), new HashRelation());
h0.test();
TestHand h1 = new TestHand(getMyHandArray(), getMyHandArray(),
new ExpectedTaikakusen(), new HashRelation());
h1.test();
}
}
************************************************************************************
以上都是已经给出的条件,编一个 MyHand class 如下
       平     石头     剪子     布
平     0      -1      -1     -1

石头   1       0       1      -1

剪子   1       -1      0      1

布     1        1       -1     0
[最优解释]
你这是要问啥呢。 没看明白哟

热点排行