井字游戏的例子

【井字游戏的例子】在此示例中, 我们将看到井字游戏的示例(也称为0和x(叉号))。
它只能通过AWT API开发, 但是我们在这里使用的是swing框架。

import java.awt.*; import java.awt.event.*; import javax.swing.*; class TTT1 extends JFrame implements ItemListener, ActionListener{ int i, j, ii, jj, x, y, yesnull; int a[][]={{10, 1, 2, 3, 11}, {10, 1, 4, 7, 11}, {10, 1, 5, 9, 11}, {10, 2, 5, 8, 11}, {10, 3, 5, 7, 11}, {10, 3, 6, 9, 11}, {10, 4, 5, 6, 11}, {10, 7, 8, 9, 11} }; int a1[][]={{10, 1, 2, 3, 11}, {10, 1, 4, 7, 11}, {10, 1, 5, 9, 11}, {10, 2, 5, 8, 11}, {10, 3, 5, 7, 11}, {10, 3, 6, 9, 11}, {10, 4, 5, 6, 11}, {10, 7, 8, 9, 11} }; boolean state, type, set; Icon ic1, ic2, icon, ic11, ic22; Checkbox c1, c2; JLabel l1, l2; JButton b[]=new JButton[9]; JButton reset; public void showButton(){x=10; y=10; j=0; for(i=0; i< =8; i++, x+=100, j++){ b[i]=new JButton(); if(j==3) {j=0; y+=100; x=10; } b[i].setBounds(x, y, 100, 100); add(b[i]); b[i].addActionListener(this); }//eof forreset=new JButton("RESET"); reset.setBounds(100, 350, 100, 50); add(reset); reset.addActionListener(this); }//eof showButton/*********************************************************/ publicvoid check(int num1){ for(ii=0; ii< =7; ii++){ for(jj=1; jj< =3; jj++){ if(a[ii][jj]==num1){ a[ii][4]=11; }}//eof for jj}//eof for ii }//eof check /**********************************************************//*********************************************************/public void complogic(int num){ for(i=0; i< =7; i++){ for(j=1; j< =3; j++){ if(a[i][j]==num){a[i][0]=11; a[i][4]=10; } } } for(i=0; i< =7; i++){// for 1 set=true; if(a[i][4]==10){//if 1 int count=0; for(j=1; j< =3; j++){//for 2 if(b[(a[i][j]-1)].getIcon()!=null){ //if 2 count++; }//eof if 2 else{ yesnull=a[i][j]; } }//eof for 2 if(count==2){//if 2 b[yesnull-1].setIcon(ic2); this.check(yesnull); set=false; break; }//eof if 2 }//eof if 1 else if(a[i][0]==10){ for(j=1; j< =3; j++){//for2 if(b[(a[i][j]-1)].getIcon()==null){ //if 1 b[(a[i][j]-1)].setIcon(ic2); this.check(a[i][j]); set=false; break; }//eof if1 }//eof for 2 if(set==false) break; }//eof elseifif(set==false) break; }//eof for 1}//eof complogic/*********************************************************/TTT1(){ super("tic tac toe by ashwani"); CheckboxGroup cbg=new CheckboxGroup(); c1=new Checkbox("vs computer", cbg, false); c2=new Checkbox("vs friend", cbg, false); c1.setBounds(120, 80, 100, 40); c2.setBounds(120, 150, 100, 40); add(c1); add(c2); c1.addItemListener(this); c2.addItemListener(this); state=true; type=true; set=true; ic1=new ImageIcon("ic1.jpg"); ic2=new ImageIcon("ic2.jpg"); ic11=new ImageIcon("ic11.jpg"); ic22=new ImageIcon("ic22.jpg"); setLayout(null); setSize(330, 450); setVisible(true); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); }//eof constructor/*************************************************************/ public void itemStateChanged(ItemEvent e){ if(c1.getState()) { type=false; } else if(c2.getState()) { type=true; } remove(c1); remove(c2); repaint(0, 0, 330, 450); showButton(); }//eof itemstate /************************************************************/public void actionPerformed(ActionEvent e){ /********************************/ if(type==true)//logicfriend { if(e.getSource()==reset){ for(i=0; i< =8; i++){ b[i].setIcon(null); }//eof for } else{ for(i=0; i< =8; i++){ if(e.getSource()==b[i]){if(b[i].getIcon()==null){ if(state==true){ icon=ic2; state=false; } else{ icon=ic1; state=true; } b[i].setIcon(icon); } } }//eof for }//eof else }//eof logicfriend else if(type==false){//complogic if(e.getSource()==reset){ for(i=0; i< =8; i++){ b[i].setIcon(null); }//eof for for(i=0; i< =7; i++) for(j=0; j< =4; j++) a[i][j]=a1[i][j]; //again initialsing array } else{//complogic for(i=0; i< =8; i++){ if(e.getSource()==b[i]){ if(b[i].getIcon()==null){ b[i].setIcon(ic1); if(b[4].getIcon()==null){ b[4].setIcon(ic2); this.check(5); } else{ this.complogic(i); } } } }//eof for } }//eof complogicfor(i=0; i< =7; i++){Icon icon1=b[(a[i][1]-1)].getIcon(); Icon icon2=b[(a[i][2]-1)].getIcon(); Icon icon3=b[(a[i][3]-1)].getIcon(); if((icon1==icon2)& & (icon2==icon3)& & (icon1!=null)){ if(icon1==ic1){ b[(a[i][1]-1)].setIcon(ic11); b[(a[i][2]-1)].setIcon(ic11); b[(a[i][3]-1)].setIcon(ic11); JOptionPane.showMessageDialog(TTT1.this, "!!!YOU won!!! click reset"); break; } else if(icon1==ic2){ b[(a[i][1]-1)].setIcon(ic22); b[(a[i][2]-1)].setIcon(ic22); b[(a[i][3]-1)].setIcon(ic22); JOptionPane.showMessageDialog(TTT1.this, "won! click reset"); break; } } }}//eof actionperformed /************************************************************/public static void main(String []args){ new TTT1(); }//eof main }//eof class

    推荐阅读