Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    valutare un array nel gioco

    Salve sto facendo il mio video poker.
    )))))))))))
    Devo dire che un po di qua un po di la ci sono risucito.
    Mi sono aiutato con un libro che avevo e mi è andata bene eh eh.
    Ora ho un problema devo aggiungere il jolly .
    Sembrava facile ma mi sono bloccato nella scala perchè nelle altre voci ci sono risucito.
    Vi posto il codice inziale:


    carte = ["c1", "c2", "s3", "d4", "h5"];
    valutaMano(carte);

    function valutaMano() {
    hand = carte.slice();
    hand.sort(compareHands);
    nums = new Array();
    for (i=0; i<5; i++) {
    nums.push(Number(hand[i].substr(1, 2)));
    }
    straight = true;
    for (i=0; i<4; i++) {
    if (nums[i]+1 != nums[i+1]) {
    straight = false;
    }
    }
    if (straight) {
    trace("hai fatto scala");
    return ("Straight");
    } else {
    return ("Nothing");
    }
    }
    function compareHands(a, b) {
    numa = Number(a.substr(1, 2));
    numb = Number(b.substr(1, 2));
    if (numa<numb) {
    return (-1);
    }
    if (numa == numb) {
    return (0);
    }
    if (numa>numb) {
    return (1);
    }
    }


    Per il Jolly ho fatto cosi:

    Io valutavo un array di 5 carte am con il jolly ne valuto 4.
    hand = new Array();
    for (i=0; i<5; i++) {
    if (carte[i] != "j15") {
    hand.push(carte[i]);
    }
    }

    carte = ["j15", "c2", "s3", "d4", "h5"];
    valutaMano(carte);

    function valutaMano() {

    hand = new Array();
    for (i=0; i<5; i++) {
    if (carte[i] != "j15") {
    hand.push(carte[i]);
    }
    }
    hand.sort(compareHands);
    nums = new Array();
    for (i=0; i<5; i++) {
    nums.push(Number(hand[i].substr(1, 2)));
    }
    straight = true;
    for (i=0; i<4; i++) {
    if (nums[i]+1 != nums[i+1]) {
    straight = false;
    }
    }
    if (straight) {
    trace("hai fatto scala");
    return ("Straight");
    } else {
    return ("Nothing");
    }
    }
    function compareHands(a, b) {
    numa = Number(a.substr(1, 2));
    numb = Number(b.substr(1, 2));
    if (numa<numb) {
    return (-1);
    }
    if (numa == numb) {
    return (0);
    }
    if (numa>numb) {
    return (1);
    }
    }


    Il problema è che il jolly può valere ciò che vuoi tu, quindi io posso avere delle carte tipo 1-2-joly-4-5 quindi mi sballa un po tutto.
    Ok vi ringrazio , qui ho imparato tantisisme cose, anche se a volte ho combinato casini ehe eh.
    Grazie ancora

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    codice:
    //Per il Jolly ho fatto cosi: 
    //Io valutavo un array di 5 carte am con il jolly ne valuto 4. 
    hand = new Array();
    for (i = 0; i < 5; i++) {
    	if (carte[i] != "j15") {
    		hand.push(carte[i]);
    	}
    }
    carte = ["j15", "s3", "d4", "c2", "h5"];
    valutaMano(carte);
    function valutaMano(carte)
    {
    	var hand = new Array();
    	for (var i = 0; i < 5; i++) {
    		if (carte[i] != "j15")hand.push(carte[i]);
    	}
    	hand.sort(compareHands);
    	var nums = new Array();
    	for (var i = 0; i < hand.length; i++) {
    		nums.push(Number(hand[i].substr(1, 2)));
    	}
    	straight = true;
    	for (var i = 0; i < nums.length - 1; i++) {
    		if ((nums[i] + 1) != nums[i + 1]) {
    			straight = false;
    			break;
    		}
    	}
    	if (straight) {
    		trace("hai fatto scala");
    		return ("Straight");
    	} else {
    		return ("Nothing");
    	}
    }
    function compareHands(a, b)
    {
    	return Number(a.substr(1, 2)) >	Number(b.substr(1, 2));
    }

  3. #3
    Non capisco la tua riposta se è uan risposta cmq, il forum è stato chiuso ed ho letto solo ieri sera la tua risposta.
    Comuqnue ho risolto la cosa con un trucco: valuto solo 4 carte

    ammettiamo che ho già le carte ordonate

    nums=[1, 2, 3, 5]

    Il trucco consiste di dire che se c'è un errore uno spazio vuoto ciò è tollerabile perchè è sostituito dal jolly ma se ce ne sono 2 non si ha scala.


    straight = true;
    joker = 0;
    for (i=0; i<3; i++) {
    if (nums[i]+1 != nums[i+1]) {
    joker++;
    }
    }
    if (joker>1) {
    straight = false;
    }

    Qundi con quelle carte sopra ho fatto scala perchè c'è solo un errore e joker è uguale ad uno.

    Comunque adesso ho un altro problema.
    Nel mio precedente programma avevo fatto che la scala può essere cosi

    if ((nums[0] == 1) and (nums[1] == 10) and (nums[2] == 11) and (nums[3] == 12) and (nums[4] == 13)) {
    straight = true;
    }

    Cioè se ho l'asso il 10 jack regina e re ho scala lo stesso.
    Quindi adesso devo far in modo che anche se non ci sia una carta di queste è sempre scala

  4. #4
    crazyflasher sono io perchè tempo fa non risucivo ad accedere con pepigno1975, non so se ricordi mi aiutasti tu.
    a volte faccio il log con pepigno a volte con crazyflasher, dipende perchèa volte se ebtro con uno e non cancello i cookie rimane quello per molto tempo.
    Cmq spero non sia un problema la doppia "identità" dopotutto non è problema a dirlo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.