Closed sakars closed 4 years ago
Removed one of the references (#6)
is getGameInfo needed if createPerspective exists?
Nē, vai nu viens vai otrs. Bet es neesmu pārliecināts, ka ir nepieciešams ieviest veselu klasi priekš objekta, kam nav paredzētas metodes vai propertijas. Arī statiskos laukus ar līdzīgām nozīmēm nevajadzētu dublēt. Es piedāvātu turēties pie vienkārša objekta tās datu čupas pārnēsāšanai:
{ hand: null, //current players hand (CardSet) attack: [], //cards attacking defence: [],//cards defending otherHandCount: [], //amount of cards of other players /Remove when trump card is sent properly to all users/ trump: null, //trump card state: null }
Vienīgais ieguvums, izmantojot klasi, ir, ka IDEs var kontrolēt, vai tiek respektēta tā struktūra un brīdināt, ja mēģina lasīt propertiju, kura neeksistē. Bet šis ir JavaScript, un tas, kas citā valodā nekompilētos, JavaScriptā ir pilnīgi legāli.
Tu arī tajā objektā šobrīt pieglabā nevis spēlētāja rokas kopiju, bet pašu spēlētāja objektu, kas ir bezjēdzīgi (jo viņš pats ir šīs datu kopas lietotājs un viņam ir pieejams this) un bīstami (viņš var brīvi mainīt rokas saturu, piemēram salikt tur visus trumpjus). Playerim būtu jāpadod tikai spēles assetu kopijas, kuras mainot spēle netiek ietekmēta.
Nav īsti skaidrs ko man ar šo informāciju darīt
Nu, Tu vari mēģināt mani pārliecināt, ka klase CukasPlayerPerspective tomēr ir nepieciešama. Mans viedoklis ir, ka ja klases deklarācija nesatur metodes, tad JavaScriptā ir pieejams lielisks tips, saukts "simple object", kuru inicializē caur {} sintaksi:
let gameInfo = {
propertyA: 1,
propertyB: "ABC",
"@Weird-property.name": new Date()
}
Tas ir ideoloģisks jautājums, var gan tā, gan tā. Es gribētu, ka Tu izmēģini, kā ir sadzīvot ar simple object, un ja vēlāk izrādīsies, ka to tomēr ir izdevīgāk deklarēt kā klasi, tad būs ļoti viegli to pārtaisīt.
Attiecībā uz spēlētāja rokas kopiju, vienkārši parūpējies par to, lai CukasPlayer netiek klāt pie īstā rokas mainīgā, kurš tiek glabāts iekš CukasGame. Tāda prakse mūsu mazajā projektā varbūt šķiet mākslīga un sarežģīta, bet es to izmantoju, lai mums būtu diskusija par to, kāda būtu pareiza risinājuma arhitektūra, kas nodrošina pret neatļautām darbībām.
@towergame can i get a code review
If you need me to i can revert this
toString() { if(this.isNormal()) { let symbol=this.getSuitSymbol(); if(this.rank < 11) { return this.rank + symbol; } else { switch(this.rank) { case 11: return "J" + symbol; case 12: return "Q" + symbol; case 13: return "K" + symbol; case 14: return "A" + symbol; } } } else { return "★"; } }
but i don't think i should
Yes it's not good to do that but i accidentally put it with some other commit
If @Passiday or the creator of the original code (@towergame) insists i will revert it back
Nevajag labot atpakaļ, tikai brīdinājums par commitu kultūru. Tādu satīrīšanu jāīsteno nodalītā commitā.
@towergame kas tās par requested changes? Es nevaru atrast ko tu piedāvā un ceru ka dabūšu review
izdariju ieteiktās izmaiņas
šis pull request ir dzīvojis gana ilgi Lūdzu ļaujiet viņam nomirt
Thank you
Should give sufficient info to a player - hand, trump card (delete that later), state(attacking, defending, waiting), the amount of cards others have and the cards on-table(attacking, defending)