Heim  >  Artikel  >  Java  >  Wie implementiert man ein einfaches dreiteiliges Spiel mit Java?

Wie implementiert man ein einfaches dreiteiliges Spiel mit Java?

WBOY
WBOYnach vorne
2023-04-26 22:28:061192Durchsuche

Verwenden Sie die JOptionPane-Klasse

Schreiben Sie ein Programm, um ein einfaches dreiteiliges Spiel zu implementieren. Beim Dreierschach spielen beide Seiten abwechselnd Schach auf einem 3×3-Schachbrett. Eine Seite wird durch * und die andere Seite durch O dargestellt. Wenn die 3 Spielsteine ​​einer Seite dieselbe Reihe, Spalte oder Diagonale belegen, gewinnt diese Seite. Ein Unentschieden liegt vor, wenn das Spielbrett mit Spielsteinen gefüllt ist, aber kein Spieler gewinnt. Im Programm ist eine Partei der Benutzer, und der Benutzer gibt die Position jedes Schachspiels auf der Schnittstelle ein. Die Position des Schachspiels der anderen Partei wird zufällig und automatisch generiert. Die Beispielschnittstelle ist in der Abbildung dargestellt.

Wie implementiert man ein einfaches dreiteiliges Spiel mit Java?

Wie implementiert man ein einfaches dreiteiliges Spiel mit Java?

Tipps: (1) Verwenden Sie die von der Scanner-Klasse oder der JOptionPane-Klasse bereitgestellten Methoden für die Eingabe, und die Ausgabe verwendet die Methoden in System.out oder die von der JOptionPane-Klasse bereitgestellten Methoden. (2) Die String- oder StringBuffer-Klasse kann für die String-Verarbeitung verwendet werden.

Implementierungscode:

import java.util.Random;
import javax.swing.*;
public class Main {
   public static boolean check(StringBuffer st,int pos){   //检查pos上的棋子有没有获胜
      char des=st.charAt(pos);
      char []s=new char[10];
      for(int i=1;i<=9;i++) s[i]=st.charAt(i);
      if((s[3]==des&&s[6]==des&&s[9]==des)||
      (s[1]==des&&s[4]==des&&s[7]==des)||
      (s[2]==des&&s[5]==des&&s[8]==des)||
      (s[1]==des&&s[3]==des&&s[2]==des)||
      (s[6]==des&&s[4]==des&&s[5]==des)||
      (s[9]==des&&s[7]==des&&s[8]==des)||
      (s[1]==des&&s[5]==des&&s[9]==des)||
      (s[3]==des&&s[5]==des&&s[7]==des)) return true;
      return false;
   }
   public static void main(String[] args) {
      StringBuffer s= new StringBuffer("0123456789");
      String tp;
      for(int i=0;i<=5;){
         int k=-1;
         tp=JOptionPane.showInputDialog("---------------------------\n|    "+s.charAt(1)+"    |    "+s.charAt(2)+"    |    "+s.charAt(3)+"    |\n---------------------------\n|    "+s.charAt(4)+"    |    "+s.charAt(5)+"    |    "+s.charAt(6)+"    |\n---------------------------\n|    "+s.charAt(7)+"    |    "+s.charAt(8)+"    |    "+s.charAt(9)+"    |\n---------------------------\n"+"请输入落子位置(1~9):");
         boolean f=true;
         if(tp.length()==1){
            k=tp.charAt(0)-&#39;0&#39;;
            if(k>=1&&k<=9){
               if(s.charAt(k)>=&#39;1&#39;&&s.charAt(k)<=&#39;9&#39;){
                  i++;        //有效下棋
                  f=false;
               }
            }
         }
         while(f){
            tp=JOptionPane.showInputDialog("---------------------------\n|    "+s.charAt(1)+"    |    "+s.charAt(2)+"    |    "+s.charAt(3)+"    |\n---------------------------\n|    "+s.charAt(4)+"    |    "+s.charAt(5)+"    |    "+s.charAt(6)+"    |\n---------------------------\n|    "+s.charAt(7)+"    |    "+s.charAt(8)+"    |    "+s.charAt(9)+"    |\n---------------------------\n"+"输入错误,请重新输入落子的位置:");
            if(tp.length()==1){
               k=tp.charAt(0)-&#39;0&#39;;
               if(k>=1&&k<=9){
                  if(s.charAt(k)>=&#39;1&#39;&&s.charAt(k)<=&#39;9&#39;){
                     i++;        //有效下棋
                     f=false;
                  }
               }
            }
         }
         //在k处落子
         s.replace(k,k+1,"O");
         if(check(s,k)){
            //获胜
            JOptionPane.showMessageDialog(null,"---------------------------\n|    "+s.charAt(1)+"    |    "+s.charAt(2)+"    |    "+s.charAt(3)+"    |\n---------------------------\n|    "+s.charAt(4)+"    |    "+s.charAt(5)+"    |    "+s.charAt(6)+"    |\n---------------------------\n|    "+s.charAt(7)+"    |    "+s.charAt(8)+"    |    "+s.charAt(9)+"    |\n---------------------------\n"+"恭喜你,你赢了!");
            break;
         }
         //电脑随机落子
         if(i==5) {
            JOptionPane.showMessageDialog(null,"---------------------------\n|    "+s.charAt(1)+"    |    "+s.charAt(2)+"    |    "+s.charAt(3)+"    |\n---------------------------\n|    "+s.charAt(4)+"    |    "+s.charAt(5)+"    |    "+s.charAt(6)+"    |\n---------------------------\n|    "+s.charAt(7)+"    |    "+s.charAt(8)+"    |    "+s.charAt(9)+"    |\n---------------------------\n"+"平局!");
            break;
         }
         Random rs=new Random();
         k=rs.nextInt(9)+1;
         while(k<1||k>9||s.charAt(k)==&#39;*&#39;||s.charAt(k)==&#39;O&#39;) k=rs.nextInt(9)+1;
         s.replace(k,k+1,"*");
         if(check(s,k)){
            //电脑胜
            JOptionPane.showMessageDialog(null,"---------------------------\n|    "+s.charAt(1)+"    |    "+s.charAt(2)+"    |    "+s.charAt(3)+"    |\n---------------------------\n|    "+s.charAt(4)+"    |    "+s.charAt(5)+"    |    "+s.charAt(6)+"    |\n---------------------------\n|    "+s.charAt(7)+"    |    "+s.charAt(8)+"    |    "+s.charAt(9)+"    |\n---------------------------\n"+"你输了,再接再厉吧!");
            break;
         }
      }
   }
}

Das obige ist der detaillierte Inhalt vonWie implementiert man ein einfaches dreiteiliges Spiel mit Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen