Jump to content
Rpg²S Forum
  • 0

Ordinare le variabili dalla più alta alla più bassa!


TecnoNinja
 Share

Question

Salve a tutti,

mi chiamo TecnoNinja e sono praticamente un nuovo utente (iscritto da un po' ma con poco tempo a disposizione).

Ho un piccolo probleme con le variabili di RPG Maker XP da sottoporvi.

Esiste un modo, utilizzando gli eventi (non gli script), per far si che se io imposto 5/6 variabili casuali diverse con valori da 1 a 20, il computer me le ordini dal risultato più alto a quello più basso? Tenendo presente che alcune potrebbero ottenere lo stesso risultato (tipo: 10, 5, 5, 12, ecc ecc)

ES:

La variabile casuale n° 1 ottiene un 8 (scegliendo casualmente da 1 a 20)

La variabile casuale n° 2 ottiene un 2 (sempre casualmente da 1 a 20)

La variabile casuale n° 3 ottiene un 6 (da 1 a 20)

 

C'è un modo per far si che un evento le ordini dal risultato più alto al più basso automaticamente, in modo che io poi possa far partire degli eventi in base all'ordine del risultato ottenuto?

Spero di essermi spiegato bene ; )

Grazie dell'eventale aiuto!

Edited by TecnoNinja

La mia piccola gallery fotografica, passione nata qualche mese fa:

http://www.juzaphoto.com/galleria.php?t=2121314&l=it

 

I miei esperimenti con la modellazione 3d:

https://www.facebook.com/manuel.bellinati/media_set?set=a.339905842813196.1073741825.100003813503527&type=3

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0

Benvenuto TecnoNinja ^^

Con RMXP non esiste un comando predefinito per l'ordinamento dei valori di variabile, però sicuramente si può fare con RGSS (credo che ci sia proprio una funzione).

Se non vuoi ricorrere agli scripts, puoi sempre simulare la cosa in questo modo tramite eventi:

- variabile n°1 estrae un numero casuale tra 1 e 20

- variabile n°2 estrae un numero casuale tra il valore della variabile n°1 e 20

- variabile n°3 estrae un numero casuale tra il valore della variabile n°2 e 20

Non è proprio la stessa cosa a livello di statistica, ma l'effetto dovrebbe essere molto simile.

"Dopo gli ultimi Final Fantasy, ho capito solamente una cosa: che il gioco è bello quando Nomura poco."

Making is not dead. You are dead.
RELEASE: La Bussola d'Oro | Download | Video di anteprima - La Partenza di Hanna

http://i.imgur.com/cFgc2lW.png

Prova Standrama!

Link to comment
Share on other sites

  • 0

Inanzitutto grazie del benvenuto e ancora grazie della risposta.

Sinceramente non ho ben capito la soluzione che mi hai proposto ma in cambio posso spiegarti meglio cosa voglio ottenere come risultato, in modo che si possa capire meglio cosa vorrei fare.

In pratica hai presente come funziona l'INIZATIVA in giochi come D&D?

Ogni giocatore (in questo caso le mie variabili casuali) tirano un dado con 20 facce. Poi, partendo dal risultato più alto, ogni giocatore esegue un azione!

In pratica vorrei ottenere una cosa simile usando le variabili.

Ora, siccome non ho ben capito come funziona il tuo suggerimento, mi potresti dire se secondo te posso ottenere il risultato che vorrei con quel metodo? Se si, mi potresti spiegare bene come posso fare? Grazie!

-

Scusa Tio, spero di non averti incasinato le idee con quest'ultimo esempio!

Se conosci una soluzione al mio problema, te ne sarei molto grato.

Una buona parte del mio progetto si basa su questa cosa e vorrei risolverla! Grazie!

Edited by TecnoNinja

La mia piccola gallery fotografica, passione nata qualche mese fa:

http://www.juzaphoto.com/galleria.php?t=2121314&l=it

 

I miei esperimenti con la modellazione 3d:

https://www.facebook.com/manuel.bellinati/media_set?set=a.339905842813196.1073741825.100003813503527&type=3

Link to comment
Share on other sites

  • 0

veramente io ho una soluzione migliore di quella di tio :sisi: :

Var1 = rand(1..20);

Var2 = rand(1..20);

Var3 = rand(1..2o);

if (Var1 > Var2) {

if (Var2 > Var3) {

print Var3,Var2,Var1;

}

}

if (Var1 < Var2) {

if (Var2 < Var3) {

print Var1,Var2,Var3;

}

}

ecc... devono essere circa 10 if per 3 variabili..

hai capito cosa voglio dire?

se non hai capito fammi un fischio :wink:

Edit: non avevo letto che volevi muoverti.... allora basta che invece di print (messaggio in rpg maker) metti muovi var...

Edited by seingh

SELECT * FROM seingh ORDER BY `seingh` . `id`

Seingh

<?echo "viva seingh :D";?>

http://team.ffonline.it/imgpersonaggio/tidus_it.jpg

Link to comment
Share on other sites

  • 0
Seight l'unci problema che rpg maker funziona con il ruby e non con il C

Per qualsiasi motivo non aprite questo spoiler.

 

 

Ho detto di non aprirlo !

 

 

Se lo apri ancora esplode il mondo.

 

 

Aaaaaa è un vizio.

 

 

Contento? Il mondo è esploso, sono tutti morti

per colpa della tua curiosità .

 

 

Vuoi che ti venga anche il morbillo, la varicella e l'AIDS???

 

 

O bravo ora sei un malato terminale e nessuno

ti puo curare, sono tutti morti !

 

 

Se clicchi ancora una volta il PC esplode.

 

 

E dai smettila !!

 

Uff!! Hai cliccato tante volte che ho dovuto sostituirlo con un codebox.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://s8.postimg.org/yntv9nxld/Banner.png

http://img204.imageshack.us/img204/8039/sccontest3octpl3.gif

Link to comment
Share on other sites

  • 0
Seight l'unci problema che rpg maker funziona con il ruby e non con il C

Io credevo che quello di seingh fosse un "modo originale" per descrivere codice fatto con comandi evento :D

In fondo TecnoNinja ha espressamente richiesto

utilizzando gli eventi (non gli script)

^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

  • 0
veramente io ho una soluzione migliore di quella di tio :wink: :

 

hai capito cosa voglio dire?

se non hai capito fammi un fischio :wink:

Edit: non avevo letto che volevi muoverti.... allora basta che invece di print (messaggio in rpg maker) metti muovi var...

 

Grazie per il consiglio, solo che sinceramente non ci ho capito nulla! :sisi:

A me servirebbe una cosa programata per eventi (un evento comune da chiamare in caso di bisogno sarebbe il massimo).

Ma mi sa che non è una cosa cosi semplice!

La mia piccola gallery fotografica, passione nata qualche mese fa:

http://www.juzaphoto.com/galleria.php?t=2121314&l=it

 

I miei esperimenti con la modellazione 3d:

https://www.facebook.com/manuel.bellinati/media_set?set=a.339905842813196.1073741825.100003813503527&type=3

Link to comment
Share on other sites

  • 0
Seight l'unci problema che rpg maker funziona con il ruby e non con il C

 

Si lo so XD ma quello era un esempio per spiegarmi xD

 

Io credevo che quello di seingh fosse un "modo originale" per descrivere codice fatto con comandi evento :D

In fondo TecnoNinja ha espressamente richiesto

 

utilizzando gli eventi (non gli script)

^ ^

 

si... infatti :sisi: io l'ho scritto in "linguaggio c", come ha detto kingartur2 adesso spiego in linugaggio rpg maker :D

 

 

 

Grazie per il consiglio, solo che sinceramente non ci ho capito nulla! :wink:

A me servirebbe una cosa programata per eventi (un evento comune da chiamare in caso di bisogno sarebbe il massimo).

Ma mi sa che non è una cosa cosi semplice!

adesso lo faccio per bene :D

(cmq avevo scritto al contrario xD)

post-3789-1274113638_thumb.png

leggilo (copialo :P)

 

EDIT: come vedi è semplicissimo....

ho fatto delle variabili e poi degli if...

Edited by seingh

SELECT * FROM seingh ORDER BY `seingh` . `id`

Seingh

<?echo "viva seingh :D";?>

http://team.ffonline.it/imgpersonaggio/tidus_it.jpg

Link to comment
Share on other sites

  • 0
Ho provato alcuni metodi, ma non fanno al caso mio. Forse non mi sono fatto capire bene o forse è una cosa molto lunga e complessa da fare. Grazie a tutti comunque! Edited by TecnoNinja

La mia piccola gallery fotografica, passione nata qualche mese fa:

http://www.juzaphoto.com/galleria.php?t=2121314&l=it

 

I miei esperimenti con la modellazione 3d:

https://www.facebook.com/manuel.bellinati/media_set?set=a.339905842813196.1073741825.100003813503527&type=3

Link to comment
Share on other sites

  • 0

a = Array.new(3)r = Random.new(20)for i in (1..10)  a.insert(i, r.rand(0...20))enda.sortfor al contrario

 

Si farà così? E chi lo sa o_

TPC Radio Site | Blog | Big-Bug

http://img102.imageshack.us/img102/4332/slackware2userbarok0.gif

http://img141.imageshack.us/img141/1571/nokappams1cf8.png

 

http://i29.tinypic.com/2vijdlh.jpg

Link to comment
Share on other sites

  • 0

Il fatto è che in qualunque linguaggio di programmazione l'ordinamento delle variabili si gestisce tramite algoritmi appositi che lavorano su un array (per i meno esperti: un insieme di variabili identificabili tramite indice): si scrive un'insieme di operazioni che operano su una variabile di indice i e un'atra variabile di indice j, e poi queste operazioni vengono applicate a tutte le variabili.

 

Le variabili che si usano nella programmazione ad eventi sono un array gigantesco su cui non è possibile iterare con uno o più indici: vuol dire che non posso mettere tutto dentro un ciclo while che parte dalla variabile 0 e fa sempre le stesse operazioni fino alla variabile N. E proprio per questo motivo bisogna fare questi controlli uno per uno, e la cosa diventa problematica visto che ogni variabile deve confrontarla con tutte le altre N-1. Cioè, se per caso aggiungete una variabile in più che vuole essere ordinata, dovete aggiungere un controllo con quella variabile a tutte le altre variabili che avete già messo.

Può avere senso finchè le variabili sono 3, ma se sono di più la cosa diventa davvero lunga e poco gestibile.

 

Con RGSS invece basta un metodo apposito ".sort", una semplice riga di codice e si risolve ogni problema.

"Dopo gli ultimi Final Fantasy, ho capito solamente una cosa: che il gioco è bello quando Nomura poco."

Making is not dead. You are dead.
RELEASE: La Bussola d'Oro | Download | Video di anteprima - La Partenza di Hanna

http://i.imgur.com/cFgc2lW.png

Prova Standrama!

Link to comment
Share on other sites

  • 0

Quindi Tio, tu dici che con un piccolo script riuscirei a mettere in ordine le variabili (solo le 6 create appositamente per questa cosa) dalla più grande alla più piccola, per poi usarle come punto di partenza per far partire degli eventi (uno alla volta) nell'ordine ottenuto, cioè, come succede nell'iniziativa di Dungeons & Dragons?

Il fatto poi, che non sempre avrei 6 variabili da ordinare. Il numero di variabili da ordinare potrebbe variare da "2" a massimo "6" variabili da ordinare!

E se due variabili otenessero lo stesso risultato? Cosa accadrebbe in quel caso? Chi partirebbe prima? Si riuscirebbe a fare uno specie di spareggio (a parte) tra le due varibili, per determinare chi delle due deve partire prima nella turnazione generale?

 

Ricapitolando:

vorrei creare un BS personale con una turnazione simile a quella di BlueDragon per Xbox360 (o tipo IL TEMPIO ELEMENTALE per PC); durante uno scontro, in alto nello schermo appaiono le faccine dei PG/Mostri nell'ordine in cui arriveranno i loro turni!

Si può ottenere un risultato simile in qualche modo? MAgari senza script!

 

Immagino che stia chiedendo una cosa molto complessa, ma non so che altro fare se non affidarmi a persone più esperte di me!

Edited by TecnoNinja

La mia piccola gallery fotografica, passione nata qualche mese fa:

http://www.juzaphoto.com/galleria.php?t=2121314&l=it

 

I miei esperimenti con la modellazione 3d:

https://www.facebook.com/manuel.bellinati/media_set?set=a.339905842813196.1073741825.100003813503527&type=3

Link to comment
Share on other sites

  • 0

L'interazione tra eventi e scripts può essere un po' problematica, ma sicuramente si può fare ;)

Cioè, ovviamente è meglio fare tutto o solamente tramite eventi o solamente tramite scripts... però si dovrebbe poter fare pure quello che intendi tu.

 

Il metodo ".sort" non so in che modo opera, ma in genere in qualunque algoritmo di ordinamento, quando si ottiene l'insieme delle variabili ordinate e ce ne sono due uguali, si mette prima quella che trova per prima. Ma se vuoi evitare ciò (non so come venga gestito in D&D), sempre tramite scripts puoi mettere qualche riga di codice che controlla che non ci siano due variabili uguali nello stesso array.. se sono uguali, fai ripescare altri numeri (che equivale a ritirare i dadi).

"Dopo gli ultimi Final Fantasy, ho capito solamente una cosa: che il gioco è bello quando Nomura poco."

Making is not dead. You are dead.
RELEASE: La Bussola d'Oro | Download | Video di anteprima - La Partenza di Hanna

http://i.imgur.com/cFgc2lW.png

Prova Standrama!

Link to comment
Share on other sites

  • 0

In D&D, se due giocatori ottengono lo stesso risultato ai dadi, va avanti chi ha un bonus DESTREZZA più alto.

Se il bonus DESTREZZA è uguale per entrambi (quindi un altro pareggio), si fa uno spareggio tirando un altro dado (uno qualunque, in D&D ci sono d4, d6, d8, d10, d12, d20 faccie), chi ottiene il risultato più alto va avanti!

Totale 2 spareggi prima di ottenere la turnazione finale, che rimane tale per tutto il combattimento (fatta eccezione per azioni che ne modificano il flusso). A ogni nuovo incontro si ripete l'operazione dall'inizio!

Edited by TecnoNinja

La mia piccola gallery fotografica, passione nata qualche mese fa:

http://www.juzaphoto.com/galleria.php?t=2121314&l=it

 

I miei esperimenti con la modellazione 3d:

https://www.facebook.com/manuel.bellinati/media_set?set=a.339905842813196.1073741825.100003813503527&type=3

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...