-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMESA.c
156 lines (115 loc) · 5.73 KB
/
MESA.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/***************************************************************************
* $MCI Módulo de implementação: MES Mesa
*
* Arquivo gerado: MESA.c
* Letras identificadoras: MES
*
* Nome da base de software: Truco
* Arquivo da base de software:
*
* Projeto: INF 1301 - Jogo de Truco
* Autores: gsc, jvr, tgf
*
* $HA Histórico de evolução:
* Versão Autor Data Observações
* 1 avs 23/abr/2018 início desenvolvimento
*
***************************************************************************/
#include <stdio.h>
#define MESA_OWN
#include "BARALHO.h"
#include "LISTA.h"
#undef MESA_OWN
/***** Protótipos das funções encapsuladas no módulo *****/
/* static void LiberarElemento( LIS_tppLista pLista ,
tpElemLista * pElem ) ;
static tpElemLista * CriarElemento( LIS_tppLista pLista ,
void * pValor ) ;
static void LimparCabeca( LIS_tppLista pLista ) ; */
/***** Código das funções exportadas pelo módulo *****/
/***************************************************************************
*
* Função: MES &Definir vira
****************************************************************************/
void MES_DefinirVira( LIS_tppLista pUltimoElemMesa )
{
pUltimoElemMesa->pValor->Valor = //uma carta aleatória do baralho que não
pUltimoElemMesa->pValor->Naipe = //esteja nas mãos dos jogadores
//tenho qse ctz q essa declaração ta errada
if ( (pUltimoElemMesa->pValor->Valor && pUltimoElemMesa->pValor->Naipe) == /*carta da mão de algum jogador */)
{
} /* fim if */
}/* Fim função: MES &Definir vira */
/***************************************************************************
* Função: MES &Criar mao
***************************************************************************/
/* IMPLEMENTAR APENAS PARA O T4
LIS_tppLista MES_CriarMao(LIS_tppLista pCabecaBaralho) {
//aloca memória pro ponteiro que aponta pra
//cabeca da mao (um ponteiro pro tipo lista)
LIS_tppLista pCabecaMao = (LIS_tppLista*)(malloc(sizeof(LIS_tppLista))) ;
//usa o LIS_CriarLista que retorna um ponteiro pra uma lista criada
//(um ponteiro pra um tipo lista, que é um tipo cabeça de lista)
pCabecaMao = LIS_CriarLista (( * ExcluirValor ) ( void * pDado )) ;
//não sei o que botar no pDado
//declara uma variável que armazena a condição de
//retorno de funções de manipulação da lista
LIS_tpCondRet condRetLista ;
//declara uma variável que armazena o ponteiro pro tipo carta
BAR_tppCarta pCarta ;
//insere a ultima carta da lista baralho na
//lista mao depois a exclui da lista baralho
for (i = 0; i < 3; i++) {
//vai pro final da lista baralho (ElemCorr = ponteiro pra tpCarta)
IrFinalLista(pCabecaBaralho) ;
//pCarta recebe o ponteiro pro tpCarta
pCarta = pCabecaBaralho->pElemCorr->pValor ; //não tenho certeza disso
//cria um elemento na lista mao que tem pValor = ponteiro pro tpCarta
condRetLista = LIS_InserirElementoApos (pCabecaMao, pCarta) ;
//atualiza o fim da lista na cabeça do baralho
pCabecaBaralho->pFimLista = pCabecaBaralho->pElemCorr->pAnt
//o elemento corrente (o último) da lista baralho é excluido
condRetLista = LIS_ExcluirElemento( pCabecaBaralho ) ;
} //fim for
return pCabecaMao ;
} /******************* Fim função: BAR &Criar mao *************************/
/***************************************************************************
* Função: MES &Criar mesa
***************************************************************************/
/* IMPLEMENTAR APENAS PARA O T4
LIS_tppLista MES_CriarMesa(LIS_tppLista pCabecaBaralho) {
//aloca memória pro ponteiro que aponta pra
//cabeca da mao (um ponteiro pro tipo lista)
LIS_tppLista pCabecaMesa = (LIS_tppLista*)(malloc(sizeof(LIS_tppLista))) ;
//usa o LIS_CriarLista que retorna um ponteiro pra uma lista criada
//(um ponteiro pra um tipo lista, que é um tipo cabeça de lista)
pCabecaMesa = LIS_CriarLista (( * ExcluirValor ) ( void * pDado )) ;
//não sei o que botar no pDado
//declara uma variável que armazena a condição de
//retorno de funções de manipulação da lista
LIS_tpCondRet condRetLista ;
//declara uma variável que armazena o ponteiro pro tipo carta
BAR_tppCarta pCarta ;
//insere a 3 elementos com pValor = Null na lista mesa
for (i = 0; i < 3; i++) {
//cria um elemento na lista mao que tem pValor = Null
condRetLista = LIS_InserirElementoApos (pCabecaMesa, NULL) ;
//atualiza o fim da lista na cabeça do baralho
pCabecaBaralho->pFimLista = pCabecaBaralho->pElemCorr->pAnt
//o elemento corrente (o último) da lista baralho é excluido
condRetLista = LIS_ExcluirElemento( pCabecaBaralho ) ;
} //fim for
/* armazenando a vira no quarto elemento da lista mesa */
/*
//vai pro final da lista baralho (ElemCorr = ponteiro pra tpCarta)
IrFinalLista(pCabecaBaralho) ;
//pCarta recebe o ponteiro pro tpCarta
pCarta = pCabecaBaralho->pElemCorr->pValor ; //não tenho certeza disso
//cria um elemento na lista mao que tem pValor = ponteiro pro tpCarta
condRetLista = LIS_InserirElementoApos (pCabecaMesa, pCarta) ;
//atualiza o fim da lista na cabeça do baralho
pCabecaBaralho->pFimLista = pCabecaBaralho->pElemCorr->pAnt
//o elemento corrente (o último) da lista baralho é excluido
condRetLista = LIS_ExcluirElemento( pCabecaBaralho ) ;
return pCabecaMesa ;
} /********************* Fim função: BAR &Criar mesa ***********************/