Dev - C++ - ayuda codigo c++ para poner en la matriz de forma aleatoria

 
Vista:
sin imagen de perfil

ayuda codigo c++ para poner en la matriz de forma aleatoria

Publicado por javier (1 intervención) el 22/01/2020 17:46:53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include <iostream>
#include <cstdlib>
#include <sstream>
#include <limits>
#include <windows.h>
#include <stdio.h>
 
// Necesito ayuda en poner en la matriz de forma aleatoria la letra 'T' 10 vesces ademas ocupa 1 espacio en la matriz
//Tambien poner 5 vesces la letra 'C' de forma horzontal usa 2 espacios en la matriz
// Y finalmente 3 veces la letra 'K' de forma vertical usa 3 espacios de la matrtiz
// Se asemeja al juego de batalla naval .
 
}
 
 
 
 
using namespace std;
 
const int TAM = 15;
 
void imprimir( char (*tablero)[TAM+1] );
 
int main () {
    system( "MODE CON cols=80 lines=40" );
    bool salir = false;
    int y;
    int x;
 
    char tY;
    string disparo;
 
    char tablero [TAM][TAM + 1] = {0};
 
 
    for ( int i = 0; i < TAM; i++ ) {
        for ( int j = 0; j < TAM; j++ ) {
            tablero[i][j] = '-';
        }
 
    }
 
    imprimir ( tablero );
 
 
    while( !salir ){
 
        std::cout << "Elija un sector. Ejemplo A1, C5, B2... Si elijes 2 ceros saliras del programa." << endl;
        cin >> disparo;
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
 
        sscanf ( disparo.c_str() ,"%c%d",&tY,&x);
        y = int ( tY )-64;
 
 
        if (x == -1 && y == -1){
            salir = true;
        }
 
        x--;
        y--;
        if (x < 0 && y < 0){
            salir = true;
        }
        if ( ( x >= 0 && y  >= 0) && ( x < TAM && y < TAM )  ){
            tablero[y][x] = '\x9D';
        }else{
            if (x < 0 && y < 0){
                salir = true;
            }else{
                system("cls");
 
                std::cout << "Has entrado con coordenadas no validas.\n\nEntre nuevamente con las coordenadas. Las coordenadas deben ser maximo: " <<  char(TAM+64) << TAM << std::endl << std::endl;
                system("pause");
            }
        }
 
 
 
            imprimir( tablero );
    }
 
    system("cls");
    cout << "TRAVESURA REALISADA" << endl;
    cin.ignore();
    return 0;
 
 
    cin.ignore();
    return 0;
}
 
void imprimir( char (*tablero)[TAM+1] ){
    system("cls");
    std::stringstream ss;
    int anchoLinea = 0;
    string linea;
 
 
    std::cout << "  \xBA";
 
    for ( int i = 0; i < TAM; i++ ) {
        if ( i < 10 )
            ss << "  " << i + 1;
        else
            ss << " " << i + 1;
 
    }
 
    std::cout << ss.str();
    anchoLinea = ss.str().length();
    std::cout << " \xBA" << std::endl;
 
 
    ss.str (std::string(""));
    std::cout << "\xCD\xCD\xCE";
    std::cout.width ( anchoLinea + 2 );
    std::cout.fill ( 205 );
    std::cout << "\xB9" << std::endl;
 
 
 
    /
 
 
 
 
 
 
	for ( int i = 0; i < TAM; i++ ) {
 
        std::cout << char( i+65 )  << " \xBA ";
        for ( int z = 0; z < TAM; z++ ) {
            std::cout << " " << tablero[i][z] << " ";
 
        }
 
        if ( TAM < 10 )
            std::cout << "\xBA" << std::endl << "  \xBA";
        else
            std::cout << " \xBA" << std::endl << "  \xBA";
        std::cout.width ( anchoLinea+2 );
        std::cout.fill ( ' ' );
        std::cout << " \xBA" << std::endl;
    }
 
 
    std::cout << "\xCD\xCD\xCA";
    std::cout.width ( anchoLinea + 2 );
    std::cout.fill ( 205 );
    std::cout << "\xBC" << std::endl << std::endl;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder