ia
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
ia [2021/07/08 21:20] – test 500 error beco | ia [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | Login: mnnn Name: Mat Nat Sil | ||
- | Directory: / | ||
- | Office: mat@gmil.com, | ||
- | Last login Thu Jul 8 00:29 (-03) on pts/0 from 123.123.123.123 | ||
- | No mail. | ||
- | Project: | ||
- | = Curto prazo = | ||
- | * Revise a | ||
- | * Revise c | ||
- | * org pla | ||
- | |||
- | = Medio prazo = | ||
- | * Disc | ||
- | * Comp new | ||
- | * Arrange | ||
- | |||
- | = Longo prazo = | ||
- | * end | ||
- | * job | ||
- | * keep | ||
- | |||
- | Plan: | ||
- | Courses: dis | ||
- | Birthday: 19990101 | ||
- | CPF: **123**** | ||
- | Freshman: 2018 | ||
- | Hydra: 20200112 | ||
- | Github: @Mat | ||
- | Gitlab: @Mat | ||
- | ProjectEuler: | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | /* ---------------------------------------------------------------------- */ | ||
- | /* Quadrado Magico | ||
- | /* 7 | 2 | 3 */ | ||
- | /* ---+---+--- | ||
- | /* 0 | 4 | 8 */ | ||
- | /* ---+---+--- | ||
- | /* 5 | 6 | 1 */ | ||
- | |||
- | int alguem_venceu(char tab[9]) | ||
- | { | ||
- | int i, j, k; | ||
- | |||
- | for(i=0; i<7; i++) | ||
- | for(j=i+1; j<8; j++) | ||
- | for(k=j+1; k<9; k++) | ||
- | { | ||
- | if(mag[i]+mag[j]+mag[k]==12) | ||
- | continue; | ||
- | if(tab[i]==tab[j] && tab[j]==tab[k]) | ||
- | return tab[i]; /* venceu */ | ||
- | } | ||
- | return 0; /* nao venceu */ | ||
- | } | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | /* ---------------------------------------------------------------------- */ | ||
- | typedef struct stab | ||
- | { | ||
- | char coord[10]; | ||
- | } tab_t; | ||
- | |||
- | typedef struct slances | ||
- | { | ||
- | int i; | ||
- | struct slances *prox; | ||
- | } lances_t; | ||
- | |||
- | typedef struct smelhor | ||
- | { | ||
- | int valor; | ||
- | lances_t *rota; | ||
- | } melhor_t; | ||
- | | ||
- | /* ---------------------------------------------------------------------- */ | ||
- | /* algoritmo recursivo minimax */ | ||
- | melhor_t minimax(tab_t tab, int vez) | ||
- | { | ||
- | melhor_t mel, res; | ||
- | lances_t *lances=NULL, | ||
- | tab_t ntab; | ||
- | |||
- | gera_lances(tab, | ||
- | if(lances==NULL) | ||
- | { | ||
- | mel.valor = estatico(tab); | ||
- | mel.rota = NULL; | ||
- | return mel; | ||
- | } | ||
- | mel.valor = 2 * -vez; | ||
- | plance=lances; | ||
- | while(plance!=NULL) | ||
- | { | ||
- | ntab = tab; | ||
- | ntab.coord[plance.i] = vez; | ||
- | res=minimax(ntab, | ||
- | if(res.valor > mel.valor * vez) | ||
- | { | ||
- | limpa_melhor(mel); | ||
- | mel.rota=duplica_lance(plance); | ||
- | mel.rota-> | ||
- | } | ||
- | else | ||
- | limpa_melhor(res); | ||
- | |||
- | /* mel=pega_melhor(res, | ||
- | plance = plance.prox; | ||
- | } | ||
- | limpa_lances(& | ||
- | return melhor; | ||
- | } | ||
- | |||
- | /* ---------------------------------------------------------------------- */ | ||
- | melhor_t pega_melhor(melhor_t r, melhor_t m, lances_t *pl, int v) | ||
- | { | ||
- | if(r.valor > m.valor * v) | ||
- | { | ||
- | limpa_melhor(m); | ||
- | m.rota=duplica_lance(pl); | ||
- | m.rota-> | ||
- | } | ||
- | else | ||
- | limpa_melhor(r); | ||
- | return m; | ||
- | } | ||
- | |||
- | /* ---------------------------------------------------------------------- */ | ||
- | void gera_lances(tab_t tab, lances_t **ppl) | ||
- | { | ||
- | int i; | ||
- | |||
- | for(i=0; i<9; i++) | ||
- | if(tab.coord[i]==0) | ||
- | novo_lance(ppl, | ||
- | } | ||
- | |||
- | /* ---------------------------------------------------------------------- */ | ||
- | void novo_lance(lances_t **ppl, int i) | ||
- | { | ||
- | lances_t *pl; | ||
- | if(ppl==NULL) | ||
- | return; | ||
- | pl=*ppl; | ||
- | while(pl!=NULL) | ||
- | pl=pl-> | ||
- | pl=(lances_t *)malloc(sizeof(lances_t)); | ||
- | pl->i=i; | ||
- | pl-> | ||
- | return; | ||
- | } | ||
- | |||
- | |||
- | /* ---------------------------------------------------------------------- */ | ||
- | /* vi: set ai et ts=4 sw=4 tw=0 wm=0 fo=croql : C config for Vim modeline */ | ||
- | /* Template by Dr. Beco <rcb at beco dot cc> Version 20160612.142044 | ||
ia.1625790048.txt.gz · Last modified: 2021/07/08 21:20 by beco