/****************************************************************************** *KnowledgeBase.java * * - Object for known information about a game of go fish vs. one player * *Author - Graig M. Fisher * *Written March 29, 2001 * *****************************************************************************/ //methods self explanitory //"my" refers to computer //"opp"refers to opponent class KnowledgeBase{ final int deck = 52; private int unknown = 52; private int oppHandCount = 0; private int oppPairCount = 0; private int[] myRequests; private int[] oppPairs; private int[] oppRequests; public KnowledgeBase(){ oppRequests = new int[13]; myRequests = new int[13]; oppPairs = new int[13]; for(int i = 0; i < 13; i++){ oppRequests[i] = 0; myRequests[i] = 0; oppPairs[i] = 0; }//for loop }//constructor Knowledge public int[] getMyRequests(){ return myRequests; }//accessor getMyRequests public int getOppHand(){ return oppHandCount; }//accessor getOppHand public int[] getOppRequests(){ return oppRequests; }//accessor getOppRequests public int[] getOppPairs(){ return oppPairs; }//accessor getOppPairs public int getUnknown(){ return unknown; }//accessor getUnknown public void updateMe(int request){ if(myRequests[request - 1] == 0) unknown--; myRequests[request - 1]++; }//mutator updateMe public void updateOppHand(int newVal){ oppHandCount = newVal; }//mutator updateOppHand public void updateOppRequests(int request){ if(oppRequests[request - 1] == 0){ oppRequests[request - 1] = 1; unknown--; }//if statement }//mutator updateOpp public void updateOppPairs(int[] update){ int[] temp = new int[13]; for(int i = 0; i < temp.length; i++) temp[i] = 0; for(int i = 0; i < update.length; i++) temp[update[i]] = temp[update[i]]++; for(int i = 0; i < temp.length; i++){ if(temp[i] > oppPairs[i]){ oppPairCount++; oppRequests[i] = 0; oppPairs[i]++; }//if statement }//for loop }//mutator updateOppPairs public void updateUnknown(int known){ unknown = deck - oppHandCount - oppPairCount - known; }//mutator updateUnknown }//class KnowledgeBase /****************************************************************************** *END OF FILE - KnowledgeBase.java * *****************************************************************************/