witam mam problem, mam do zrobienia program program znajdujacy droge skoczka szachowego na szachownicy (skoczek musi
znalezc sie na wszystkich polach bedac na ka dym polu tylko jeden raz).
Dane wejsciowe: rozmiar szachownicy oraz poczatkowa pozycja skoczka.
Program napisany w c++ lub C #
[c++/c#] Program skoczek w szachach
Rozpoczęty przez
mirek20
, 13 10 2008 14:04
2 odpowiedzi w tym temacie
#1
Napisano 13 10 2008 - 14:04
#2
Napisano 14 10 2008 - 22:40
Ale program na wyjsciu co ma wypisac? ilosc ruchów czy moze wymalowac ta droge czy moze jeszcze cos innego?
#3
Napisano 18 10 2008 - 10:05
Tutaj masz tak na szybko szkrobniety kod. Aby bylo dokladnie z Twoimi zalozeniami musisz jedynie pododawac interfejs z uzytkownikiem i jakies komunikaty, bo nioe zawsze da sie skoczkiem pojezdzic;) Pozdr.
#include "stdafx.h"#include<iostream>#include <conio.h>using namespace std;int N=5;int N2=N*N;int dx[8]={1,2,2,1,-1,-2,-2,-1};int dy[8]={-2,-1,1,2,2,1,-1,-2};int a[5][5];void koniec(void){ for(int i=0; i<N; i++) { for(int j=0; j<N; j++) cout << a[i][j] << "\t"; cout << "\n"; } getchar();}void ruch(int x, int y, int numer){ if((x<0) || (y<0) || ((N-x)<=0) || ((N-y)<=0)) return; if(a[x][y]== 0) { a[x][y] = numer; if (numer ==N2) koniec(); for(int i = 0; i < 8; i++) ruch(x+dx[i], y+dy[i], numer + 1); a[x][y] = 0; }}int main(){ for(int i=0; i<N; i++) for(int j=0; j<N; j++) a[i][j]=0; ruch(0,0,1); getchar();}
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych