Gå til innhold

Snedige ting du lurer på V.2


Anbefalte innlegg

Alt er lov, bare du har pengene..

Men ja det er lov. John Travolta har jo et eget Boeing 727 så hvorfor skal ikke vi andre få lov? :)

 

Vi har om disse reglene på skolen nå faktisk, men har ikke kommet til dette ennå..

Når man først snakker om det så hvis du har 525 000$ så er det bare å slå til^^

http://www.aircraftdealer.com/aircraft_for...7-200/22849.htm

 

Litt mer info om flyet samt bedre bilder:

http://www.airframes.org/reg/ptmtf

 

 

Eller hva med en Airbus A320 fra 1996?

http://www.aircraftdealer.com/aircraft_for..._A320/22845.htm

 

http://www.airframes.org/reg/fokrm

Endret av W202
Lenke til kommentar
Videoannonse
Annonse
Meget bra svar faktisk! Men hvis vi går fra biler til mennesker, les: fiender i skytespill. Det må jo være mye mye værre å lage AI til dem enn til en bil?

Ikke mye værre faktisk. I et skytespill så kan du for eksempel definere et "gåbart" område i en fil, samt forhåndsdefinere punkter som er merket fex "her er det god cover" (bak noen biler fex), "dette er en god sniper spot" (utkikkstårn), "dette er et bra campe spot" osv...

 

I fex CS så gjøres dette automatisk av spillmotoren kun ved hjelp av geometrien i mapet. Den bruker en egen teknikk for å "gå gjennom" mappet for å finne ut hvor det er mulig for en bot å bevege seg, ruter mot bombestedet, sniperspots osv... Selv om dette skjer automatisk så godt det lar seg gjøre er det mulig å legge til hint i editoren tror jeg. Fex et sted som forfatteren kan se er et godt sniperspot, er det ikke sikkert CS skjønner at er en god plass eller omvendt. Du merker på CS at mange custom maps som har kompliserte måter å bevege seg fra et sted til en annen, fex flyvende firkanter man må hoppe imellom, så skjønner ikke botene hvordan de skal komme seg over fordi den ikke har funnet ut at det er en "gåbar plass".

 

Når denne filen er lagd så har botene mange rutenett de vet de kan bevege seg i uten å treffe på vegger og andre ting den ikke kan gå gjennom og en oversikt over spotter det er godt cover, fint å campe, fint sniperspot osv...

 

Da trenger botene kun kode som forteller hvordan den skal respondere til ulike ting. Fex blir den skyti på, finn cover og skyt tilbake. Hvor er nærmeste cover? Så kikker den i filen over hint og går til en av de nærmeste, kanskje mens den skyter tilbake. Og for at botene ikke skal bli for forutsigbare så lages det flere måter å respondere til ting som avgjøres tilfeldig, fex kanskje den bare skal sette seg ned i noen tilfeller og skyte tilbake. Om den er i nærheten av en sniperspot og har en sniper og ingen andre bots står der å sniper, kanskje sette seg ned å snipe der i 40% av tilfellene? Men det kan den ikke gjøre hvis oppdraget er å kapre bombestedet.

 

Så må botene kunne gamet. For å ta CS som et eksempel igjen så må de vite at dersom de er CT så skal de løpe og campe/forsvare bombestedene mot terrorister, hvis de er T så skal de kapre bombestedet og plante bomba. De kan programmeres til å noenganger bruke granater, flashbangs osv når det passer.

 

Skyting kan også gjøres ved at botene bruker en bestemt tid pluss/minus på å sikte inn fiendene, så skyter på den måten som egner seg best med det våpenet de har. Hvor nøyaktig de er med innsiktingen kan defineres av vanskelighetsgraden og hvor raskt de reagerer når de ser en fiende eller blir skyti på.

 

Nogenlunde sånn teknikk som jeg beskriver her brukes i de aller fleste spill og jeg ville nok implementert noe lignende hvis jeg skulle laget noe selv. Det finnes mange måter å programmere AI på. Det beste for å få så lite forutsigbare og intelligente boter som mulig er å finne en måte å programmere dette så abstrakt som mulig og så lite som mulig "hardkodet" i spillet (som "hvis det så gjør det"). Det er mange måter å gjøre det på, men ikke så lett å forklare det til ikke-programmere.

Endret av ChrML
Lenke til kommentar
Hvordan er AI'n lagd i noen sjakk spill som beregner ditt neste trekk?

Mange måter å gjøre det på. Har ingen erfaring med å lage sjakk AI, men jeg kan fortelle litt om hvordan jeg ville gått frem for å løse problemet basert på andre erfaringer jeg har innenfor problemløsing i programmering.

 

En måte er å lage en så rask som mulig metode for å regne ut hvor mange "poeng" et sjakkbrett er. Det vil si en poengsum som forteller hvor mye en situasjon på sjakkbrettet er i en spillers favør. Dette beregnes etter hvor fordelaktig dine spillere står i forhold til motstanderens spillere. Fex en anledning til sjakk matt kan gi veldig mange poeng, en anledning til å slå ut motspillerens dronning gir noen poeng, en anledning til å slå ut en motspillers bonde gir et poeng osv...

 

Så når det er AI-en sin tur så lager den en liste over alle lovlige trekk den kan gjøre med alle spillerene den har. Så går den igjennom den lista og beregner hvor fordelaktig (etter måten jeg beskrev over) hver enkelt av de trekkene vil være. De X beste sjakkbrettene som har størst fordel for AI-en etter beregningen over kan så bli igjen i listen mens resten fjernes.

 

Så simulerer boten det beste movet AI-en kan gjøre poengmessig og så gjør boten det samme som over for spillerens spillere. Den finner ut hvilke trekk som vil være i mest favør for spilleren å gjøre ved å prøve ut alle movene han da kan gjøre. De trekkene som er i mest favør for spilleren er det trekket han mest sannsynlig vil gjøre hvis han er god til å spille sjakk og lagrer at det er det værste som kan skje hvis AI-en foretar det trekket.

 

Så simulerer boten det nest beste movet den kan gjøre og gjentar prosessen over til den har vært igjennom de X beste sjakktrekkene som den lagde en liste imellom.

 

Utifra det igjen så kan den se hvem av de X beste trekkene AI-en kan foreta som gjør at motstanderen kan gjøre minst skade på boten og lage mest fordel for boten.

 

Vi kan enten fortsette å simulere moves fremover i spillet hvis CPU-en er kraftig nok eller foreta movet nå. Jo lenger boten beregner inn i fremtiden, jo bedre vil den spille. Men for hvert hakk vi skal simulere videre frem i spillet, så mangedobler vi antall brettkombinasjoner boten må beregne, så derfor så er det veldig begrenset hvor langt frem det er mulig for dagens prosessorer å håndtere.

 

Hvis vi definerer X til 10 så må den beregne 100 forskjellige brettoppstillinger i tillegg til alle movene AI-en kan gjøre, i tillegg til alle movene motstanderen kan gjøre for de 10 beste movene AI-en kan gjøre. Og alt bør være gjordt på noen sekunder. Jeg vil tro at det er mulig å få til 100 000 opp mot en million beregninger på grei nok tid hvis programmet optimaliseres godt.

 

Det hadde hvertfall vært min måte å håndtere problemet mer eller mindre. :)

Endret av ChrML
Lenke til kommentar
Når vi snakker om AI og sjakk, er det mulig å lage en uovervinnelig sjakkAI? Såvidt jeg vet finnes det en (eller flere) som aldri har blitt slått, men en som kan være teoretisk uslåelig? beste tenklige resultat er uavgjort...

Kan ikke en slik AI spille mot en annen tilsvarende AI? Da vil jo den ene vinne :) .

 

Sett at vi har to maskiner med den, og derfor burde det være mulig å la den ene PC-en begynne første trekk. Dette trekket er det du begynner med på den andre, og motsatt med svart lag. Yea.

Lenke til kommentar
-san, a Japanese title used after a person's name, the equivalent of Mr., Mrs. or Miss. suffix of polite expressions like "Suzuki-san", "Ichirou-san", or "Suzuki Ichirou-san" to name a personal family name or last name, verbally and literally, generally regardless of position, sex, age, and other factors.

http://en.wikipedia.org/wiki/Japanese_titles

 

Endret: Krever målfoto!

Endret av Matsemann
Lenke til kommentar
Det er alltids mulig å spille uavgjort... :thumbup:

 

 

Edit: Viss de er bygd opp rundt en slik taktikk at de UMULIG kan tape vil heller ingen vinne... Så enkelt er det... :p

Vil det da alltid bli uavgjort eller vil den med flaks/uflaks tape/vinne en gang?

Lenke til kommentar
Når vi snakker om AI og sjakk, er det mulig å lage en uovervinnelig sjakkAI? Såvidt jeg vet finnes det en (eller flere) som aldri har blitt slått, men en som kan være teoretisk uslåelig? beste tenklige resultat er uavgjort...

Vi kan tenke oss at vi har en database over alle tenkelige sjakktrekk. I det fall trenger vi ikke noen kraftig AI i det hele tatt, kun en rask indekseringsprosess som hele tiden viser en mulig vei frem til seier.

Hvis to slike datamaskiner hadde spilt mot hverandre vil jeg gå ut ifra at den som begynner alltid vil vinne. Dette er dog ikke sikkert, for alt jeg vet kan den dominerende strategien tilfalle sort. Det som er sikkert er at den av de to som vinner, alltid vil vinne, uansett.

 

I realiteten vil en slik database kreve uhorvelig mye informasjon og kalkuleringer, og jeg vil ikke tro at vi har det med det første.

Lenke til kommentar
Det er alltids mulig å spille uavgjort... :thumbup:

 

 

Edit: Viss de er bygd opp rundt en slik taktikk at de UMULIG kan tape vil heller ingen vinne... Så enkelt er det... :p

Vil det da alltid bli uavgjort eller vil den med flaks/uflaks tape/vinne en gang?

 

Hmm, viss AI-en(e) som HulkHaugen sa er laget på den måten at det er UMULIG for den å tape er det ikke snakk om flaks. Mao, ja, det vil alltid bli uavgjort... Nå stiller jeg meg forsåvidt skeptisk til om det i det hele tatt er mulig å lage en slik AI, da det alltid vil være mer enn en måte å vinne på. En AI kan mest sannsynlig bare dekke over noen/en del av disse mulighetene, slik at det for et menneske faktisk skal være teoretisk mulig å slå den, selv om dette kan virke ganske umulig der og da...

 

Men nå er det jo slik at det finnes trekk i sjakk som er reknet for bedre trekk enn andre (såklart). F.eks. det at hvit: bonde 2e er reknet for det beste opningstrekket. Det er basert på et utall utrekninger fremover for hva motstanderen sannsynligvis vil gjøre (Motstanderen gjør jo også såklart de "smarteste" trekkene utifra samme måte). På den måten vil en slik "uslåelig" AI alltid begynne med Bonde 2e fordi det er det "beste" opningstrekket. Videre vil jo også svart gjøre et trekk som er reknet for det beste trekket som svar på det første osv., så dersom man hadde hatt to slike ultimate AI-er og hadde spilt flere runder ville alle rundene blitt prikk like...

Endret av Breidablik
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...