Necesito ayuda en una aplicación sobre una tabla de fichas creada en C y C++
Hola, he hecho un programa pero no me funciona correctamente pero no donde esta el fallo. El programa consiste en una tabla de 7x7 en la cual hay una fichas y tengo que decir si hay o no fichas alrededor de una coordenada que tienes que poner. El programa que utilizo para hacerlo es el " Dev-C++ ".
Hay cosas escritas en catalan,si algo no lo entiendes preguntamelo. Muchas gracias.
aqui te pongo todo lo que es el programa:
#include <iostream>
using namespace std;
void omplir (char mat[7][7]){
int i,j;
for (j=0; j<7; j++){
for (i=0; i<7; i++){
if ( (i==3 and j==3) or ((i<2 or i>4) and (j<2 or j>4)) ){
mat[j] = '·';
}
else {
mat[j] = 'O';
}
}
}
}
void mostrar_taula (char m[7][7]){
int i,j;
cout << " 0123456" << endl;
for (j=0; j<7; j++){
cout << j;
for (i=0; i<7; i++){
cout << m[j];
}
cout << endl;
}
cout << endl;
}
bool dins_limits (int a, int b){
bool i;
if ((a>=0 and a<=6) and (b>=0 and b<=6)){
i = true;
}
else{
i = false;
}
return (i);
}
bool te_veins (char mat[7][7], int i, int j){
bool a;
if (( mat[j-1] = 'O') or ( mat[i-1][j] = 'O') or (mat [j+1] = 'O')
or (mat [i+1][j] = 'O') or (mat[i-1][j-1] = 'O')
or (mat[i+1][j+1] = 'O') or (mat[i+1][j-1] = 'O')
or (mat[i-1][j+1] = 'O')){
a = true;
}
else {
a = false;
}
return (a);
}
int main () {
int i, j;
int fin;
bool te_veins;
char m[7][7];
bool dins_limits;
omplir(m);
mostrar_taula(m);
do{
cout << endl << "Digui una fila...";
cin >> i;
cout << endl << "Digui una columna...";
cin >> j;
}while (!dins_limits(i, j));
if ( m[j] != te_veins ){
cout << "no te veins" << endl;
}
else {
cout << "te veins" << endl;
}
cin >> fin;
}
Hay cosas escritas en catalan,si algo no lo entiendes preguntamelo. Muchas gracias.
aqui te pongo todo lo que es el programa:
#include <iostream>
using namespace std;
void omplir (char mat[7][7]){
int i,j;
for (j=0; j<7; j++){
for (i=0; i<7; i++){
if ( (i==3 and j==3) or ((i<2 or i>4) and (j<2 or j>4)) ){
mat[j] = '·';
}
else {
mat[j] = 'O';
}
}
}
}
void mostrar_taula (char m[7][7]){
int i,j;
cout << " 0123456" << endl;
for (j=0; j<7; j++){
cout << j;
for (i=0; i<7; i++){
cout << m[j];
}
cout << endl;
}
cout << endl;
}
bool dins_limits (int a, int b){
bool i;
if ((a>=0 and a<=6) and (b>=0 and b<=6)){
i = true;
}
else{
i = false;
}
return (i);
}
bool te_veins (char mat[7][7], int i, int j){
bool a;
if (( mat[j-1] = 'O') or ( mat[i-1][j] = 'O') or (mat [j+1] = 'O')
or (mat [i+1][j] = 'O') or (mat[i-1][j-1] = 'O')
or (mat[i+1][j+1] = 'O') or (mat[i+1][j-1] = 'O')
or (mat[i-1][j+1] = 'O')){
a = true;
}
else {
a = false;
}
return (a);
}
int main () {
int i, j;
int fin;
bool te_veins;
char m[7][7];
bool dins_limits;
omplir(m);
mostrar_taula(m);
do{
cout << endl << "Digui una fila...";
cin >> i;
cout << endl << "Digui una columna...";
cin >> j;
}while (!dins_limits(i, j));
if ( m[j] != te_veins ){
cout << "no te veins" << endl;
}
else {
cout << "te veins" << endl;
}
cin >> fin;
}
1 Respuesta
Respuesta de victor46
1