📄 gra.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package JavaWarcaby;/** * * @author Slayer86 */import java.io.*;public class Gra { /** * @param args the command line arguments */ int[][] plansza = new int[8][8]; static final int BIALE = 1; static final int CZARNE = 2; static final int B_DAMKA = 3; static final int C_DAMKA = 4; static final int PUSTE = 0; int czyjRuch = CZARNE; int przegrany = PUSTE; int maxCzarny=4; int maxBialy=4; int Czarny=2; int Bialy=1; public static void wyswietlPlansze(int[][] plansza) { //System.out.println("|-|-|-|-|-|-|-|-|"); for (int i=0; i<8; i++) { for (int j=0; j<8; j++) { if (plansza[i][j]==BIALE) System.out.print("|O"); if (plansza[i][j]==B_DAMKA) System.out.print("|B"); if (plansza[i][j]==CZARNE) System.out.print("|X"); if (plansza[i][j]==C_DAMKA) System.out.print("|C"); if (plansza[i][j]==PUSTE) System.out.print("|-"); } System.out.println("|"); //System.out.println("|---------------|"); //System.out.println("|-|-|-|-|-|-|-|-|"); } } public int zmianaGracza() { int punkty=0; int[] ruch = new int[4]; int[] counter = new int[1]; counter[0]=0; if (przegrany==PUSTE) wyswietlPlansze(plansza); // czarny ruszyl if (this.czyjRuch == CZARNE && przegrany==PUSTE) { this.czyjRuch = BIALE; System.out.println("Ruch - Biale"); punkty = Silnik.MiniMax(plansza,0,maxBialy,ruch,this.czyjRuch,counter,Bialy); System.out.println("Wynik Bialy = "+ punkty); if (ruch[0] == 0 && ruch[1] == 0) przegrany = BIALE; else { Ruchy.rusz(plansza, ruch); if ( przegrany == PUSTE ) zmianaGracza(); this.czyjRuch = CZARNE; } } // bialy ruszyl else if (this.czyjRuch == BIALE && przegrany==PUSTE ) { this.czyjRuch = CZARNE; System.out.println("Ruch - Czarne"); punkty = Silnik.MiniMax(plansza,0,maxCzarny,ruch,this.czyjRuch,counter,Czarny); System.out.println("Wynik Czarny = "+ punkty); if (ruch[0] == 0 && ruch[1] == 0) przegrany = CZARNE; else { Ruchy.rusz(plansza, ruch); if ( przegrany == PUSTE) zmianaGracza(); this.czyjRuch = BIALE; } } if (Ruchy.KoniecRuchow(plansza,this.czyjRuch)) { if (this.czyjRuch == BIALE) przegrany = BIALE; else przegrany = CZARNE; } if (przegrany==PUSTE) wyswietlPlansze(plansza); return przegrany; } boolean dozwolonePozycje(int i, int j) { return (i+j)%2 == 1; } public static void main(String[] args) throws IOException { // TODO code application logic here int wynik=PUSTE; String wybor; int w; Gra warcaby1=new Gra(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("1. MINIMAX. "); System.out.println("2. L-B. "); System.out.println("Wybierz algorytm dla czarnych (domyslnie L-B): "); w = br.read(); if (w-48==1 || w-48==2) warcaby1.Czarny=w-48; else System.out.println("Blad! Wybrana zostanie wartosc domyslna."); br.read(); System.out.println("Wybierz algorytm dla bialych (domyslnie MINIMAX): "); w = br.read(); if (w-48==1 || w-48==2) warcaby1.Bialy=w-48; else System.out.println("Blad! Wybrana zostanie wartosc domyslna."); br.read(); System.out.println("Podaj max glebokosc dla czarnych (optymlnie 4): "); try { wybor = br.readLine(); if (Integer.parseInt(wybor)>=0 || Integer.parseInt(wybor)<=12) warcaby1.maxCzarny=Integer.parseInt(wybor); } catch(NumberFormatException e) {System.out.println("Blad! Wybrana zostanie wartosc optymalna.");} System.out.println("Podaj max glebokosc dla bialych (optymalnie 4): "); try { wybor = br.readLine(); if (Integer.parseInt(wybor)>=0 || Integer.parseInt(wybor)<=12) warcaby1.maxBialy=Integer.parseInt(wybor); } catch(NumberFormatException e) {System.out.println("Blad! Wybrana zostanie wartosc optymalna.");} System.out.println(warcaby1.Czarny+" "+warcaby1.Bialy+" "+warcaby1.maxCzarny+" "+warcaby1.maxBialy); for (int i=0; i<8; i++) { for (int j=0; j<8; j++) { warcaby1.plansza[i][j] = PUSTE; } for (int j=0; j<3; j++) if ( warcaby1.dozwolonePozycje(i,j) ) { warcaby1.plansza[i][j] = BIALE; } for (int j=5; j<8; j++) if ( warcaby1.dozwolonePozycje(i,j) ) { warcaby1.plansza[i][j] = CZARNE; } } warcaby1.wyswietlPlansze(warcaby1.plansza); warcaby1.czyjRuch = CZARNE; System.out.println("Ruch - Czarne"); wynik=warcaby1.zmianaGracza(); if (wynik!=PUSTE) { System.out.println("KONIEC"); if (wynik==BIALE) System.out.println("CZARNY WYGRAL!"); else System.out.println("BIALY WYGRAL"); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -