elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Temas
Páginas: [1]
1  Programación / Programación General / BattleShip en python 3 en: 1 Abril 2019, 17:19 pm
Hola foro!!
Alguien tiene algún juego de hundir la flota en Python 3.

Si lo teneis jugador vs maquina seria la hostia!!!!

Gracias gente.
2  Programación / Programación General / Python 3 Codigo de Hundir la flota en: 25 Marzo 2019, 16:49 pm
Gente alguien tiene el código de Python 3 del juego hundir la flota?
Este me da fallo:

import numpy as np

from collections import Counter





def iguales(diccionario_1, diccionario_2):

    return diccionario_1.__eq__(diccionario_2)





def comprobar_barcos(oceano, cuenta_barcos):

    barcos_oceano = {}

    tamaño = 0

    for fila in range(oceano.shape[0]):

        for casilla in oceano[fila, :]:

            if casilla == 0:

                if tamaño > 1:

                    if tamaño in barcos_oceano:

                        barcos_oceano[tamaño] += 1

                    else:

                        barcos_oceano[tamaño] = 1

                tamaño = 0

            else:

                tamaño += 1

    for columna in range(oceano.shape[1]):

        for casilla in oceano[:, columna]:

            if casilla == 0:

                if tamaño > 1:

                    if tamaño in barcos_oceano:

                        barcos_oceano[tamaño] += 1

                    else:

                        barcos_oceano[tamaño] = 1

                tamaño = 0

            else:

                tamaño += 1



    return iguales(barcos_oceano, cuenta_barcos)





if __name__ == '__main__':

    respuestas = []

    numero_barcos = int(input())

    while numero_barcos > 0:

        lista_barcos = [int(x) for x in input().split()]

        cuenta_barcos = Counter(lista_barcos)

        tamaño_oceano = int(input())

        oceano = []

        for fila in range(tamaño_oceano):

            oceano.append([int(x) for x in input().split()])

        oceano = np.array(oceano)

        if comprobar_barcos(oceano, cuenta_barcos):

            respuestas.append('SI')

        else:

            respuestas.append('NO')

        numero_barcos = int(input())

    for respuesta in respuestas:

        print(respuesta)


Gracias foro ;)
3  Programación / Scripting / Juegos de mesa (tipo jumanji) en Python 3 en: 19 Diciembre 2018, 13:23 pm
Buenas, 
Hago esta consulta para todos aquellos que estudiamos Python y nos toca hacer practicas. Me toca hacer un juego tipo jumanji y estoy mas perdido que el mar de Bolivia . Tengo hechos los eventos de cada casilla es decir (casilla uno encuentras una espada y se suma a tu inventario). Ahora lo que no se como hacer es que en cada tirada en función de lo que decida el dado que he definido como (dado = random.randint(1,7) ) se vaya a la casilla correspondiente. Ojala podáis echarme un cable.

Muchas gracias foreros ;D
4  Programación / Programación General / Alguin que sepa de python3 me puede decir que falla de mi codigo pq no lo veo en: 10 Diciembre 2018, 00:05 am
import random, os



baralla = [
    [1, 'Piques'], [2, 'Piques'], [3, 'Piques'],[4, 'Piques'],[5, 'Piques'],
    [6, 'Piques'], [7, 'Piques'], ['J', 'Piques'], ['Q', 'Piques'],['K', 'Piques'],
    [1, 'Diamants'], [2, 'Diamants'], [3, 'Diamants'],[4, 'Diamants'],[5, 'Diamants'],
    [6, 'Diamants'], [7, 'Diamants'], ['J', 'Diamants'], ['Q', 'Diamants'], ['K', 'Diamants'],
    [1, 'Cors'], [2, 'Cors'], [3, 'Cors'],[4, 'Cors'],[5, 'Cors'],
    [6, 'Cors'], [7, 'Cors'], ['J', 'Cors'], ['Q', 'Cors'], ['K', 'Cors'],
    [1, 'Trèvols'], [2, 'Trèvols'], [3, 'Trèvols'],[4, 'Trèvols'],[5, 'Trèvols'],
    [6, 'Trèvols'], [7, 'Trèvols'], ['J', 'Trèvols'], ['Q', 'Trèvols'], ['K', 'Trèvols']
]



#baraja las cartas

random.shuffle(baralla)




cartas_jugador=[]
cartas_maquina=[]

posicion_jugador=-1
posicion_maquina=-2

puntos_jugador=0
puntos_maquina=0

#CARTAS


print("MÀQUINA:") #Muestra cartas de la maquina


cartas_maquina=(baralla[posicion_maquina])
print(cartas_maquina)
posicion_maquina+=-2 # Ya que la del jugador es la ultima y esta es la penultima



print("JUGADOR:") #Muestra cartas del jugador


continuar="s"

while  continuar=="s": # Si quiere otra carta
     if contador_jugador==-1: #Proporciona una carta
        cartas_jugador=[baralla[contador_jugador]]
        print(cartas_jugador)
        contador_jugador-=2
     elif contador_jugador!=1: #Proporciona otra carta
        cartas_jugador.append(baralla[contador_jugador])
        print(cartas_jugador)
        contador_jugador-=1
    elif cartas_jugador[-1][0] == 'J' or  cartas_jugador[-1][0] =='Q' or cartas_jugador[-1][0] == 'K': #Condicion de si tienes una letra te da o,5 puntos
     puntos_jugador += 0.5
    else:
    puntos_jugador += cartas_jugador[-1][0] #Condicion de si tienes una carta que no es una letra te asigne el valor de la carta

    continuar=input("Quieres continuar s/n?")

Muchas gracias de antemano, si alguien me pudiese ayudar le estaría eternamente agradecido ya que se trata de un trabajo que puntua bastante. GRACIAS.
5  Programación / Programación General / Algun forero de buena fe que me lo pueda pasar a python3 en: 3 Diciembre 2018, 20:28 pm
public class SieteyMedia {
 public static void main(String[] args) {
  //Se crean el mazo, el jugador y la banca
  Mazo mazo = new Mazo();
  ManoSieteyMedia jugador = new ManoSieteyMedia();
  ManoSieteyMedia banca = new ManoSieteyMedia();
  
  //Se reparten las cartas iniciales:
                //Una al jugador y una a la banca
  jugador.agnadeCarta(mazo.daCarta());
  banca.agnadeCarta(mazo.daCarta());
  
  //El jugador pide cartas mientras según su estrategia
  while(jugador.cuentaPuntos()<=5){
   System.out.println(
                              "El jugador pide una carta extra");
   jugador.agnadeCarta(mazo.daCarta());
  }
  
  //La banca se planta si el jugador se ha pasado.
                //En caso contrario pide cartas
  if(jugador.cuentaPuntos()<=7.5){
                  //el jugador no se ha pasado
   while(banca.cuentaPuntos()<7.5 &&
                            banca.cuentaPuntos()<jugador.cuentaPuntos()){
    System.out.println(
                                       "La banca pide una carta extra");
    banca.agnadeCarta(mazo.daCarta());
   }
  }
  //Se cuentan los puntos obtenidos y se decide el ganador
  double puntosJ = jugador.cuentaPuntos();
  double puntosB = banca.cuentaPuntos();
  
  if(puntosJ<=7.5 && (puntosB>7.5 || puntosJ>puntosB)){

   System.out.println("Gana el jugador con "+jugador
                            +" ("+ puntosJ+" puntos) frente a "+ banca+
                            " ("+puntosB+" puntos) de la banca");
  }else if (puntosB<=7.5){
   System.out.println("Gana la banca con "
                            +banca+" ("+ puntosB+
                            " puntos) frente a "+ jugador+" ("+
                            puntosJ+" puntos) del jugador");
  }else{
   System.out.println("No hay ganador: Jugador "+
                            jugador+" ("+puntosJ+" puntos) y banca "
                            + banca +" ("+
                            puntosB+" puntos) se han pasado");
  }
 }
}
Ahora procedo a poneros las soluciones ;)

Primero la clase abstracta Mano.

public abstract class Mano{
 protected Carta[] cartas;
 protected int numCartas;
 static final int TOPE = 20;
 public Mano() {
  numCartas = 0;
  cartas = new Carta[TOPE];
 }
 
 public Mano(int num) {
  cartas = new Carta[num];
  numCartas = 0;
 }
 
 public void descartaTodas() {
  numCartas = 0;
 }
 
 public void agnadeCarta(Carta c) {
  if(numCartas >= TOPE)
               throw new RuntimeException("No puedes añadir mas cartas");
  cartas[numCartas] = c;
  numCartas ++;
 }
 
 public int numeroDeCartas() {
  return numCartas;
 }
 
 public abstract double cuentaPuntos();
 
 public String toString() {
  String std = "";
  for(int i = 0; i < numCartas; i++) {
   std = std + " "+ cartas;
  }
  return std;
 }
}

Ahora os pondré la clase Carta: Nota: Fijaos que el enum de los palos va dentro de ésta ;)
public class Carta {
 public static enum Palo { PICA, TREBOL, DIAMANTE, CORAZON};
 private static String[] nombreCarta = {"AS", "2", "3", "4",
                                               "5", "6", "7", "8",
                                               "9", "10", "J", "Q",
                                               "K"};
 
 private int valor;
 private Palo palo;
 
 public Carta(int v, Palo p){
  valor = v;
  palo = p;
 }
 public int valor() {return valor;}
 public Palo palo() {return palo;}
 public String toString() {
  return nombreCarta[valor-1] + " de " + palo;
 }
 
}
Vamos ahora con la clase Mazo ;)
import java.util.Random;
public class Mazo {
 private static Random alea = new Random();
 private Carta[] mazo;
 private int numCartas;
 
 public Mazo() {
  mazo = new Carta[52]; //Creo el array de cartas.
  for(int n = 1; n < 13; n++) {
   for(Carta.Palo p: Carta.Palo.values()) {
    mazo[numCartas] = new Carta(n, p);
    numCartas++;
   }
  }
 }

 public void baraja() {
  for(int i = 0; i< numCartas; i++) {
   int r = alea.nextInt(numCartas);
   Carta c = mazo;
   mazo = mazo[r];
   mazo[r] = c;
  }
 }

 public int numeroDeCartas() {
  return numCartas;
 }
 
 public Carta daCarta(){
  if (this.numeroDeCartas()==0)
                   throw new RuntimeException("No quedan cartas.");
  numCartas--;
  return mazo[this.numeroDeCartas()];
 }
}

Y ya por último con la clase ManoSieteYMedia:
public class ManoSieteyMedia extends Mano{
 public double cuentaPuntos() {
  double puntos = 0;
  for(int i = 0; i<numCartas; i++) {
   puntos += cartas.valor();
  }
  return puntos;
 }
}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines