Sie sind auf Seite 1von 2

En una matriz 6x6 se han distribuido barcos de diferente longitud.

Cada barco es nico y est representado por un nmero que indica su longitud. Las celdas vacas contienen un cero y las celdas de los barcos hundidos contienen un -1. Ud. Debe implementar: 1. Un juego que permita colocar un barco dada una coordenada, una longitud y una direccin (horizontal=0, vertical =1). El barco no puede utilizar ninguna de las celdas ya ocupadas. El programa retorna un mensaje si el barco fue colocado exitosamente. 2. Permitir disparar a un barco. Cuando el disparo se realiza: Si cae en el mar o en una posicin de barco hundido, los puntos=0. Si la celda atacada contena un barco se debe hundir el barco actualizando con -1 todas las casillas de ese barco. Los puntos son iguales a la longitud del barco. 3. Al final del programa muestre los puntos ganados Nota: asuma que en el tablero solo puede existir un bote de la misma longitud

DIM=6 mar=zeros(DIM,DIM) puntos=0 colocado=1 op=0 while(op<>3) disp("Elija su operacion:") disp("1) Colocar") disp("2) Disparar") disp("3) Salir") op=input("Ingrese su eleccion:") select(op) case(1) longitud=input("Ingrese la longitud del bote: ") direccion=input("Ingrese la direccion del bote (horizontal=0, vertical =1): ") fila=input("Ingrese la fila del bote: ") columna=input("Ingrese la columna del bote: ") for i=1:1:longitud if (direccion==1) then if((columna>DIM)|(fila+longitud-1>DIM)|(mar(fila+i-1,columna)<>0)) then colocado=0 end end if (direccion==0) then if((fila>DIM)|(columna+longitud-1>DIM)|(mar(fila,columna+i-1)<>0)) then colocado=0 end end end if (colocado==1) then if (direccion==1) then for i=1:1:longitud mar(fila+i-1,columna)=longitud end else for i=1:1:longitud mar(fila,columna+i-1)=longitud

end end mprintf("Se coloco el bote de longitud %i en direccion %i en la posicion %i,%i\n",longitud,direccion,fila,columna); else disp("No se puede colocar el bote en esa posicion.") end colocado=1 disp(mar) case(2) fila=input("Ingrese la fila: ") columna=input("Ingrese la columna: ") if (fila>DIM | columna >DIM) then disp("Coordenadas invalidas.") disp(mar) else if ((mar(fila,columna)==0)|(mar(fila,columna)==-1)) then disp("No se hundio barco.") else num=mar(fila,columna) for i=1:1:DIM if (mar(i,columna)==num) then mar(i,columna)=-1 end if (mar(fila,i)==num) then mar(fila,i)=-1 end end puntos=puntos+num mprintf("Se hundio el barco de longitud, %i\n",num); disp(mar) end end end mprintf("Puntos ganados: %i",puntos) end

Das könnte Ihnen auch gefallen

  • Minicaso - CAP 26
    Minicaso - CAP 26
    Dokument8 Seiten
    Minicaso - CAP 26
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • 2012 2s 1exa
    2012 2s 1exa
    Dokument2 Seiten
    2012 2s 1exa
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Nespresso Caso
    Nespresso Caso
    Dokument2 Seiten
    Nespresso Caso
    Johnny Andres Beltran
    Noch keine Bewertungen
  • Clase 1
    Clase 1
    Dokument15 Seiten
    Clase 1
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Contabilidad
    Contabilidad
    Dokument24 Seiten
    Contabilidad
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Programacion Lineal
    Programacion Lineal
    Dokument3 Seiten
    Programacion Lineal
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Rubrica de Las Tareas
    Rubrica de Las Tareas
    Dokument4 Seiten
    Rubrica de Las Tareas
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Inves 3
    Inves 3
    Dokument14 Seiten
    Inves 3
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • 2010 2ter 1par
    2010 2ter 1par
    Dokument6 Seiten
    2010 2ter 1par
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Deber 1 KEVIN-expresiones Alg PDF
    Deber 1 KEVIN-expresiones Alg PDF
    Dokument5 Seiten
    Deber 1 KEVIN-expresiones Alg PDF
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Promedio en Scilab
    Promedio en Scilab
    Dokument1 Seite
    Promedio en Scilab
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Aporte 1
    Aporte 1
    Dokument1 Seite
    Aporte 1
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Sylabus Contabilidad 1
    Sylabus Contabilidad 1
    Dokument5 Seiten
    Sylabus Contabilidad 1
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Sociologia
    Sociologia
    Dokument22 Seiten
    Sociologia
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • 04 Algoritmos
    04 Algoritmos
    Dokument40 Seiten
    04 Algoritmos
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Funcion Cubo en Scilab
    Funcion Cubo en Scilab
    Dokument1 Seite
    Funcion Cubo en Scilab
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Proyecto
    Proyecto
    Dokument2 Seiten
    Proyecto
    Daniel Chiqui Castañeda
    Noch keine Bewertungen
  • Proyecto
    Proyecto
    Dokument2 Seiten
    Proyecto
    Daniel Chiqui Castañeda
    Noch keine Bewertungen