Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <conio.h>
- #include <string.h>
- #include <stdlib.h>
- #include "funciones.h"
- using namespace std;
- struct nodo {
- int numero;
- char nombre[20];
- bool libre;
- nodo *siguiente;
- nodo *anterior;
- };
- nodo *primero = NULL;
- nodo *ultimo = NULL;
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- void crearLugares(int lugar){
- nodo *nuevo = new nodo();
- nuevo->numero = lugar; //NUMERACION;
- strcpy(nuevo->nombre,"LIBRE");//nombres[0]
- nuevo->libre = true;
- if(primero == NULL){
- primero = nuevo;
- primero->siguiente = primero;
- primero->anterior = ultimo;
- ultimo = primero;
- }
- else{
- ultimo->siguiente = nuevo;
- nuevo->siguiente = primero;
- nuevo->anterior = ultimo;
- ultimo = nuevo;
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- void visualizar(){//char tipoVista
- nodo *mostrar = new nodo();
- int linea = 0;
- mostrar = primero;
- colors(14); posicionar(62,3); cout<<"- DISTRIBUCION: ";
- do{
- if( mostrar->libre == true ) colors(2);
- if( mostrar->libre == false ) colors(4);
- posicionar(62,4+linea); cout<<(char)219; cout<<" LUGAR #"<<mostrar->numero<<":\t"<<mostrar->nombre;
- mostrar = mostrar->siguiente;
- linea++;
- }while(mostrar != primero);
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- int girar(){
- int opcion, mover;
- colors(14);
- posicionar(6,12); cout<<" > MENU: SUBIR."<<endl;
- posicionar(6,14); cout<<" 1. GIRAR HACIA LA DERECHA.";
- posicionar(6,15); cout<<" 2. GIRAR HACIA LA IZQUIERDA.";
- opcion = takeOptionGotoxy(" - OPCION:\t",1,2,9,17);
- //mover = takeInt(" - CUANTAS POSICIONES: ");
- do{
- fflush(stdin);
- mover = takeOptionGotoxy(" - CUANTAS POSICIONES [1-30]:\t",1,30,6,19);
- switch(opcion){
- case 1:
- if (mover > 0 && mover <= 10){ return mover; }
- if (mover > 10 && mover <= 20){ mover = mover - 10; return mover; }
- if (mover > 20 && mover <= 30){ mover = mover - 20; return mover; }
- break;
- case 2:
- if (mover > 0 && mover <= 9){ mover = 10 - mover; return mover; }
- if (mover == 10 ) { mover = 1; return mover; }
- if (mover > 10 && mover <= 20){ mover = 20 - mover; return mover; }
- if (mover > 20 && mover <= 30){ mover = 30 - mover; return mover; }
- break;
- }
- }while(true);
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- void subirPasajero(int posicion){
- nodo *recorrer = new nodo();
- int aux;
- char vNombre[20];
- recorrer = primero;
- do{
- aux = recorrer->numero;
- if(aux == posicion && recorrer->libre == true){
- recorrer->numero = posicion;
- colors(10);
- posicionar(62,18); cout<<" - SUBIR PASAJERO:";
- posicionar(62,19); cout<<" > LUGAR:\t"<<recorrer->numero;
- posicionar(62,20); cout<<" > INGRESE EL NOMBRE:\t";
- fflush(stdin);
- cin.getline(vNombre,20,'\n');
- strupr(vNombre); //MAYUSCULA
- strcpy(recorrer->nombre,vNombre);
- recorrer->libre = false;
- break;
- }
- if(aux == posicion && recorrer->libre == false){
- recorrer->numero = posicion;
- colors(12);
- posicionar(62,18); cout<<" - ¡ADVERTENCIA!: ASIENTO OCUPADO.";
- break;
- }
- recorrer = recorrer->siguiente;
- }while(recorrer != primero);
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- void bajarPasajero(){
- nodo *recorrer = new nodo();
- recorrer = primero;
- int aux, posicion = 0;
- posicionar(6,12); cout<<" - MENU: BAJAR."<<endl;
- posicion = takeOptionGotoxy(" > BAJAR AL PASAJERO DE LA POSICION [1-10]: ",1,10,6,14);
- do{
- aux = recorrer->numero;
- if(aux == posicion && recorrer->libre == false){
- recorrer->numero = posicion;
- colors(12);
- strcpy(recorrer->nombre,"LIBRE");
- recorrer->libre = true;
- posicionar(62,18); cout<<" - BAJAR PASAJERO:";
- posicionar(62,19); cout<<" > LUGAR:\t"<<recorrer->numero;
- posicionar(62,20); cout<<" > PASAJERO:\t"<<recorrer->nombre;
- break;
- }
- else{
- if(posicion == aux && recorrer->libre == true ){
- colors(12);
- posicionar(62,18); cout<<" - HACIENTO:"; colors(10); cout<<"LIBRE";
- }
- }
- recorrer = recorrer->siguiente;
- }while(recorrer != primero);
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- int main(void){
- int menu = 0, posicion = 0;
- {//GENERADOR
- crearLugares(1);
- crearLugares(2);
- crearLugares(3);
- crearLugares(4);
- crearLugares(5);
- crearLugares(6);
- crearLugares(7);
- crearLugares(8);
- crearLugares(9);
- crearLugares(10);
- }
- do{
- visualizar();
- colors(14);
- posicionar(3,3); cout<<" - MENU RUEDA FORTUNA: ";
- posicionar(3,5); cout<<" 1. SUBIR PASAJERO.";
- posicionar(3,6); cout<<" 2. BAJAR PASAJERO.";
- posicionar(3,7); cout<<" 3. FINALIZAR.";
- menu = takeOptionGotoxy(" - OPCION:\t",1,3,3,9);
- switch(menu){
- case 1: posicion = girar();
- subirPasajero(posicion);
- break;
- case 2: bajarPasajero();
- break;
- case 3: cout<<"GRACIAS POR JUGAR";
- break;
- }
- colors(14);
- posicionar(3,28); system("pause"); system("cls");
- }while(menu != 3);
- return 0;}//END GENERAL;
Add Comment
Please, Sign In to add comment