No se me guarda la puntuacion maxima de mi juego [closed]

Estoy haciendo que dentro de mi sistema de puntos la puntuacion maxima sea guardada pero en el codigo me da el siguiente error ; Attempt to call function ‘get_data’ in base ‘null instance’ on a null instance. No se que como puedo solucionarlo porfavor necesito ayuda urgente Este es el codigo:

extends Control

var puntos = 0

func _ready(): var data = $ PlayerInf.get_data()

data["puntos"] = {     "puntos" : "Maximum Score:" }      

func _process(delta): if Global.en_juego == false: if Global.puntos > puntos: puntos = Global.puntos

    if $  anim.is_playing() == false:         $  anim.play("mover")     $  "maxima".text = "Maximum Score: "+str(puntos)  $  PlayerInf.save_data() 

func _on_anim_animation_finished(anim_name): if anim_name == "mover": get_tree().paused = true

Unity – ¿Es recomendable trabajar con una sola escena para un juego de palabras (Quiz o juego de preguntas) para moviles?

Que me recomiendan? o es preferible usar varias escenas para cada categoria del juego? por ejejemplo: para la categoria de Peliculas, usar una escena, y para la categoria Animales, usar otra escena y etc. Cual es mas conveniente ya que es un juego para celulares.

¿ Como reiniciar el juego una vez terminado?

Tengo un pequeño juego de cartas con el que estoy tratando de aprender las funciones y los bucles en javascript. Tengo varios errores en el código, uno es que la banca sigue sacando cartas después de superar el limite de Siete Y Media. Pero la principal preocupación es como conseguir reiniciar el juego una vez terminado. He probado varias formas sin ningún éxito, claro esta que no lo hago correctamente. He buscado y consultado y me han aconsejado que busque mi solución en dirección a los bucles de eventos. Y he buscado por Internet sin encontrar nada claro. ¿ Donde encuentro documentación a este respecto ? ¿ Como puedo estructurar mi código para hacerlo funcional y reiniciar el programa una vez terminado? Muestro mi código para que me den ideas de como debo organizarlo y si es posible saber donde puedo encontrar documentación para guiarme y aprender sobre esto. Gracias

var carta = new Array(11); var palos = new Array("Oros", "Bastos", "Copas", "Espadas"); var cartas_repe = new Array(); var puntos = 0; var puntos_jugador, puntos_banca;  for (i = 1; i <= 10; i++) {   carta[i] = palos; }   //elegir mis cartas  function aleatoria() {    var num = parseInt((Math.random() * 10) + 1);   var palo = parseInt(Math.random() * 4);   var elegida = num + carta[num][palo];   var selec;    for (j = 0; j <= cartas_repe.length; j++) {      selec = cartas_repe[j];      while (selec == elegida) {        num = parseInt((Math.random() * 10) + 1);       palo = parseInt(Math.random() * 4);        elegida = num + carta[num][palo];       j = -1;     }   }    cartas_repe.push(elegida);    document.getElementById("carta_jugador").src = "images/" + num + carta[num][palo] + ".jpg";   document.getElementById("carta_jugador").style.visibility = 'visible';    if (num <= 7) {      puntos = puntos + num;   }   else { puntos = puntos + 0.5; }    if (puntos > 7.5) {      puntos_jugador = puntos;     document.getElementById("puntos").value = puntos;     recuento();    }   else document.getElementById("puntos").value = puntos;    document.getElementById("todas_cartas").innerHTML += "<img id='carta_jugador' alt='' src='images/" + num + carta[num][palo] + ".jpg' style='height: 97px; width: 66px; margin-top: 10px; margin-left: 4px;' />"  }  //me planto en el juego  function plantarse() {   document.getElementById("im_jugar").src = "images/trasera.jpg";   document.getElementById("im_jugar").style.cursor = "default";   document.getElementById("im_jugar").onclick = " ";   puntos_jugador = puntos;   puntos = 0;   banca(); }  //juega la banca  function banca() {    var num = parseInt((Math.random() * 10) + 1);   var palo = parseInt(Math.random() * 4);   var elegida = num + carta[num][palo];   var selec;    for (j = 0; j <= cartas_repe.length; j++) {      selec = cartas_repe[j];      while (selec == elegida) {       num = parseInt((Math.random() * 10) + 1);       palo = parseInt(Math.random() * 4);        elegida = num + carta[num][palo];       j = -1;     }   }    cartas_repe.push(elegida);    document.getElementById("carta_banca").src = "images/" + num + carta[num][palo] + ".jpg";   document.getElementById("carta_banca").style.visibility = 'visible';    if (num <= 7) {     puntos = puntos + num;   }   else { puntos = puntos + 0.5; }    if (puntos > 7.5) {     recuento();     document.getElementById("puntos2").value = puntos;     document.getElementById("todas_cartas_banca").innerHTML += "<img id='carta_banca' alt='' src='images/" + num + carta[num][palo] + ".jpg' style='height: 97px; width: 66px; margin-top: 10px; margin-left: 4px;' />"   }   else {     document.getElementById("puntos2").value = puntos;     document.getElementById("todas_cartas_banca").innerHTML += "<img id='carta_banca' alt='' src='images/" + num + carta[num][palo] + ".jpg' style='height: 97px; width: 66px; margin-top: 10px; margin-left: 4px;' />"      if (puntos <= puntos_jugador) {        setTimeout("banca()", 1000);     }     else recuento();   } }  //recuento de puntos function recuento() {   puntos_banca = puntos;    if (puntos_banca > puntos_jugador && puntos_banca <= 7.5 || puntos_jugador > 7.5) {     document.getElementById("texto").value = "GANA LA BANCA";    }   else if (puntos_jugador > puntos_banca && puntos_jugador <= 7.5 || puntos_banca > 7.5) {     document.getElementById("texto").value = "HAS GANADO";    }   else if (puntos_jugador == puntos_banca) {     document.getElementById("texto").value = "EMPATE";   }    bloquear(); }  function bloquear() {    document.getElementById("im_jugar").onclick = " ";   document.getElementById("boton2").disabled = 'disabeled';   document.getElementById("im_jugar").src = "images/trasera.jpg";   document.getElementById("im_jugar").style.cursor = "default"; }  function reiniciar() {   document.getElementById("reiniciar").onclick = aleatoria() }
<!DOCTYPE html> <head>   <title>Juego de Cartas siete y media</title> </head> <body>    <div style="height: 53px; margin-left: 180px; width: 1010px; margin-top: 0px;">      <div style="float:left;width: 379px; height: 55px;">        <p style="font-size: 25px; height: 34px; width: 300px; margin-left: 88px">         <strong>Total Jugador: </strong>         <input disabled="disabled" type="text" id="puntos" style="width: 45px; height: 28px; text-align:center;font-size: 20px;border-width: 0px; margin-top: 0px;" />         <input id="boton2" type="button" value="Me planto" onclick="plantarse()" style="width: 76px; height: 32px; margin-top: 0px; margin-left: 6px;" />       </p>      </div>     <div style="float:left; width: 505px; height: 56px;">        <p style="font-size: 25px; height: 34px; width: 464px; margin-left: 4px">         <input type="text" id="texto" value="7 y Medio" style="border-style: none; border-color: inherit; border-width: 0px; text-align:center; height: 31px; font-size: 20px; text-decoration: underline overline; margin-left: 9px;" /><strong>&nbsp;&nbsp;&nbsp;&nbsp;           Total Banca: </strong>         <input disabled="disabled" type="text" id="puntos2" style="width: 45px; height: 28px; text-align:center;font-size: 20px;border-width: 0px;" />       </p>     </div>   </div>   <div id="contenedor_central" style="margin-left: 180px; margin-top:15px; height: 480px; width: 1009px;">     <div id="juego_jugador" style="border: thin groove #C0C0C0; width: 500px; height: 437px; float:left;">       <img id="im_jugar" onclick="aleatoria()" alt="Carta trasera" src="images/trasera_jug.jpg" style="height: 270px; width: 181px; margin-top: 40px; margin-left: 40px; cursor: pointer;" />       <img id="carta_jugador" alt="" src="" style="height: 270px; width: 181px; margin-top: 40px; margin-left: 40px; visibility: hidden;" />       <div id="todas_cartas" style="height: 122px; margin-left: 31px;"></div>     </div>      <div id="juego_banca" style="border-style: groove; border-width: thin thin thin 0px; border-color: #C0C0C0; width: 500px; height: 437px; float:left;">       <img alt="Carta trasera" src="images/trasera.jpg" style="height: 270px; width: 181px; margin-top: 40px; margin-left: 40px;" />       <img id="carta_banca" alt="" src="" style="height: 270px; width: 181px; margin-top: 40px; margin-left: 40px; visibility: hidden;" />       <div id="todas_cartas_banca" style="height: 122px; margin-left: 30px;"></div>     </div>     <input id="reiniciar" type="button" value="Reiniciar" onclick="reiniciar()" style="width: 224px;height: 23px;margin-top: 0px;margin-top:15px;" />   </div> </body> </html>

Imprimir matriz para juego Taken

qué tal estoy comenzando a aprender a programar en java pero no se por donde empezar ya que no tengo conocimientos sobre la programación del mismo y espero que la pregunta, no sea muy obvia eso espero.La meta es hacer un juego de consola que haga lo siguiente, por ahora no me preocupo del diseño. introducir la descripción de la imagen aquí Por lo que pienso nada más crear una matriz hacer que el usuario elija que movimiento quiere hacer, hasta que llegue al movimiento o no. Pero tengo problemas al crear la matriz, solo quisiera que me la imprima aparte que tampoco me deja meter un caracter “X” en ella.

    // Llamo al paquete scanner para que me ayude, cuando ingreso por el teclado //import java.util.Scanner;  public class takenjuego {     public static void main(String[] args) {         //Tomare el juego como si fuera una matriz de n*m         //En este caso sería una matriz de 2*2         int n=2;         int m=2;         //Creación de la matriz          int A [][]=new int [n][m];         // Ahora tengo que llenar la matriz con las condiciones iniciales que tengo           A[1][1]=3;          A[1][2]=7;          A[2][1]=2;          A[2][2]=1;          System.out.print(A);     }     } 

Modificar una lista de manera dinámica para cada grupo de elementos en un juego iterativo

Dispongo de un código que simula un juego de señales entre jugadores (ver código abajo). El juego consta de 4 jugadores y 4 señales, que juegan en parejas durante 3 rondas (ver def main()).

Definidas también en main(), existen en el juego unas variables s1 y s2 (llamémoslas sigmas) que afectan la dinámica del juego. De tal manera que en def with_b la variable s1 afecta la ecuación que utilizan los jugadores 1 y 2, y la variable s2 afecta la ecuación que utilizan los jugadores 3 y 4.

Estas variables s1 y s2 permanecen constantes a lo largo del juego tal y como está ahora: s1=[1,0,0,0] y s2=[0,0,0,1]

En el juego, para cada ronda, cada jugador genera una lista aux que representa la señal producida. Así, cada ronda, cada jugador producirá su aux, que podrá ser una de las siguientes: [1,0,0,0] o [0,1,0,0] o [0,0,1,0] o [0,0,0,1].

Objetivo

Lo que se pretende ahora es que, para cada ronda y jugador, si su aux coincide con su sigma (s1 en caso de jugadores 1 y 2, s2 en caso de jugadores 3 y 4), se modifique el valor de sigma para ese jugador concreto según unos facotres de corrección:

s1 = [1,0,0,0] s2 = [0,0,0,1] cf_pos = 0.9 cf_neg = 0.1 

Para jugadores 1 y 2:

if s1 == aux:     s1[:] = [x * cf_pos for x in s1] else:     s1[:] = [x * cf_neg for x in s1] 

Para jugadores 3 y 4:

if s2 == aux:     s2[:] = [x * cf_pos for x in s2] else:     s2[:] = [x * cf_neg for x in s2] 

Un problema que observo es que en el código actual aux la estoy generando al escribir el archivo csv no en el juego en sí. También, que al ser s1 y s2 variables constantes, no sé cómo podría cambiarlas dinámicamente (de ronda en ronda) para cada jugador sin que ello cambiara también su valor de sigma para el resto de jugadores. Digamos que cada uno debería evolucionar su sigma independientemente.

Muchas gracias de antemano.

from __future__ import division from random import random, sample from bisect import bisect from collections import deque import csv import math      class Partida():         def __init__(self, jugadores, emparejamientos, senales, s1, s2, b, x, m):             self.emparejamientos = emparejamientos             self.senales = senales             self.s1 = s1             self.s2 = s2             self.b = b             self.x = x             self.m = m             self.jugadores = {nombre: Partida.Jugador(senales)                               for pareja in emparejamientos[0]                               for nombre in pareja}             self.memoria = list()             self.entropy = float()          def generar_senales(self):              def with_b(muestra, observa, s1, s2, r, nombre):                 if nombre <=2:                     if not (muestra == observa == 0):                         result = ((0.98) * (1.0 - self.b) * (1.0 - self.x) * muestra / r) + (                         (0.98) * (1.0 - self.b) * (self.x) * observa / r) + ((0.98) * self.b * s1) + ((self.m / 8))                     else:                         result = ((0.98) * (1.0 - 0) * (1.0 - self.x) * muestra / r) + (                         (0.98) * (1.0 - 0) * (self.x) * observa / r) + ((0.98) * 0 * s1) + ((self.m / 8))                 else:                     if not (muestra == observa == 0):                         result = ((0.98) * (1.0 - self.b) * (1.0 - self.x) * muestra / r) + (                         (0.98) * (1.0 - self.b) * (self.x) * observa / r) + ((0.98) * self.b * s2) + ((self.m / 8))                     else:                         result = ((0.98) * (1.0 - 0) * (1.0 - self.x) * muestra / r) + (                         (0.98) * (1.0 - 0) * (self.x) * observa / r) + ((0.98) * 0 * s2) + ((self.m / 8))                 return result              def choice(opciones, probs):                 probAcumuladas = list()                 aux = 0                 for p in probs:                     aux += p                     probAcumuladas.append(aux)                 r = random() * probAcumuladas[-1]                 op = bisect(probAcumuladas, r)                 return opciones[op]              yield dict(zip(self.jugadores.keys(), self.senales))              r = 1             while True:                 eleccs = dict.fromkeys(self.jugadores.keys())                 for nombre, inst in self.jugadores.items():                     probs = [with_b(inst.mem_mostradas[op], inst.men_observadas[op], self.s1[indx],self.s2[indx], r, nombre)                              for indx, op in enumerate(self.senales)]                     eleccs[nombre] = choice(self.senales, probs)                 r += 1                 yield eleccs          def jugar(self):             gen_sens = self.generar_senales()             for n, ronda in enumerate(self.emparejamientos):                 senales = next(gen_sens)                 self.memoria.append(senales)                  for jugador1, jugador2 in ronda:                     self.jugadores[jugador1].men_observadas[senales[jugador2]] += 1                     self.jugadores[jugador2].men_observadas[senales[jugador1]] += 1                     self.jugadores[jugador1].mem_mostradas[senales[jugador1]] += 1                     self.jugadores[jugador2].mem_mostradas[senales[jugador2]] += 1           class Jugador():             def __init__(self, senales):                 self.mem_mostradas = {senal: 0 for senal in senales}                 self.men_observadas = {senal: 0 for senal in senales}       def main():         jugadores = [1, 2, 3, 4]         senales = ['S1', 'S2', 'S3', 'S4']         emparejamientos = [[(1, 2), (3, 4)],                            [(1, 3), (2, 4)],                            [(1, 4), (2, 3)]]          patron = 1          ####SIGMAS####         s1 = [1, 0, 0, 0]         s2 = [0, 0, 0, 1]          muestras = [{'b': 0.0, 'x': 0.0, 'm': 0.02},                    {'b': 1.0, 'x': 0.0, 'm': 0.02}]          muestras = [d for d in muestras for _ in range(1)]          simulaciones = 10          estadisticas = {sim: {jugador: {muestra: {senal: [0 for ronda in range(1, len(emparejamientos) + 1)]                                             for senal in senales}                                   for muestra in range(len(muestras))}                         for jugador in jugadores}                     for sim in range(simulaciones)}          for sim in range(simulaciones):             for mu in range(len(muestras)):                 juego = Partida(jugadores, emparejamientos, senales, s1,s2, muestras[mu]['b'], muestras[mu]['x'],                                 muestras[mu]['m'])                 juego.jugar()                 for n, ronda in enumerate(juego.memoria):                     for jugador, senal in ronda.items():                         estadisticas[sim][jugador][mu][senal][n] += 1          with open('datos.csv','w', newline='') as csvfile:                 writer = csv.writer(csvfile, delimiter=';',                                     quotechar='"', quoting=csv.QUOTE_MINIMAL)                 writer.writerow(['Sim','Muestra', 'Jugador', 'Ronda', 'Patron', 'b', 'x', 'm'] + senales + ['sumpop'])      # Escribiendo las estadisticas para cada jugador, ronda y muestra                 for jugador in jugadores:                     for sim in range(simulaciones):                         for mu in range(len(muestras)):                             for ronda in range(1, len(emparejamientos) + 1):                                 aux = [estadisticas[sim][jugador][mu][senal][ronda - 1] for senal in senales]                                 aux1 = [estadisticas[sim][1][mu][senal][ronda - 1] for senal in senales]                                 aux2 = [estadisticas[sim][2][mu][senal][ronda - 1] for senal in senales]                                 aux3 = [estadisticas[sim][3][mu][senal][ronda - 1] for senal in senales]                                 aux4 = [estadisticas[sim][4][mu][senal][ronda - 1] for senal in senales]                                 print(aux)     # Lista que contiene los sumatorios de cada tipo de senales producidas a nivel de la poblacion global en cada muestra y ronda                                 summation_pop = []                                 for i in range(len(aux1)):                                     summation_pop.append(                                         aux1[i] + aux2[i] + aux3[i] + aux4[i])                                 writer.writerow([sim +1, mu + 1, jugador, ronda, patron, muestras[mu]['b'], muestras[mu]['x'],                                              muestras[mu]['m']] + aux + [summation_pop])      if __name__ == '__main__':         main() 

¿Como arreglo el problema con el contador de aciertos en un juego?

recientemente modifique este programa para que de un listado de palabras tomara una al azar para jugar, esto es un juego del ahorcado que me pidieron hace tiempo. El problema esta en los contadores de las palabras acertadas y repetitivas, cuando introduzco una letra diferente a la primera por segunda vez, este se suma al de los aciertos, también hay un problema con el mensaje. Podrán entender mejor cuando vean el programa, si alguien tiene alguna idea de como hacerlo, déjenlo en los comentarios, sera de gran ayuda. (El problema empieza desde el FOR REPETIDOS)

> #include<stdio.h> #include<string.h> #include <stdlib.h> #include <iostream> #include "conio.h" #include <time.h> using namespace std; int main() {     char rep[100],temporal[100];     char pal;     char *palabra[]={"ambiente","cuidado","ecosistema","naturaleza","conservacion","recursos","equilibrio","forestacion","purifica","tierra","vida","ecologico","animales","ambiental","reciclaje","atmosfera","diversidad","energia"};     char *frase;     srand(time(NULL));      int longitud,i,j,inicial,acertado=0,temp=0,oportunidades=5;     int repetido=0,gano=0;      cout<<" JUEGO DEL AHORCADO"<<endl;      for(int v=0;v<=1;v++)     {         frase=palabra[rand()%18];   //Guarda un palabra al azar de las 18 existentes     }     system("cls");       longitud = 0;   //Variables utilizadas para longitud de la palabra     inicial = 0;     j = 0;      rep[0] = ' ';     rep[1] = '';       do { //Hacer todo hasta que las oportunidades(Vidas del juego) se acaben o adivine la palabra                 system("cls");         temp=0;          if(inicial == 0) {      //Calcula cuantas letras hay en la palabra con la funcion "strlen" y dependiendo de ello imprime los guiones bajos          for(i=0;i<strlen(frase);i++) {           if(frase[i] == ' ') {             temporal[i] = ' ';              longitud++;           }           else {              temporal[i] = '_';                     longitud++;           }          }         }          inicial = 1;          temporal[longitud] = '';         //FOR REPETIDOS          for(i=0;i<=1;i++) { //For para cuando se repite la letra, empieza si se introduce la misma letra 2 veces            if(rep[i] == pal) {          //Ejemplo Palabra casa:             repetido = 1;               //  _ _ _ _    <----------Ingresa "a" el usuario  REPETIDO=0                                                             //  _ a _ a    <----------Ingresa "a"                        }                             //  _ a _ a    <----------REPETIDO =1           else {            repetido = 0;    //Si se introduce otra letra no pasa nada          }         }          if(repetido == 0) {                 //For para contar los ACIERTOS           for(i=0;i<=strlen(frase);i++) {             if(frase[i] == pal ) {              temporal[i] = pal;               acertado++;               temp=1;             }           }         }          if(repetido == 0) {           if(temp == 0) {            oportunidades = oportunidades - 1;            }    //Si la letra es diferente y no es una repetitiva ni tampoco es un acierto se le quita una oportunidad         }         else {          printf("Ya se ha introducido este caracter");          printf("\n\n");         }          printf("\n");          for(i=0;i<strlen(temporal);i++) {          printf(" %c ",temporal[i]);         }          printf("\n");          if(strcmp(frase,temporal) == 0) {             gano = 1;             break;         }          printf("\n");         printf("Letras Acertadas: %d",acertado);         printf("\n");         printf("Oportunidades Restantes: %d",oportunidades);         printf("\n");           rep[j] = pal;//Guarda el valor de "pal"(Letra que introduce el usuario) en un arreglo         j++;          if (oportunidades==0)         {            break;         }          printf("Introduzca una letra:");         scanf("\n%c",&pal);      }while(oportunidades != 0); //Hasta que no haiga oportunidades o adivine la palabra imprime:       if(gano) {                 printf("\n\n");         printf("Enhorabuena, has ganado.");     }     else {                 printf("\n\n");         printf("Has perdido.");         cout<<"La palabra era: "<<frase;     }      printf("\n\n");     system("PAUSE");     return 0;  }  

JUEGO DE CARTAS 31 (No se como hacerlo) Lenguaje C++

Implemente el juego de cartas 31 con dos jugadores. Realice 5 rondas y escriba el jugador ganador. Se dan tres cartas a cada jugador. Son 52 cartas. Cada carta tiene su respectivo puntaje. J,Q, K valen 10. El As vale 1 o 11. Por ejemplo Si un jugador tiene un 10, J, y As entonces tiene 31 y gana automáticamente. Si un jugador tiene menos de 31, entonces puede pedir más cartas hasta acercarse al 31. Si tiene más de 31 puntos pierde automáticamente.