n° 219
Novembre 2017
Dicembre 11, 2017, 04:06:41 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Richiesta Aiuto Gioco Freccetet in C#  (Letto 2888 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
Comedd
Newbie
*

Karma: +0/-3
Scollegato Scollegato

Messaggi: 5


Mostra profilo E-mail
« inserita:: Luglio 18, 2016, 09:03:12 »

avevo una richiesta di aiuto (se possibile) su un gioco di freccette (darts) che ho in possesso.

il gioco e programmato in c# e  funziona con Xna.

il problema del gioco e che deve chiudere con i settori doppi o triple.

mi spiego, nel bersaglio ci stanno 62 settori di cui:

20 singoli numeri, 20 doppi numeri, 20 numeri triple e 2 centri (singolo e doppio)

il gioco al momento chiude con tutti i settori arrivando a 0 punti.

un esempio:

il gioco inizia da 501 punti e deve scendere fino al 0.
il segmento 20 singolo darà come punteggio 20 punti,
il segmento 20 doppio darà come punteggio 40 punti,
il segmento 20 triplo darà come punteggio 60 punti,
e lo stesso per altri segmenti.

il gioco alla fine dovrebbe chiudere solo con doppio oppure triplo e non con il singolo segmento.

questo gioco viene chiamato 501 masterOut.


spero qualcuno potrebbe aiutarmi su questo codice, perchè sto impazzendo da 6 mesi :-).

ecco il codice:


Codice:
public class ZeroOne : GameMode
    {
        #region Constructor

        public ZeroOne(int players, int startScore)
            : base(players)
        {
            StartScore = startScore;
        }

        #endregion

        public override bool IsEndOfTurn
        {
            get
            {
                return base.IsEndOfTurn ||
                       HasWon() ||
                       IsBust();
            }
        }

        public override bool IsGameOver
        {
            get
            {
                return base.IsGameOver ||
                       _isLastPlayerAndEndOfTurnAndSomeoneHasWon() ||
                       _isBustAndIsLastRound();
            }
        }

        public override int GetScore(Player player)
        {
            var score = StartScore; // TODO: Maybe add handicap

            foreach (var round in player.Rounds)
            {
                var roundScore = GetScore(round);
                if (score - roundScore >= 0)
                {
                    score -= roundScore;
                }
            }

            return score;
        }

        public bool IsBust()
        {
            var score = StartScore; // TODO: Maybe add handicap

            for (var i = 0; i < CurrentRoundIndex; i++)
            {
                var roundScore = GetScore(CurrentPlayer.Rounds[i]);
                if (score - roundScore >= 0) // Don't count the round if the player went bust
                {
                    score -= roundScore;
                }
            }

            return score - GetScore(CurrentPlayerRound) < 0;
        }

        public bool HasWon()
        {
            var score = GetScore(CurrentPlayer);
            return score == 0;
        }

        private bool _isLastPlayerAndEndOfTurnAndSomeoneHasWon()
        {
            return IsEndOfTurn && Players.Any(p => GetScore(p) == 0); //IsLastPlayer &&
        }

        private bool _isBustAndIsLastRound()
        {
            return IsBust() && IsLastRound;
        }

        #region Fields and Properties

        public int StartScore;

        public override string Name
        {
            get { return "    " + StartScore + " "; }
        }

        #endregion
    }
}
Registrato
oregon
Jr. Member
**

Karma: +22/-6
Scollegato Scollegato

Messaggi: 239


Mostra profilo
« Risposta #1 inserita:: Luglio 18, 2016, 03:33:32 »

Ho letto più volte ma non ci ho capito nulla ...

Prima di tutto, l'hai scritto tu il programma?
Registrato
Comedd
Newbie
*

Karma: +0/-3
Scollegato Scollegato

Messaggi: 5


Mostra profilo E-mail
« Risposta #2 inserita:: Luglio 18, 2016, 05:38:02 »

scusa credevo era la sezione giusta. no, non lo scritto io ma capisco come funziona.
Registrato
oregon
Jr. Member
**

Karma: +22/-6
Scollegato Scollegato

Messaggi: 239


Mostra profilo
« Risposta #3 inserita:: Luglio 18, 2016, 05:52:40 »

Allora, mi sembra che manchi del codice, che tu non abbia spiegato il problema e che soprattutto non ci abbia detto nulla del codice e delle strutture dati che utilizza.

Detta così sembra solo una richiesta di pappa pronta e non va bene...
Registrato
Comedd
Newbie
*

Karma: +0/-3
Scollegato Scollegato

Messaggi: 5


Mostra profilo E-mail
« Risposta #4 inserita:: Luglio 18, 2016, 06:07:13 »

esatto. quindi e possibile aggiungere il codice mancante?
Registrato
oregon
Jr. Member
**

Karma: +22/-6
Scollegato Scollegato

Messaggi: 239


Mostra profilo
« Risposta #5 inserita:: Luglio 18, 2016, 06:49:22 »

Esatto cosa? Vuoi la pappa pronta .. non è possibile fare queste richieste...
Registrato
Max.Riservo
Global Moderator
Sr. Member
*****

Karma: +24/-0
Scollegato Scollegato

Messaggi: 850



Mostra profilo
« Risposta #6 inserita:: Luglio 18, 2016, 07:50:04 »

esatto. quindi e possibile aggiungere il codice mancante?
Comedd, ti invito a chiarire meglio la tua richiesta.
Se vuoi del codice pronto (pagando) la sezione indicata potrebbe essere 'offro lavoro'.
Se, per contro, vuoi condividere con il forum cosa hai (avresti) scritto, allora fallo ma non aspettarti 'la pappa pronta' ....

In assenza dei necessari chiarimenti il thread verrà chiuso.
Registrato

I Moderatori invitano tutti gli Utilizzatori del forum a prendere visione del REGOLAMENTO e a rispettarlo.
Comedd
Newbie
*

Karma: +0/-3
Scollegato Scollegato

Messaggi: 5


Mostra profilo E-mail
« Risposta #7 inserita:: Luglio 18, 2016, 07:52:54 »

ok, capisco. quindi posso condividere tutto il codice?
Registrato
Max.Riservo
Global Moderator
Sr. Member
*****

Karma: +24/-0
Scollegato Scollegato

Messaggi: 850



Mostra profilo
« Risposta #8 inserita:: Luglio 18, 2016, 08:44:02 »

No, non comprendi.
Se vuoi che qualcuno ti sviluppi del codice (probabilmente) dovrai pagarlo.
Se invece hai dei problemi specifici con alcune parti di codice, allora le posti nella sezione corretta (trattandosi di C# - questa è la sezione corretta), dettagliando il problema, segnalando gli eventuali errori che riscontri.
In generale, nei forum tecnici (come questo), si analizzano piccole porzioni di codice ma nessuno (tranne il buon senso) impedisce di inserirne. All' aumentare delle righe di codice diminuisce la probabilità che qualcuno risponda : quindi regolati di conseguenza.
Ribadisco, a scanso di equivoci, che ti conviene mostrare la routine / porzione di codice che non fornisce i risultati sperati, scrivendo le corrette ed esaustive indicazioni al fine di (sperare) di ottenere delle proposte dagli utenti del forum.
Registrato

I Moderatori invitano tutti gli Utilizzatori del forum a prendere visione del REGOLAMENTO e a rispettarlo.
Comedd
Newbie
*

Karma: +0/-3
Scollegato Scollegato

Messaggi: 5


Mostra profilo E-mail
« Risposta #9 inserita:: Luglio 18, 2016, 08:45:48 »

ok grazie
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines