Java: Peer-to-peer application for a simple question and answer game (using gradle)

  • Estado: Pending
  • Premio: $500
  • Propuestas recibidas: 7

Resumen del concurso

Design a simple Question and Answer game.
- The game can ask Short Answer (one word answer) and multiple choice questions.
- one of the signed up peers is always the host (the one asking the questions)
- the host asks the questions, the others answer, whoever answers correctly first gets 1 point;
- the host continues to ask questions until one player receives 5 points (and shouts I WON), then the round is over.
- peers can start a new round or choose to end the game.

Constraints:
- each program is a server and a client (thus peer to peer). (attached is Sockets/SimplePeerToPeer as an example)
- you need to define a custom protocol for this in Protobuf.
- the host sends over a question
- peers can answer correctly or incorrectly
- the host informs the peer if the answer was correct (if it was correct, a switch of hosts takes place)
- write a question bank in JSON and have a json file that you store then in
- the host needs to choose a random question from the question pool and remove the ones the host has already asked; there should be at least 15 questions in the question bank.
- you need a gradle task for running your peers, which also allows to give a host as argument
- you should be able to run your hosts on different systems (raspberry pi, AWS, second computer, etc)

Assumptions:
- you can assume humans playing will choose a host at the beginning, you do not have to do an election or handle when two say they want to be host;
- you can assume humans do not answer at the same time

Habilidades recomendadas

Principales propuestas de este concurso

Ver más participaciones

Tablero de aclaración pública

  • RedFish1001
    Organizador del concurso
    • 3 años atrás

    Two hours remaining in the contest. Are there any further clarification from those still working?

    • 3 años atrás
  • palthode
    palthode
    • 3 años atrás

    Does the game end after the question bank becomes empty? Do we need to add new questions to the question bank after it becomes empty.

    • 3 años atrás
    1. RedFish1001
      Organizador del concurso
      • 3 años atrás

      There needs to be enough questions in the question bank in order for a player to achieve 5 questions correctly. At the end of each game, the question bank should be re-populated with the questions in the json file. If the question bank becomes empty before a player answers 5 correctly, the game ends and the player with the most points wins

      • 3 años atrás
  • majkjimajk
    majkjimajk
    • 3 años atrás

    Hi, I have some questions: Will the peer-to-peer network run on a LAN? If so, can the system utilize multicasting? If not on a LAN, can we assume each node will have a static ip address? Does the protocol have to be implemented in Protobuf or can we design a simple binary protocol? Is there a particular version of Java that we should use? If the network is not on a LAN and the peers do not have static ip addresses, it will be necessary to do udp NAT transversal. I am in the process of open sourcing our peer-to-peer framework on github: https://github.com/Igram-doo.

    • 3 años atrás
    1. RedFish1001
      Organizador del concurso
      • 3 años atrás

      Assume each node has a static IP address.
      The protocol must be implemented in Protobuf.
      Any version of java is fine, I run with openjdk 11.0.9 but anything 8+ is fine.

      • 3 años atrás
  • phjocoronel
    phjocoronel
    • 3 años atrás

    hello, in the p2p network all nodes would have to be interconnected?

    • 3 años atrás
    1. RedFish1001
      Organizador del concurso
      • 3 años atrás

      In P2P, at least two nodes would need to connect to start the game. It should be able to accept more than two players, so there might need to be a "wait for more participants".

      • 3 años atrás
  • palthode
    palthode
    • 3 años atrás

    Is it a Gradle task or direct .java files...Kindly clarify.

    • 3 años atrás
    1. RedFish1001
      Organizador del concurso
      • 3 años atrás

      .java files; the project also requires being compiled with Gradle so a build.gradle file will need to be created with specified tasks inside.

      • 3 años atrás
  • palthode
    palthode
    • 3 años atrás

    I am working on your project. Kindly don't close the contest before the deadline.

    • 3 años atrás
  • MMG2019
    MMG2019
    • 3 años atrás

    Hello, Can be made in Visual Basic?

    • 3 años atrás
    1. RedFish1001
      Organizador del concurso
      • 3 años atrás

      As long as it can be executed on the command line interface after building it in visual basic I don't see why not.

      • 3 años atrás
  • TaukirKhatri7201
    TaukirKhatri7201
    • 3 años atrás

    Okay. Working on it...... :)

    • 3 años atrás
  • TaukirKhatri7201
    TaukirKhatri7201
    • 3 años atrás

    I just want to clear that the Questions are only that are in data.json file? Means from those questions, one question is taken randomly at a time right?

    • 3 años atrás
    1. RedFish1001
      Organizador del concurso
      • 3 años atrás

      Yes one question from that file taken randomly. You should probably add more questions to the json file have a more solid question bank.

      • 3 años atrás
  • TaukirKhatri7201
    TaukirKhatri7201
    • 3 años atrás

    Hello, I have a doubt. Can you just reply me???

    • 3 años atrás
    1. RedFish1001
      Organizador del concurso
      • 3 años atrás

      What do you need clarification on? I'd be happy to explain.

      • 3 años atrás

Mostrar más comentarios

Cómo comenzar con los concursos

  • Publica tu concurso

    Publica tu concurso Fácil y rápido

  • Recibe montones de propuestas

    Consigue toneladas de propuestas De todo el mundo

  • Elige la mejor propuesta

    Elige la mejor propuesta ¡Descarga fácilmente los archivos!

Publica un concurso ahora o únete a nosotros hoy