User Tools

Site Tools


guess_my_rule

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
guess_my_rule [2020/05/30 15:01] – created frchrisguess_my_rule [2022/08/11 10:09] (current) frchris
Line 1: Line 1:
-**Guess My Rule**+===== Guess My Rule =====
 Guess My Rule games are games in which one person thinks up a secret rule, and then gives clues by stating some examples of some that follow the  "rule," and examples of something that doesn't follow the "rule." Next, rule-guesser(s) try to discover the rule by trying predict whether their own examples follow the rule or not. After the rule-maker answers a few questions from the rule-guesser(s), the rule guesser(s) try to guess the rule. Guess My Rule games are games in which one person thinks up a secret rule, and then gives clues by stating some examples of some that follow the  "rule," and examples of something that doesn't follow the "rule." Next, rule-guesser(s) try to discover the rule by trying predict whether their own examples follow the rule or not. After the rule-maker answers a few questions from the rule-guesser(s), the rule guesser(s) try to guess the rule.
  
 For example, The secret rule might be that it is an integer that is a prime number. The rule-maker Starts with "2 follows my rule, but 4 does not" The rule-guesser than asks "Does  3 follow the rule?" and is told "3 follows my rule" Or "15 follows the rule, right?" which the rule-make will respond with "No, 15 does not follow the rule" The guesser will eventually win by guessing the rule or lose by giving up. For example, The secret rule might be that it is an integer that is a prime number. The rule-maker Starts with "2 follows my rule, but 4 does not" The rule-guesser than asks "Does  3 follow the rule?" and is told "3 follows my rule" Or "15 follows the rule, right?" which the rule-make will respond with "No, 15 does not follow the rule" The guesser will eventually win by guessing the rule or lose by giving up.
    
 +In our computer version, the user asks about a certain ''int'' or ''String'', and the computer answers whether it follows the secret rule or not.  After 10 clues are given, the user has to pass a test by answering "yes" or "no" to certain ''int'' or ''Strings''
  
-====== Guess My Integer ======+To be fair, the secret rule cannot involve any random behavior. 
  
 +
 +==== Guess My Integer Rule====
 +This is best used with the BlueJ IDE where you can make an instance of a class without writing a ''main'' method.
 +<code java| GuessMyIntegerRule.java>/**
 + * Make up your own rule
 + 
 + * @author Chris Thiel, OFMCap
 + *
 + */
 +public class GuessMyIntegerRule 
 +{
 + //  Change secretRule to make your own rule
 +        private String secretRule = "It must be prime";
 +        
 + public boolean DoesThisIntFollowMyRule(int n) 
 + {
 + // change this code for checking if n follows your rule.
 + for(int i = 2; i < n; i++)
 + if (n % i == 0)
 + return false;
 + return true;
 + }
 +
 + public String IGiveUp()
 + {
 + return secretRule;
 + }
 +}
 +</code>
 +Now Try this:
 +  - Change the code so it the number must me even
 +  - Change the code so it must be odd
 +  - Make up your own rule and try it out with your lab partner
 +==== Guess My String Rule ====
 +This is best using the Eclipse IDE
 +<code java| GuessMyStringRule.java>
 +/**
 + * Make up your own rule
 + 
 + * @author Chris Thiel, OFMCap
 + *
 + */
 +import java.util.Scanner;
 +
 +public class GuessMyStringRule {
 + private String secretRule, hint;
 + private String[] correctGuess;
 +
 + public GuessMyStringRule()
 + {
 + // Change the following to make your own rule and hint:
 +
 +                secretRule = "The String needed to contain a lower case s";
 + hint = "Ben follows the rule, but bend does not";
 +
 + }
 + public static void main( String[] args ) {
 + GuessMyStringRule rule = new GuessMyStringRule();
 + Scanner kb = new Scanner(System.in);
 + System.out.println("Guess My Rule\nType a string and I will repond with true or false");
 + int attempt = 10;
 + int correct = 0;
 + String[] correctGuess = new String[10];
 + System.out.println( rule.getHint() );
 + while ( attempt > 0 )
 + {
 + System.out.print (correct + " correct, " + attempt + " attempts left\n" + (11-attempt) + ": ");
 + String guess = kb.nextLine();
 +
 + if (rule.isCorrect(guess))
 + {
 + correct++;
 + for (String g:correctGuess)
 + if (guess.equals(g))
 + correct--;
 + correctGuess[10-attempt] = guess;
 + System.out.print("TRUE! ");
 + } else {
 + System.out.print("False. ");
 + }
 + attempt--;
 + }
 + System.out.println("Did you get the idea? The rule was " + rule.getSecretRule() );
 +
 +
 +
 + }
 + private String getHint() {
 + return hint;
 + }
 + private String getSecretRule() {
 + return secretRule;
 + }
 +        /**
 +        /* change the following to determine if your rule is followed
 +        */
 + public boolean isCorrect(String guess) {
 + if (guess.indexOf('s') < 0)
 + return false;
 +
 + return true;
 + }
 +
 +
 +}
 +</code>
 +====Rubric====
 +  - Name and seat in a comment?
 +  - Unique secret rule
 +  - Hint provided
 +  - Attempt to test if input follows the rule
 +  - Functions according to spec
 +  - Follows best practices (names of variables, indenting, etc)
guess_my_rule.1590865303.txt.gz · Last modified: 2020/05/30 15:01 by frchris

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki