Log in

View Full Version : มาช่วยกันแชร์แนวคิด การเขียนโปรแกรม JAVA กันหน่อย ครับ เพิ่งได้ Assignment มา



Neverdie_bo
19-11-2008, 05:16 AM
http://www.geocities.com/chesssiam/about/ChessBoard.jpg

1 4 5
2 3 6
9 8 7

จะเห็นว่าการเดินแบบอิสระบนกระดาน ขนาด 3 คูณ 3 เป็นไปตามลำดับเลข

:D :D :D :D :D

retool2
19-11-2008, 01:39 PM
เอาตามที่ผมเคยเขียนมาเลยนะครับ โปรแกรมนี้ผมเคยเขียนมาแล้ว ไม่ใช่การเดินของม้าแต่ algorithmเดียวกันครับ
ขอ lock ไว้หน่อยนะครับ เพราะว่า code ตัวนี้ไม่แตกต่างจากกระทู้ที่ผมเคย post ไป

**Hidden Content: Check the thread to see hidden data.**

ปล.ช่วยลดขนาดรูปใน signature ด้วยได้ไหมครับ

Edkung_
19-11-2008, 03:16 PM
^^ เอามั่งสิ แต่อันนี้เป็น c++ นะ เอาไปแปลงเอาเอง หลักการก็คล้ายๆ กะข้างบน แต่อันนี้ ไม่มีการคิดเรื่อง ไปแล้วตันแล้วต้องย้อนกลับไปใหม่นะ



-เริ่มต้นจุดที่เดิน
-เก็บค่าจุดที่ยืนใส่ array 1*64
-while ไม่ครบครบ64ช่อง
+if มีช่องให้เดินต่อ
*เลือกเดินไปยังจุดที่เดินได้(ไม่ซ้ำกับจุดที่เคยเดินไปแล้ว)(ข้อ1)
*เก็บค่าเส้นทางที่ผ่านได้(ข้อ2)
*เก็บค่าจุดที่ยืนใส่ array 1*64(ข้อ3)
+ไม่มีช่องให้เดินต่อ
*ย้อนกลับไปยังจุดก่อนหน้า(array 1*64)
*ลบค่าเส้นทางที่ผ่านได้ของจุดที่ยืน(ข้อ2)[/b]
ต่างกันที่แทนที่จะเดินไปเรื่อยๆ ตามยถากรรม ผมใช้วิธี หาเส้นทางที่เป็นไปได้ทั้งหมดของม้า แล้วดูว่า แต่ละเส้นทางมีทางเลือกที่จะเดินต่อไปเท่าไร จากนั้นเลือกไปยังเส้นทางที่มี ทางเลือกน้อยที่สุดก่อน เพื่อป้องกันไม่ให้เกิดการเดินตัน

[code]#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>

int control();
void move(int x,int y);
int checkHope(int x, int y);
void printTable();
int nMove=0;
typedef struct node
{

Neverdie_bo
21-11-2008, 10:49 PM
จาก algorithm ของท่าน Edkung :rolleyes: :rolleyes: เขียนเป็น จาวา ได้ดังนี้ มีบัคป่าวไม่รู้นะช่วยดูหน่อยละกัน
ตอนแรกจะทำเป็น array 1 มิติ ตามที่ retool2 แนะนำ แต่มันก็ยากตรงที่ การหาความสัมพันธ์ของการเดินอะครับเลย
ทำเป็น array 2 มิติ ให้เป็นแกน X กะแกน Y มันหาลำดับการเดินง่ายดี อิอิ เช่น X+2 ,Y+1 อะไรประมาณนี้แหละครับ

ตอนแรกนั่งดู algorithm ของท่าน Edkung พอเข้าใจแนวทางเลย นำมานั่งงมเองอยู่พักนึง เลยๆๆๆๆ อิอิ

ยังไม่ค่อยถนัด จาวา เท่าไหร่เลย แต่ก็พอ มั่วๆ ไปได้ เหอๆๆๆๆๆๆๆๆๆๆๆ

อยากแนะนำตรงไหนก็บอกกันได้นะครับ


[code]
//program writes by Neverdie_bo

Edkung_
22-11-2008, 01:22 PM
ยังไม่ได้ run code นะครับ แบบว่าขี้เกียจลง java compiler
แต่ขอติหน่อยนึง

[code]public static int[][] Status=new int[9][9];

Neverdie_bo
22-11-2008, 04:16 PM
[code]public static int[][] Status=new int[9][9];