import java.awt.*; import java.applet.Applet; public class guess extends Applet { Label label1,label2,label3,label4,label5,label0,label00; TextField number1, number2,number3,number4,number5; int num1, num2,original=1; Panel p1,p2; int numbers[]; String s; StringBuffer s1; TextArea Help,Available; public void init() { numbers = new int[102]; Help = new TextArea(6,50); s = new String ("The first player chooses a number less than 50. \n"+ "Afterwards, the player has to choose a number \n"+ "that is either a divisor or a multiple of the \n"+ "number choosen by the previous player. The number \n"+ "must be from the list. If you cannot choose a,\n"+ "number choose 101 and admit to being a loser. \n"+ "The chosen numbers are deleted from the list."); s1 = new StringBuffer(200); Help.setText(s); for(int i=1;i<=100;i++) numbers[i] = 0; for (int i=1; i<=100;i++) { if (numbers[i]==0) { s1.append(i); if (i!=100) s1.append(", ");} if (i%10==0) { s1.append(" \n"); }} Available = new TextArea(10,40); Available.setText(s1.toString()); Available.setEditable(false); Help.setEditable(false); /* setLayout(new FlowLayout(FlowLayout.LEFT,1,1)); */ add(Help); add(Available); label1 = new Label("Type Your Number:"); number1 = new TextField("0",50); label2 = new Label("My Response:"); number2 = new TextField("0",50); number2.setEditable(false); label3 = new Label("The Referee Response:"); label4 = new Label("The Result of Last Game:"); number3 = new TextField("0",50); number3.setEditable(false); number4 = new TextField("No Result yet",50); number3.setEditable(false); number4.setEditable(false); label5 = new Label("Your Last Number:"); number5 = new TextField("",50); number5.setEditable(false); add(label1);add(number1); add(label2);add(number2); add(label5);add(number5); add(label3);add(number3); add(label4);add(number4); } public int g(int x, int y) { if (numbers[x]==1) return -1; else if ((x != x/y*y) && (y != y/x*x)) return 0; else return 1; } public void init1() { s = new String ("The first player chooses a number less than 50 \n"+ "Afterwards, the player has to choose a number \n"+ "that is either divisor or a multiple of the number\n"+ "chosen by the previous player. Of course the number should \n"+ "be chosen from the list. If you cannot choose a number, choose 101\n"+ "and admit to being a loser"); s1 = new StringBuffer(200); original = 1; Help.setText(s); for(int i=1;i<=100;i++) numbers[i] = 0; for (int i=1; i<=100;i++) { if (numbers[i]==0) { s1.append(i); if (i!=100) s1.append(", ");} if (i%10==0) { s1.append(" \n"); }} Available.setText(s1.toString()); number3.setText("Next Game Partner"); } public int myguess(int x) { if (x==1) return 97; for(int i=1;i<=100/x;i++) if ((x*i <100)&&(numbers[x*i]==0)) return x*i; for(int i=x;i>=1;i--) if ((x%i==0)&&(numbers[i]==0)) return i; return 101; } public boolean action(Event e, Object o) { int ans,mynum; num1 = Integer.parseInt(number1.getText()); if ((original==1)&&(num1 >50)) { number3.setText("Follow the Rules."); return true;} if (original ==1) { original++; numbers[num1]=1; number3.setText("I chose mine. ok ! Here is your turn."); mynum = myguess(num1); if (mynum == 101) {number4.setText("I Lost"); init1();return(true);} else { numbers[mynum]=1; number2.setText(Integer.toString(mynum)); number5.setText(number1.getText()); number1.setText("");} s1 = new StringBuffer(" "); for (int i=1; i<=100;i++) { if (numbers[i]==0) { s1.append(i); if (i!=100) s1.append(", ");} if (i%10==0) { s1.append(" \n"); }} Available.setText(s1.toString()); return true;} num2 = Integer.parseInt(number2.getText()); if (num1 ==101) {number4.setText("You Lost"); init1();return(true);} ans = g(num1,num2); if (ans ==-1) number3.setText("You did not choose a number in the List"); else if (ans ==0) number3.setText(" number not a multiple or a divisor of my number"); else { numbers[num1]=1; number3.setText("I chose mine.ok ! Here is your turn."); mynum = myguess(num1); if (mynum == 101) {number4.setText("I Lost"); number1.setText(""); init1();return(true);} else { numbers[mynum]=1; number2.setText(Integer.toString(mynum));} } s1 = new StringBuffer(" "); for (int i=1; i<=100;i++) { if (numbers[i]==0) { s1.append(i); if (i!=100) s1.append(", ");} if (i%10==0) { s1.append(" \n");}} Available.setText(s1.toString()); number5.setText(number1.getText()); number1.setText(""); return true; } }