您的位置:首页 > 编程语言

猜夫妻全部源代码(接上一个猜夫妻)

2007-10-08 17:58 253 查看
import java.lang.*;
public class GuessCouple2{
/**数据类型*/
public class Person{

private String name;
private boolean sex;
private Person spouse;

public Person(String name){
this.name=name;
this.sex=false;
this.spouse=null;
}
public Person( ){
name=null;
sex=false;
spouse=null;
}

public Person(String name,boolean sex,Person spouse){
this.name=name;
this.sex=sex;
this.spouse=spouse;

}

public void setName(String name){
this.name=name;
}

public String getName( ){
return name;
}

public void setSex(boolean sex){
this.sex=sex;
}
public boolean getSex( ){
return sex;
}
public void setSpouse (Person person1){
this.spouse=person1;
}
public Person getSpouse( ){
return spouse;
}
}

Person[] sortBySpouse1=new Person[8];
Person[] sortBySpouse2=new Person[8];
int x=0,y=0;
Person[] sortByEqualSex1=new Person[8];
Person[] sortByEqualSex2=new Person[8];
int n=0,p=0,f=0;
Person[] woman=new Person[4];
Person[] man=new Person[4];
int k=0,s=0,r=0;
boolean sign=true;
boolean sign1=true;
boolean sign2=true;
boolean sign3=true;
boolean sign4=true;
boolean sign5=true;
boolean sign6=true;
boolean sign7=true;
Person[] couple1=new Person[4];
Person[] couple2=new Person[4];
Person[] couple3=new Person[4];
Person[] couple4=new Person[4];
int a=0,b=0,c=0,d=0;
int a2=0,b2=0, c2=0, d2=0;

public void isCouple(Person person1,Person person2 ){
if(person1.getSpouse().getName()==person2.getName()) {
person1.setSex(!person2.getSex());
person2.setSex(!person1.getSex());
System.out.println(person1.getName()+"'s sex and "+person2.getName()+"'s sex is not equal" );
}
}

public void marriage(Person person1,boolean person1Marriage ,Person person2,boolean person2giveGiftPerson1 ){
if( person1Marriage&&person2giveGiftPerson1)
if(!person1.getName().equals(person2.getName()))
System.out.println(person1.getName()+ " and "+person2.getName()+" are not couple");
sortBySpouse1[x++]=person1;sortBySpouse2[y++]=person2;
}

public void oneVolleyballGroup(boolean oneGroup,Person person1,Person person2 ){
if(oneGroup&&person1.getSex()==person2.getSex())
System.out.println(person1.getName()+" and "+person2.getName()+" is the same sex");
sortByEqualSex1[n++]=person1;sortByEqualSex1[n++]=person2;f=n;
}

public void liveCollectivityDorm(boolean liveTogether,Person person1,Person person2,Person person3 ){
if(liveTogether&&!person1.getName().equals(person2.getName( ))&&!person1.getName().equals(person3.getName())&&!person2.getName().equals(person3.getName())){

System.out.println(person1.getName()+"'s sex and "+person2.getName()+"'s sex is equal "+person3.getName()+"'s sex is equal");
sortByEqualSex2[p++]=person1;sortByEqualSex2[p++]=person2;sortByEqualSex2[p++]=person3;
}
}

public void isbrotherInLaw(Person person1,Person person2,boolean p1SIsBrotherInLawP2S ){
if(!person1.getName().equals(person2.getName())&& p1SIsBrotherInLawP2S){
person1.setSex(false);
sortBySpouse1[x++]=person1;sortBySpouse2[y++]=person2;
System.out.println(person1.getName()+" is a woman");
woman[k++]=person1;r=k;
}
System.out.println(person1.getName()+"'s sex is woman and "+person1.getName()+"'s spouse is man");
}

public void assistInFighting (boolean cCoupleQuarrel,Person cCouple,Person person1,Person person2,Person person3){
if (cCoupleQuarrel )
if(!cCouple.getName().equals(person1.getName( ))&&!cCouple.getName().equals(person2.getName( ))&&!cCouple.getName().equals(person3.getName( ))
&&!person1.getName().equals(person2.getName( ))&&!person1.getName().equals(person3.getName( ))&&!person2.getName().equals(person3.getName( ))){

System.out.println(cCouple.getName()+"'s spouse is not "+person1.getName()+" and "+cCouple.getName()+"'s spouse is not "+person1.getName()+" 's spouse");
System.out.println(cCouple.getName()+"'s spouse is not "+person2.getName()+" and "+cCouple.getName()+"'s spouse is not "+person2.getName()+" 's spouse");
System.out.println(cCouple.getName()+"'s spouse is not "+person3.getName()+" and "+cCouple.getName()+"'s spouse is not "+person3.getName()+" 's spouse");
}

sortBySpouse1[x++]=cCouple;sortBySpouse2[y++]=person1;
sortBySpouse1[x++]=cCouple;sortBySpouse2[y++]=person2;
sortBySpouse1[x++]=cCouple;sortBySpouse2[y++]=person3;
sortBySpouse1[x++]=person1;sortBySpouse2[y++]=person2;
sortBySpouse1[x++]=person1;sortBySpouse2[y++]=person3;
sortBySpouse1[x++]=person2;sortBySpouse2[y++]=person3;
}

public void guessCoupleByRules( ){
Person[] person=new Person[8];
person[0]=new Person("wang",false,person[0]);
person[1]=new Person("chen",false,person[1]);
person[2]=new Person("zhou",false,person[2]);
person[3]=new Person("qian",false,person[3]);
person[4]=new Person("wu",false,person[4]);
person[5]=new Person("sun",false,person[5]);
person[6]=new Person("li",false,person[6]);
person[7]=new Person("xu",false,person[7]);

marriage(person[0],true ,person[2],true );
oneVolleyballGroup(true,person[2],person[3] );
isbrotherInLaw(person[6],person[1],true );
assistInFighting (true,person[1],person[7],person[2],person[4]);
liveCollectivityDorm(true,person[6],person[7],person[2]);

for(int v=0;v<f;v++)
for(int t=0;t<p;t++){
if(sortByEqualSex1[v].getName().equals(sortByEqualSex2[t].getName())){
for(int z=0;z<p;z++){
for(int j=0;j<f;j++){
if(!sortByEqualSex2[z].getName().equals(sortByEqualSex1[j].getName())) ;
else{sortByEqualSex1[j]=sortByEqualSex2[z];sign2=false;}
}
if(sign2) sortByEqualSex1[n++]=sortByEqualSex2[z];
sign2=true;
}
}
}

for(int m=0;m<r;m++)
for(int q=0;q<n;q++){
if(woman[m].getName().equals(sortByEqualSex1[q].getName())) {

for(int l=0;l<n;l++){

for(int j=0;j<r;j++){
if(!sortByEqualSex1[l].getName().equals(woman[j].getName())) ;
else { woman[j]=sortByEqualSex1[l];sign=false;}}
if(sign) woman[k++]=sortByEqualSex1[l];
sign=true;
}
}
}
r=k;

if(r==4) {
for(int j=0;j<8;j++){
int w=0;
for(int i=0;i<r;i++){

if(!person[j].getName().equals(woman[i].getName())) w++;
}
if(w==r) man[s++]=person[j];
}

}
System.out.println();
System.out.println();
System.out.println("The man and the woman is partition");

System.out.print("WOMAN :"+" ");
for (int i=0;i<r;i++){
woman[i].setSex(false);
System.out.print(woman[i].getName()+" ");
}
System.out.println( );
System.out.println( );
System.out.print( "MAN :"+" ");
for (int j=0;j<s;j++){
man[j].setSex(true);
System.out.print(man[j].getName()+" ");
}
System.out.println( );
System.out.println( );
for(int i=0;i<x;i++)
if(sortBySpouse1[i].getSex()!=sortBySpouse2[i].getSex()){
if(!sortBySpouse1[i].getSex()){
Person temp=new Person();
temp=sortBySpouse1[i];
sortBySpouse1[i]=sortBySpouse2[i];
sortBySpouse2[i]=temp;
}
}

}

public void partitionCouple( ) {

for(int i1=0;i1<x;i1++)
for(int i2=0;i2<s;i2++){
if(sortBySpouse1[i1].getName().equals(man[i2].getName())){
for(int i=0;i<r;i++){
if(!sortBySpouse2[i1].getName().equals(woman[i].getName())&&sortBySpouse2[i1].getSex()==woman[i].getSex())
if(man[i2].getName().equals("wang")){
int a1=a;
for(int j=0;j<a1;j++){
if(!couple1[j].getName().equals(woman[i].getName()));
else {couple1[j]=woman[i];sign3=false; }
}

if(sign3)couple1[a++]=woman[i];sign3=true;

}

else if(man[i2].getName().equals("chen")){
int b1=b;
for(int j=0;j<b1;j++){
if(!couple2[j].getName().equals(woman[i].getName()));
else {couple2[j]=woman[i]; sign4=false; }

}

if(sign4) couple2[b++]=woman[i];sign4=true;

}
else if(man[i2].getName().equals("wu")){
int c1=c;
for(int j=0;j<c1;j++)
if(!couple3[j].getName().equals(woman[i].getName()));
else {couple3[j]=woman[i];sign5=false; }
if(sign5)couple3[c++]=woman[i];sign5=true;

}
else {int d1=d;
for(int j=0;j<d;j++)
if(!couple4[j].getName().equals(woman[i].getName()));
else {couple4[j]=woman[i];sign6=false; }
if(sign6) couple4[d++]=woman[i];sign6=true;

}
}
}
}

for(int i=0;i<x;i++) {
if(sortBySpouse1[i].getName().equals("wang"))
for(int j=0;j<a;j++)
if(sortBySpouse2[i].getName().equals(couple1[j].getName())){
if(j==a-1) a--;
else{
for (int j1=j;j1<a-1;j1++)
couple1[j1]=couple1[j1+1];
a--;
}
}
}

for(int i=0;i<x;i++) {
if(sortBySpouse1[i].getName().equals("chen"))
for(int j=0;j<b;j++)
if(sortBySpouse2[i].getName().equals(couple2[j].getName())){
if(j==b-1) b--;
else{
for (int j1=j;j1<b-1;j1++)
couple2[j1]=couple2[j1+1];
b--;
}
}
}

for(int i=0;i<x;i++) {
if(sortBySpouse1[i].getName().equals("wu"))
for(int j=0;j<c;j++)
if(sortBySpouse2[i].getName().equals(couple3[j].getName())){
if(j==c-1) c--;
else{
for (int j1=j;j1<c-1;j1++)
couple3[j1]=couple3[j1+1];
c--;
}
}
}

for(int i=0;i<x;i++) {
if(sortBySpouse1[i].getName().equals("sun"))
for(int j=0;j<d;j++)
if(sortBySpouse2[i].getName().equals(couple4[j].getName())){
if(j==d-1) d--;
else{
for (int j1=j;j1<d-1;j1++)
couple4[j1]=couple4[j1+1];
d--;
}
}
}

if(a==1) man[0].setSpouse(couple1[a-1]);
else for(int i=0;i<a;i++){
if(b==1)
if (couple1[i].getName().equals(couple2[0].getName())){
if(i==a-1)a--;
else{
for(int j1=i;j1<a-1;j1++)
couple1[j1]=couple1[j1+1];
a--;
}
}
if(c==1)
if (couple1[i].getName().equals(couple3[0].getName())){
if(i==a-1)a--;
else{
for(int j1=i;j1<a-1;j1++)
couple1[j1]=couple1[j1+1];
a--;
}
}
if(d==1)
if (couple1[i].getName().equals(couple4[0].getName())){
if(i==a-1)a--;
else{
for(int j1=i;j1<a-1;j1++)
couple1[j1]=couple1[j1+1];
a--;
}
}
}

if(b==1) man[1].setSpouse(couple1[b-1]);
else for(int i=0;i<b;i++){
if(a==1)
if (couple2[i].getName().equals(couple1[0].getName())){
if(i==b-1)b--;
else{
for(int j1=i;j1<b-1;j1++)
couple2[j1]=couple2[j1+1];
b--;
}
}
if(c==1)
if (couple2[i].getName().equals(couple3[0].getName())){
if(i==b-1)b--;
else{
for(int j1=i;j1<b-1;j1++)
couple2[j1]=couple2[j1+1];
b--;
}
}
if(d==1)
if (couple2[i].getName().equals(couple4[0].getName())){
if(i==d-1)d--;
else{
for(int j1=i;j1<b-1;j1++)
couple2[j1]=couple2[j1+1];
b--;
}
}
}

if(c==1) man[2].setSpouse(couple1[c-1]);
else for(int i=0;i<c;i++){
if(a==1)
if (couple3[i].getName().equals(couple1[0].getName())){
if(i==c-1)c--;
else{
for(int j1=i;j1<c-1;j1++)
couple3[j1]=couple3[j1+1];
c--;
}
}
if(b==1)
if (couple3[i].getName().equals(couple2[0].getName())){
if(i==c-1)c--;
else{
for(int j1=i;j1<c-1;j1++)
couple3[j1]=couple3[j1+1];
c--;
}
}
if(d==1)
if (couple3[i].getName().equals(couple4[0].getName())){
if(i==c-1)c--;
else{
for(int j1=i;j1<c-1;j1++)
couple3[j1]=couple3[j1+1];
c--;
}
}
}

if(d==1) man[3].setSpouse(couple1[d-1]);
else for(int i=0;i<d;i++){
if(a==1)
if (couple4[i].getName().equals(couple1[0].getName())){
if(i==d-1)d--;
else{
for(int j1=i;j1<d-1;j1++)
couple4[j1]=couple4[j1+1];
d--;
}
}
if(b==1)
if (couple4[i].getName().equals(couple2[0].getName())){
if(i==d-1)d--;
else{
for(int j1=i;j1<d-1;j1++)
couple4[j1]=couple4[j1+1];
d--;
}
}
if(d==1)
if (couple4[i].getName().equals(couple4[0].getName())){
if(i==d-1)d--;
else{
for(int j1=i;j1<d-1;j1++)
couple4[j1]=couple4[j1+1];
d--;
}
}
}

}
public void supposeJudge ( ){

if(a==1){man[0].setSpouse(couple1[0]);a2=a;}
if(b==1){man[1].setSpouse(couple2[0]);b2=b;}
if(c==1){man[2].setSpouse(couple3[0]);c2=c;}
if(d==1){man[3].setSpouse(couple4[0]);d2=d;}

if(a>1){
man[0].setSpouse(couple1[0]);

if(b==0&&a>=2){
man[1].setSpouse(couple1[1]);b++;
if(c==0&&a>=3){{man[2].setSpouse(couple1[2]);couple3[c]=couple1[2];c++;}

if(d==0&&a>3) {man[3].setSpouse(couple1[3]);couple4[d]=couple1[3];d++;}}}

else if(b!=0&&c==0&&a>=2){ {man[2].setSpouse(couple1[1]);couple3[c]=couple1[1];c++;}

if(d==0&&a>2) {man[3].setSpouse(couple1[2]);couple4[d]=couple1[2];d++;}
}
else if(b!=0&&c!=0&&d==0) {man[3].setSpouse(couple1[1]);couple4[d]=couple1[1];d++;}

if(b==1&&c==0&&d==0){
for(int i=0;i<r;i++)
if(!woman[i].getName().equals(couple1[0].getName())&&!woman[i].getName().equals(couple1[1].getName()))
if(sign7==true){couple3[0]=woman[i];man[2].setSpouse(couple3[0]); sign7=false;}
else {couple4[0]=woman[i];man[3].setSpouse(couple4[0]);sign7=true;}}
if(b==1&&c==1&&d==0){
for(int i=0;i<r;i++)
if(!woman[i].getName().equals(couple1[0].getName())&&!woman[i].getName().equals(couple1[1].getName())&&!woman[i].getName().equals(couple2[0].getName()))
{ couple4[0]=woman[i];man[3].setSpouse(couple4[0]);}
}

}

for(int j=0;j<x;j++){
if(man[0].getName().equals(sortBySpouse1[j].getName())){

if(man[0].getSpouse().getName().equals(sortBySpouse2[j].getName())){
couple1[0]=man[0];man[0].setSpouse(couple1[0]);
}
else if(b2==1&&man[0].getSpouse().getName().equals(couple2[0].getName())){
couple1[0]=man[0];man[0].setSpouse(couple1[0]);
}
else if(c2==1&&man[0].getSpouse().getName().equals(couple3[0].getName())){
couple1[0]=man[0];man[0].setSpouse(couple1[0]);
}
else if(d2==1&&man[0].getSpouse().getName().equals(couple4[0].getName())){
couple1[0]=man[0];man[0].setSpouse(couple1[0]);System.out.println(couple1[0].getName());
}
}
}

for(int j=0;j<x;j++){
if(man[1].getName().equals(sortBySpouse1[j].getName())){

if(man[1].getSpouse().getName().equals(sortBySpouse2[j].getName())){
couple2[0]=man[1];man[1].setSpouse(couple2[0]);
}

else if(a2==1&&man[1].getSpouse().getName().equals(couple1[0].getName())){
couple2[0]=man[1];man[1].setSpouse(couple2[0]);
}
else if(c2==1&&man[1].getSpouse().getName().equals(couple3[0].getName())){
couple2[0]=man[1];man[1].setSpouse(couple2[0]);
}
else if(d2==1&&man[1].getSpouse().getName().equals(couple4[0].getName())){
couple2[0]=man[1];man[1].setSpouse(couple2[0]);
}
}
}

for(int j=0;j<x;j++){
if(man[2].getName().equals(sortBySpouse1[j].getName()))
if(man[2].getSpouse().getName().equals(sortBySpouse2[j].getName())){couple3[0]=man[2];man[2].setSpouse(couple3[0]);}
else if(b2==1&&man[2].getSpouse().getName().equals(couple2[0].getName())){
couple3[0]=man[2];man[2].setSpouse(couple3[0]);
}
else if(a2==1&&man[2].getSpouse().getName().equals(couple1[0].getName())){
couple3[0]=man[2];man[2].setSpouse(couple3[0]);
}
else if(d2==1&&man[2].getSpouse().getName().equals(couple4[0].getName())){
couple3[0]=man[2];man[2].setSpouse(couple3[0]);
}
}

for(int j=0;j<x;j++){
if(man[3].getName().equals(sortBySpouse1[j].getName()))
if(man[3].getSpouse().getName().equals(sortBySpouse2[j].getName())){couple4[0]=man[3];man[3].setSpouse(couple4[0]);}

else if(b2==1&&man[3].getSpouse().getName().equals(couple2[0].getName())){
couple4[0]=man[3];man[3].setSpouse(couple4[0]);
}
else if(c2==1&&man[3].getSpouse().getName().equals(couple3[0].getName())){
couple4[0]=man[3];man[3].setSpouse(couple4[0]);
}
else if(a2==1&&man[3].getSpouse().getName().equals(couple1[0].getName())){
couple4[0]=man[3];man[3].setSpouse(couple4[0]);
}
}

for(int j1=0;j1<x;j1++)
if(man[0].getName().equals(sortBySpouse1[j1].getName())) {
if(man[0].getSpouse().getSex())
for(int j=0;j<r;j++)
if(b2==1&&c2==1&&d2==1) {
if(!woman[j].getName().equals(sortBySpouse2[j1].getName())&&!woman[j].getName().equals(couple2[0].getName())
&&!woman[j].getName().equals(couple3[0].getName())&&!woman[j].getName().equals(couple4[0].getName()))
{couple1[0]=woman[j];man[0].setSpouse(couple1[0]); }

}
else if(b2==1&&c2==1){
if(!woman[j].getName().equals(sortBySpouse2[j1].getName())&&!woman[j].getName().equals(couple2[0].getName())
&&!woman[j].getName().equals(couple3[0].getName()))
{ couple1[0]=woman[j];man[0].setSpouse(couple1[0]);}

}
else if(b2==1){
if(!woman[j].getName().equals(sortBySpouse2[j1].getName())&&!woman[j].getName().equals(couple2[0].getName()) )

{couple1[0]=woman[j];man[0].setSpouse(couple1[0]); }

}
}

for(int j1=0;j1<x;j1++)
if(man[1].getName().equals(sortBySpouse1[j1].getName())) {
if(man[1].getSpouse().getSex())
for(int j=0;j<r;j++)
if(a2==1&&c2==1&&d2==1) {
if(!woman[j].getName().equals(sortBySpouse2[j1].getName())&&!woman[j].getName().equals(couple1[0].getName())
&&!woman[j].getName().equals(couple3[0].getName())&&!woman[j].getName().equals(couple4[0].getName()))
{couple2[0]=woman[j];man[1].setSpouse(couple2[0]); }

}
else if(a2==1&&c2==1){
if(!woman[j].getName().equals(sortBySpouse2[j1].getName())&&!woman[j].getName().equals(couple1[0].getName())
&&!woman[j].getName().equals(couple3[0].getName()))
{ couple2[0]=woman[j];man[1].setSpouse(couple2[0]);}

}
else if(a2==1){
if(!woman[j].getName().equals(sortBySpouse2[j1].getName())&&!woman[j].getName().equals(couple1[0].getName()) )

{couple2[0]=woman[j];man[1].setSpouse(couple2[0]); }

}
}

for(int j1=0;j1<x;j1++)
if(man[2].getName().equals(sortBySpouse1[j1].getName())) {
if(man[2].getSpouse().getSex())
for(int j=0;j<r;j++)
if(a2==1&&b2==1&&d2==1) {
if(!woman[j].getName().equals(sortBySpouse2[j1].getName())&&!woman[j].getName().equals(couple1[0].getName())
&&!woman[j].getName().equals(couple2[0].getName())&&!woman[j].getName().equals(couple4[0].getName()))
{couple3[0]=woman[j];man[2].setSpouse(couple3[0]); }

}
else if(a2==1&&b2==1){
if(!woman[j].getName().equals(sortBySpouse2[j1].getName())&&!woman[j].getName().equals(couple1[0].getName())
&&!woman[j].getName().equals(couple2[0].getName()))
{ couple3[0]=woman[j];man[2].setSpouse(couple3[0]);}

}
else if(a2==1){
if(!woman[j].getName().equals(sortBySpouse2[j1].getName())&&!woman[j].getName().equals(couple1[0].getName()) )

{couple3[0]=woman[j];man[2].setSpouse(couple3[0]); }

}
}
for(int j1=0;j1<x;j1++)
if(man[3].getName().equals(sortBySpouse1[j1].getName())) {
if(man[3].getSpouse().getSex())
for(int j=0;j<r;j++)
if(a2==1&&b2==1&&c2==1) {
if(!woman[j].getName().equals(sortBySpouse2[j1].getName())&&!woman[j].getName().equals(couple1[0].getName())
&&!woman[j].getName().equals(couple2[0].getName())&&!woman[j].getName().equals(couple3[0].getName()))
{couple4[0]=woman[j];man[3].setSpouse(couple4[0]); }

}
else if(a2==1&&b2==1){
if(!woman[j].getName().equals(sortBySpouse2[j1].getName())&&!woman[j].getName().equals(couple1[0].getName())
&&!woman[j].getName().equals(couple2[0].getName()))
{ couple4[0]=woman[j];man[3].setSpouse(couple4[0]);}

}
else if(a2==1){
if(!woman[j].getName().equals(sortBySpouse2[j1].getName())&&!woman[j].getName().equals(couple1[0].getName()) )

{couple4[0]=woman[j];man[3].setSpouse(couple4[0]); }

}
}

for(int i=0;i<r;i++)
if(!woman[i].getName().equals(couple1[0].getName())&&!woman[i].getName().equals(couple2[0].getName())&&!woman[i].getName().equals(couple3[0].getName()))
{couple4[0]=woman[i];man[3].setSpouse(couple4[0]);
}

for(int i=0;i<r;i++)
if(woman[i].getName().equals(couple1[0].getName())) woman[i].setSpouse(man[0]);
else if(woman[i].getName().equals(couple2[0].getName())) woman[i].setSpouse(man[1]);
else if(woman[i].getName().equals(couple3[0].getName())) woman[i].setSpouse(man[2]);
else if(woman[i].getName().equals(couple4[0].getName())) woman[i].setSpouse(man[3]);

System.out.println();
System.out.println();
System.out.println();
System.out.println("The couple is partition:");
System.out.println("MAN --- WOMAN");
for (int i=0;i<r;i++)
System.out.println(man[i].getName()+" "+man[i].getSpouse().getName());
}

public static void main( String[] args){
GuessCouple2 guessCouple=new GuessCouple2( );
guessCouple.guessCoupleByRules();
guessCouple.partitionCouple();
guessCouple.supposeJudge();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐