Você está na página 1de 2

#include <stdio.

h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include <unistd.h>
int main(){
srand(time(NULL));
int dado1 = 0, dado2 = 0, x = 0, y = 0, i = 0, j = 0, n = 0, movimiento = 2, contador
= 0, reintentos = 1, intentos = 0;
printf("Tamano: ");
scanf("%d", &n);
int tablero[n][n];
//creacion del tablero
for (i = 0; i < n; i++){
for (j = 0; j < n; j++){
if (i == 0 && j ==0){
tablero[i][j] = 1;
}
else{
tablero[i][j] = 0;
}
}
}

while(movimiento <= n * n){


//movimiento del caballo
dado1 = rand() % 9;
dado2 = rand() % 9;

if (abs(dado1 - x) == 2 && abs(dado2 - y) == 1){


for (i = 0; i < n; i++){
for (j = 0; j < n; j++){
if (i == dado1 && j == dado2){
if (tablero[i][j] == 0){
tablero[i][j] = movimiento;
movimiento++;
x = i;
y = j;
}
}
}
}
}
else
if (abs(dado1 - x) == 1 && abs(dado2 - y) == 2){
for (i = 0; i < n; i++){
for (j = 0; j < n; j++){
if (i == dado1 && j == dado2){
if (tablero[i][j] == 0){
tablero[i][j] = movimiento;
movimiento++;
x = i;
y = j;
}
}
}
}
}
//reiniciar
contador++;
if (contador == 1000){
for (i = 0; i < n; i++){
for (j = 0; j < n; j++){
if (i == 0 && j ==0){
tablero[i][j] = 1;
}
else{
tablero[i][j] = 0;
}
x = 0;
y = 0;
movimiento = 2;
}
}
contador = 0;
reintentos++;
}
intentos++;
}
//mostrar resultado
for (i = 0; i < n; i++){
for (j = 0; j < n; j++){
printf("%d\t", tablero[i][j]);
}
printf("\n");
}
printf("reintentos: %d", reintentos);
printf("intentos totales: %d", intentos);
return 0;
}

Você também pode gostar