- /*
- *
- * 八皇后 運用遞迴
- *
- *
- */
- public class Einght_Queen {
- int max = 8 ;
- int[] queens = new int[max];
- int an_count = 1;
- public static void main(String[] args) {
- new Einght_Queen().check(0);
- }
- public void check(int n){
- //都擺完皇后後 == max 就印出
- if(n == max){
- //輸出
- print();
- return ;
- }
- for(int pos = 0 ; pos < max ; pos++){
- queens[n] = pos ;//給位置
- if(judgment(n)) //假設找到位置 換下個皇后
- check(n+1);
- }
- }
- private void print() {
- System.out.println("-------"+an_count+"--------");
- for (int i = 0; i < queens.length; i++) {
- for (int j = 0; j < queens.length; j++) {
- if(queens[i] == j )
- System.out.print("♛"+" ");
- else
- System.out.print("♕"+" ");
- }
- System.out.println();
- }
- an_count++;
- }
- public boolean judgment(int n){
- for(int queen = 0 ; queen < n ; queen++ ){//跟每個皇后比 是否被吃掉
- if(queens[n] == queens[queen] || Math.abs(n-queen) == Math.abs(queens[n]-queens[queen]) ){
- return false ;
- }
- }
- return true ;//沒有,回傳true
- }
- }
2017年7月29日 星期六
(Java)八皇后
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。