Benvenuto Visitatore(Log In|Registrati)

2 Pagine V  < 1 2  
Reply to this topicStart new topic
> Traduzione di "MANOR" in BASIC (MANIERO), Ultimo della serie "the sumer game": SFIDA ACCETTATA!
TheRuler
messaggio6 Sep 2018, 18:46
Messaggio #26



Gruppo icone

Gruppo: SMod
Messaggi: 11.047
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




CITAZIONE
Esatto, tipo scrivi uno spazio da colonna 20 a colonna 35, una roba tipo FOR I da ColonnaInizio a ColonnaInizio+lunghezza


Fatto. Mi sto dedicando alla pulizia del codice. Mi sono accorto che a forza di aggiungere feature sto esaurendo lo spazio. Max 60300 Bytes, spazio per variabili e array compreso. Il Qbasic non era così limitato:
CITAZIONE
6012 Y=2:DA=69:GOSUB 8080
...
8080 FOR X=DA TO 80:LOCATE Y,X:PRINT " ";:NEXT:RETURN



Però ovviamente ho un'altra domandona ;-):
Devo convertire una variabile numerica definita in un array all'interno di un ciclo FOR-NEXT, in una stringa.
Ovviamente mi da' Type mismatch:

CITAZIONE
8021 FOR A=1 TO 5:GOSUB 2770:SPA=INT(RND*1+.5):IF SPA=0 THEN SPYA(A)=INT(WL(A)*(RND*.2+.9)) ELSE SPYA(A)="****"
8022 NEXT


sono costretto ad usare numeri:
SPYA(A)=9999 così funziona ma stampa 9999 mentre a me serve un carattere generico tipo xxxx o **** che indichi una "mancanza di dato".

Posso convertire con CVI o MKS$ ma il fatto è che il ciclo FOR non mi prende SPYA(A), che fa parte di un array, come stringa.
So che si può fare ma non trovo la via giusta.
Devo convertire una variabile numerica in testo. Oppure trovare un carattere speciale accettato come numero.

Magari se usassi una variabile temporanea e la convertissi FUORI dal ciclo for?


--------------------
 
DK
messaggio6 Sep 2018, 21:29
Messaggio #27



Gruppo icone

Gruppo: Admin
Messaggi: 2.490
Iscritto il: 27 August 04
Utente Nr.: 1.509
BGE Indy and The Last Crusade
SO Windows7

OGI Supporter




Ma gli array di stringhe, in basic, non hanno sempre il $ famoso?
SPYA -> array di interi
SPYA$ -> array di stringhe

P.S. Ormai lo puoi riscrivere in QBasic o in Pascal, fai prima blush.gif
 
TheRuler
messaggio7 Sep 2018, 10:13
Messaggio #28



Gruppo icone

Gruppo: SMod
Messaggi: 11.047
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




Sì è così. Mi serve che una variabile in un array di interi venga trasformata all'occorrenza in una stringa.

CITAZIONE
8011 IF SPY=0 THEN FOR A=1 TO 5:SPYA(A)=9999:SPYF$(A)="********":SPYP(A)=999:NEXT
8012 IF SPY=1 THEN 8021
8013 IF SPY=2 THEN FOR A=1 TO 5:SPYA(A)=INT(WL(A)*(RND*.2+.9)):SPYF$(A)=L$(INT(FF(A)/10)):SPYP(A)=INT(PP(A)*(RND*.2+.9)):NEXT
8014 RETURN
8021 FOR A=1 TO 5:GOSUB 2770:SPA=INT(RND*1+.5):IF SPA=0 THEN SPYA(A)=INT(WL(A)*(RND*.2+.9)) ELSE SPYA(A)=9999
8022 NEXT
8023 FOR A=1 TO 5:GOSUB 2770:SPF=INT(RND*1+.5):IF SPF=0 THEN SPYF$(A)=L$(INT(FF(A)/10)) ELSE SPYF$(A)="********"
8024 NEXT
8025 FOR A=1 TO 5:GOSUB 2770:SPP=INT(RND*1+.5):IF SPP=0 THEN SPYP(A)=INT(PP(A)*(RND*.2+.9)) ELSE SPYP(A)=999
8026 NEXT
8027 RETURN


*(RND*.2+.9) Questo serve a rendere il dato approssimativo, +-10%
a seconda si utilizzino 0, 1 o 2 spie il rapporto cambia. Con 0 è così:

CODICE
1 ░░ Duca Cinturanera       9999 acri (********),  999 abitanti                
2 ▒▒ Barone Tispiezzoindue  9999 acri (********),  999 abitanti                
3 ▓▓ Marchese Grandegrosso  9999 acri (********),  999 abitanti                
4 ☼☼ Conte Vattelapesca     9999 acri (********),  999 abitanti                
5 ◘◘ Visconte Comesichiama  9999 acri (********),  999 abitanti


al posto dei 9 mi piacerebbe usare gli ** o XX come ho potuto fare con SPYF$(A) che è già un array di stringhe.

con 1 invece ogni campo ha una probabilità di essere popolato del 50%, e mi piacerebbe che fosse così:
CODICE
Il rapporto delle nostre spie, Signore:                                        
                                                                                
1 ░░ Duca Cinturanera       **** acri (********),  294 abitanti                
2 ▒▒ Barone Tispiezzoindue  **** acri (a maggese), 139 abitanti                
3 ▓▓ Marchese Grandegrosso  1692 acri (********),  *** abitanti                
4 ☼☼ Conte Vattelapesca     **** acri (a maggese), *** abitanti                
5 ◘◘ Visconte Comesichiama  1214 acri (********),  *** abitanti                
                                                                                
Chi desidera invadere, Eccellenza (1-5)?

Più leggibile.


--------------------
 
DK
messaggio7 Sep 2018, 16:14
Messaggio #29



Gruppo icone

Gruppo: Admin
Messaggi: 2.490
Iscritto il: 27 August 04
Utente Nr.: 1.509
BGE Indy and The Last Crusade
SO Windows7

OGI Supporter




Non ho capito bene, ma basta crearsi una serie di convenzioni. Es. mi pare che il 9999 non ha senso di esser stampato (o usa un numero che sicuramente non può esserci, tipo -1, non so), e in fase di stampa fai i controlli; se la variabile è uguale a 9999 allora stampi gli * altrimenti stampi il valore contenuto nella variabile.
 
TheRuler
messaggio10 Sep 2018, 00:14
Messaggio #30



Gruppo icone

Gruppo: SMod
Messaggi: 11.047
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




Alla fine ho deciso per il cambio in fase di print. Non elegantissimo e forse un po' macchinoso ma funziona.

CITAZIONE
2351 CLS:PRINT:PRINT "Il rapporto delle nostre spie, Signore:":PRINT:FOR A=1 TO 5:COLOR CL(A):PRINT A;STRING$(2,SE(A));" "D$(A);:IF SPYA(A)=9999 AND D$(A)<>"provincia" THEN PRINT TAB(32)"#### ";
2352 IF SPYA(A)<>9999 AND D$(A)<>"provincia" THEN PRINT TAB(31)SPYA(A);
2353 IF D$(A)<>"provincia" THEN PRINT "acri ("SPYF$(A)")"TAB(54)"e";
2354 IF SPYP(A)=999 AND D$(A)<>"provincia" THEN PRINT TAB(56)"###";:
2355 IF SPYP(A)<>999 AND D$(A)<>"provincia" THEN PRINT TAB(55)SPYP(A);:
2356 IF D$(A)<>"provincia" THEN PRINT TAB(60)"abitanti" ELSE PRINT
2357 NEXT
...
8010 REM ****** ROUTINE RAPPORTO SPIE RICHIAMATA DA 740 VISUALIZZATA POI DA 2351 ******
8011 IF SPY=0 THEN FOR A=1 TO 5:SPYA(A)=9999:SPYF$(A)="#########":SPYP(A)=999:NEXT
8012 IF SPY=1 THEN 8021
8013 IF SPY=2 THEN FOR A=1 TO 5:SPYA(A)=INT(WL(A)*(RND*.2+.9)):SPYF$(A)=L$(INT(FF(A)/10)):SPYP(A)=INT(PP(A)*(RND*.2+.9)):NEXT
8014 RETURN
8021 FOR A=1 TO 5:GOSUB 2770:SPA=INT(RND*1+.5):IF SPA=0 THEN SPYA(A)=INT(WL(A)*(RND*.2+.9)) ELSE SPYA(A)=9999
8022 NEXT
8023 FOR A=1 TO 5:GOSUB 2770:SPF=INT(RND*1+.5):IF SPF=0 THEN SPYF$(A)=L$(INT(FF(A)/10)) ELSE SPYF$(A)="#########"
8024 NEXT
8025 FOR A=1 TO 5:GOSUB 2770:SPP=INT(RND*1+.5):IF SPP=0 THEN SPYP(A)=INT(PP(A)*(RND*.2+.9)) ELSE SPYP(A)=999
8026 NEXT
8027 RETURN


Output tipico, se un maniero avversario è stato conquistato tolgo tutti i dati (che sarebbero comunque a 0) lasciando solo "provincia"
CODICE
Il rapporto delle nostre spie, Signore:                                        
                                                                                
1 ░░ provincia                                                                
2 ▒▒ Barone Tispiezzoindue    #### acri (#########) e ### abitanti            
3 ▓▓ provincia                                                                
4 ☼☼ Conte Vattelapesca       #### acri (#########) e ### abitanti            
5 ◘◘ Visconte Comesichiama    #### acri (#########) e ### abitanti            
                                                                                
Chi desidera invadere, Eccellenza (1-5, invio per annullare)?


--------------------
 
TheRuler
messaggio11 Sep 2018, 00:28
Messaggio #31



Gruppo icone

Gruppo: SMod
Messaggi: 11.047
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




La potenza è nulla senza il controllo (TOTALE)! MUHAHAHAHAHAHA!

Files allegati
File Allegato  potenza.jpg ( 277.26k ) Numero di download: 3
 


--------------------
 
Vlad123
messaggio11 Sep 2018, 10:10
Messaggio #32





Gruppo: Gamer
Messaggi: 51
Iscritto il: 27 July 18
Utente Nr.: 21.948
BGE Seven Kingdoms 2
Playing Giochi paradox e Seven Kingdoms
SO Altro




Interessante io però ho problemi a giocarci non so proprio come farlo partire su Windows 10! :(
 
TheRuler
messaggio11 Sep 2018, 16:12
Messaggio #33



Gruppo icone

Gruppo: SMod
Messaggi: 11.047
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




Ciao Vlad! devi usare un interprete. PC-BASIC, funziona più o meno come dosbox.

Una volta avviato:

load "maniero2" [invio]
run [invio]


hai PM


--------------------
 
Vlad123
messaggio14 Sep 2018, 08:42
Messaggio #34





Gruppo: Gamer
Messaggi: 51
Iscritto il: 27 July 18
Utente Nr.: 21.948
BGE Seven Kingdoms 2
Playing Giochi paradox e Seven Kingdoms
SO Altro




Allora se provo a caricare istruzioni dice che non le trova.
Quindi non so come salvare! biggrin2a.gif
Alla terza partita ho deciso di fare una guerra e ho vibto prendendo un sacco di terra a tispezzo in due.
Sfortunatamente il gioco si blocca dicendo "PC-Basic ha smesso di funzionare" ma che... Nelle partite successive spesso mi dice: sei molto popolare tra i nobili/contadini/servi poi una linea dopo dice sono Inc... Neri e ti attaccano (ma che...) Poi non capisco come funzionano le guerre dopo quell'unica guerra vinta le ho perse tutte! :(
 
TheRuler
messaggio14 Sep 2018, 09:00
Messaggio #35



Gruppo icone

Gruppo: SMod
Messaggi: 11.047
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




Se non trova le istruzioni non hai copiato tutti e due i file nella dir di PC-BASIC, maniero2.bas e maniero2.int.
Senza leggere le istruzioni in effetti non è facile comprendere a fondo Maniero.

Le variabili in questo gioco sono (contate) 189. I calcoli sono relativamente complessi e quello che succede dipende principalmente dalle scelte che uno fa ma anche da una piccola percentuale di casualità. Tutti i rapporti sono "indicativi", le informazioni giunte all'orecchio del feudatario erano anche create per non scontentarlo... ;-)
E' comunque normale che non si riesca ad accontentare tutti i nobili, uno scontento potrebbe esserci, ed uno socntento che tenta di ucciderti, anche. Gli algoritmi ne tengono conto.

Le guerre si basano su un indice (la variabile ARMY, nel codice). Questo indice è influenzato dal numero di persone in buona salute per ogni casta (contadini, servi, nobili), sono questi che combattono, e dal loro morale. Più i numeri sono alti più si alza l'indice. Inoltre puoi aumentarlo assoldando mercenari.
Il calcolo viene fatto tra l'indicatore avversario e il tuo, più una certa percentuale di casualità.
Considera che gli avversari hanno forze diverse date dal loro popolo e dalle dimensioni del loro castello. in senso orario, dal 5 (debole) al 1 (fortissimo).


--------------------
 
Vlad123
messaggio14 Sep 2018, 09:24
Messaggio #36





Gruppo: Gamer
Messaggi: 51
Iscritto il: 27 July 18
Utente Nr.: 21.948
BGE Seven Kingdoms 2
Playing Giochi paradox e Seven Kingdoms
SO Altro




Io credevo fosse il 2 il più debole. No li ho messi tutti e due però non me le dà.
 
TheRuler
messaggio14 Sep 2018, 11:21
Messaggio #37



Gruppo icone

Gruppo: SMod
Messaggi: 11.047
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




Che errore esatto ti esce?


--------------------
 
Vlad123
messaggio14 Sep 2018, 13:13
Messaggio #38





Gruppo: Gamer
Messaggi: 51
Iscritto il: 27 July 18
Utente Nr.: 21.948
BGE Seven Kingdoms 2
Playing Giochi paradox e Seven Kingdoms
SO Altro




File not found 238
 
TheRuler
messaggio14 Sep 2018, 20:17
Messaggio #39



Gruppo icone

Gruppo: SMod
Messaggi: 11.047
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




Non esiste la riga 238. Sicuro sia quello l'errore?
Hai messo come ti ho scritto sopra, i due file nella cartella di pc-basic?


--------------------
 
Vlad123
messaggio15 Sep 2018, 08:28
Messaggio #40





Gruppo: Gamer
Messaggi: 51
Iscritto il: 27 July 18
Utente Nr.: 21.948
BGE Seven Kingdoms 2
Playing Giochi paradox e Seven Kingdoms
SO Altro




Si le ho messe giuro! Appena ho tempo provo il nuovo file!
 
TheRuler
messaggio19 Sep 2018, 22:13
Messaggio #41



Gruppo icone

Gruppo: SMod
Messaggi: 11.047
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




Cosiglio.

La forza della tua armata e di quelle avversarie sono condensate in un indice (ARMY per te, W(A) per gli altri). Tutti i calcoli eseguiti per la guerra hanno quell'indice come riferimento.
Ho introdotto "le spie" che scoprono (con un margine sul dato del +-10%) il numero di acri, la fertitlità del terreno e il numero di abitanti.
Solo il numero di abitanti è (indicativamente) utile per valutare la probabilità di vittoria in uno scontro (più alto è meglio è) e comunque l'esito di uno scontro ha una bella componente random.
Ad ogni modo più è altro questo indice più è "facile" che si vinca.

Perché la battaglia non sia allo sbaraglio come ora avrei pensato di visualizzare questo indice tra i dati delle spie dei vari manieri in concomitanza con il tuo.

Il problema è che non ho ancora trovato un termine adeguato al contesto storico. Non posso chiamarlo semplicemente "ARMATA" o "FORZA ESERCITO" visto che FORZA: 92 non significherebbe nulla in un "contesto medievale reale". Devo anche capire se è davvero meglio metterlo o meno, d'altra parte il tuo consigliere, prima di suonare il corno della battaglia, ti racconta più o meno lo stato d'animo del popolo e le sue sensazioni...

Una cosa del genere:
CODICE
Il rapporto delle nostre spie, Signore:                                        
                                                                                
1 ░░ provincia                                                                
2 ▒▒ Barone Tispiezzoindue    #### acri (#########) e ### abitanti (125)     <=== l'indice di forza    
3 ▓▓ provincia                                                                
4 ☼☼ Conte Vattelapesca       #### acri (#########) e ### abitanti  (***)     <===  se non scoperto dalle spie
5 ◘◘ Visconte Comesichiama    #### acri (#########) e ### abitanti  FORZA: 75         <=== oppure così        
                                                                                
Chi desidera invadere, Eccellenza (1-5, invio per annullare)?  Tua forza:92


--------------------
 
TheRuler
messaggio30 Sep 2018, 11:51
Messaggio #42



Gruppo icone

Gruppo: SMod
Messaggi: 11.047
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




Ho voluto visualizzare quanto del codice abbia modificato.
File Allegato  Immagine.jpg ( 831.47k ) Numero di download: 5

Codice differente rispetto alla versione originale. In bianco le righe rimaste identiche.
Ovviamente è indicativo, perché molte delle formule all'interno delle righe le ho lasciate identiche, cambiando magari solo i riferimenti o le variabili.


--------------------
 
Gwenelan
messaggio8 Oct 2018, 09:03
Messaggio #43



Gruppo icone

Gruppo: SMod
Messaggi: 13.612
Iscritto il: 8 October 12
Utente Nr.: 19.580
BGE Planescape: Torment
SO Windows7




Siamo felicissimi di annunciare che la traduzione di Maniero è stata completata blush.gif!


--------------------
Conformati.

What can change the nature of a man?
*My Youtube Channel*

La vita è dura e grama - e poi si muore.

Chi è intelligente per definizione non può avere qualcosa di negativo da dire contro lo studio e contro il buon senso.
- Duca


Tutti hanno opinioni: io le ho, tu le hai. E fin da quando abbiamo aperto gli occhi ci hanno detto che abbiamo diritto di avere nostre opinioni. Be’, è una stronzata, naturalmente. Non abbiamo diritto di avere opinioni, abbiamo diritto di avere opinioni informate. Senza studio, senza basi, senza comprensione, un’opinione non vale niente.
È solo un farfugliamento. È come una scoreggia nella galleria del vento, gente.

 

2 Pagine V  < 1 2
Reply to this topicStart new topic
1 utenti stanno leggendo questa discussione (1 visitatori e 0 utenti anonimi)
0 utenti:

 

Modalità di visualizzazione: Normale · Passa a: Lineare · Passa a: Outline


Versione Lo-Fi Oggi è il: 18th October 2018 - 21:05