123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309 |
- sinkeynes.cpp : Defines the entry point for the console application.
- //
- /*
- simula la costruzione di una città
- la città è definita da una matrice
- ogni luogo è caratterizzato da una valore , un tipo di terreno e da un numero di occupanti il giocatore ha un buget iniziale,
- il gioco si avvia crea una città base inizzializzando a caso il 50% dei suoi luoghi
- il giocatore può acquistare un nuovo territorio, visualizzare la mappa della città e dei suoi terreni premendo un tasto può passare al turno
- successivo che comprende il pagamento delle tasse (dipendente dalla proprierà e gli incassi guadagnat iin base agli abitanti delle sue prorpietà
- */
- #include "stdafx.h"
- #include <iostream>
- #include <time.h>
- #define NR 20
- #define NC 10
- using namespace std;
- typedef struct {
- float val = 0;
- char tipo = 0;
- int occupanti = 0;
- bool libero=true;
- }LUOGO;
- void carica(LUOGO matr[NR][NC],float *credito);
- void inizio();
- int inizializzazione(LUOGO matr[NR][NC]);
- void visualizza(LUOGO matr[NR][NC]);
- void tasse(LUOGO matr[NR][NC], float *credito);
- int main()
- {
- LUOGO matr[NR][NC];
- inizio();
- system("pause");
- return 0;
- }
- void inizio() {
- int scelta = 0;
- LUOGO matr[NR][NC];
- LUOGO matr1[NR][NC];
- printf("benvenuti in slimcamp!!!!!\n");
- printf(" potete decire se iniziare una nuova partita o continuare quella esistente\n");
- printf("0.uscire dal game\n");
- printf("1.iniziare una nuova partita\n");
- printf("2.continuare la partita gia iniziaa in precedenza\n");
- scanf_s("%d", &scelta, sizeof(int));
- switch (scelta) {
- case 0:
- printf("arrivederci e lasciate la mancia\n");
- system("pause");
- break;
- case 1:
- inizializzazione(matr1);
- if (inizializzazione(matr1) == 0) {
- printf("arrivederci");
- break;
- }
- break;
- //case 2://non so se va fatto
- //break;
- default:
- printf("numero non valido\n");
- }
- }
- int inizializzazione(LUOGO matr[NR][NC]) {
- int turno = 0;
- int x = 0;
- int y = 0;
- float credito;
- int scelta=0;
- credito = 60.0;
-
- do{
- printf("ciao, ora hai un credito di %f e puoi acquistare solo fattorie\n", credito);
- visualizza(matr);
- printf("\n");
- printf("1.un casa occupa 4 posti, e ha un costo di 20§, occupa 4 persone, guadagnio totale 15§\n");
- printf("inserire le cordiante x,y \n");
- printf("x:\n");
- scanf_s("%d", &x, sizeof(int));
- printf("y:\n");
- scanf_s("%d", &y, sizeof(int));
- if (credito == 20) {
- matr[x][y].tipo = '▲';
- matr[x + 1][y].tipo = '▲';
- matr[x][y - 1].tipo = '▲';
- matr[x + 1][y - 1].tipo = '▲';
- matr[x][y].val = 5;
- matr[x + 1][y].val = 5;
- matr[x][y - 1].val = 5;
- matr[x + 1][y - 1].val = 5;
- matr[x][y].occupanti = 1;
- matr[x + 1][y].occupanti = 1;
- matr[x][y - 1].occupanti = 1;
- matr[x + 1][y - 1].occupanti = 1;
- matr[x][y].libero = false;
- matr[x + 1][y].libero = false;
- matr[x][y - 1].libero = false;
- matr[x + 1][y - 1].libero = false;
- credito -= 20;
- }
- } while ((turno!=0)||(credito != 20));
- turno++;//turno
- bool risposta = false;
- int r = 0;
- do {
- printf("se vuoi continuare il gioco premi 1");
- printf("se vuoi uscire dal gioco premi 2");
- scanf_s("%d", &r, sizeof(int));
- if (r == 1) {
- tasse(matr, &credito);
- printf("%f", credito);
- system("cls");
- printf("se vuoi inserire edifici premi 1\n");
- printf("se vuoi andare avanti senza inserire niente premi 0\n");
- scanf_s("%d", &scelta, sizeof(int));
- switch (scelta) {
- case 0:
- turno++;
- break;
- case 1:
- carica(matr, &credito);
- break;
- default:
- printf("valore non valido");
- }
- risposta = false;
- }
- if (r == 2) {
- risposta = true;
- }
- } while (risposta != false);
-
- int o = 0;
- printf("vuoi uscire dal gioco?,\n se si premi 1 se no premi 3\n");
- scanf_s("%d", &o, sizeof(int));
- if (o == 1) {
- return 0;
- }
- }
- void visualizza(LUOGO matr[NR][NC]){
- for (int i = 0; i < NR; i++) {
- for (int j = 0; j < NC; j++) {
- printf("%c", matr[i][j].tipo);
- }
- }
- }
- void tasse(LUOGO matr[NR][NC], float *credito) {
- for (int x = 0; x < NR; x++) {
- for (int y = 0; y < NC; y++) {
- if ((matr[x][y].tipo == '▲') && (matr[x + 1][y].tipo == '▲') && (matr[x][y - 1].tipo == '▲') && (matr[x + 1][y - 1].tipo == '▲')) {
- credito = credito + 15;
- }
- if ((matr[x][y].tipo == '▄') && (matr[x + 1][y].tipo == '▄') && (matr[x + 2][y].tipo == '▄') && (matr[x][y - 1].tipo == '▄') && (matr[x + 1][y - 1].tipo == '▄') && (matr[x + 2][y - 1].tipo == '▄')) {
- credito = credito + 25;
- }
- if ((matr[x][y].tipo == '█') && (matr[x + 1][y].tipo == '█') && (matr[x + 2][y].tipo == '█') && (matr[x][y - 1].tipo == '█') && (matr[x][y - 2].tipo == '█') && (matr[x + 1][y - 1].tipo == '█') && (matr[x + 2][y - 1].tipo == '█') && (matr[x + 1][y - 2].tipo == '█') && (matr[x + 2][y - 2].tipo == '█')) {
- credito = credito + 35;
- }
- }
- }
- }
- void carica(LUOGO matr[NR][NC],float *credito) {
- int x = 0;
- int y = 0;
- // valore tipo ok
- // § combinazione alt+245
- int scelta = 0;
- bool trovato = false;
- printf("1.un casa occupa 4 posti, e ha un costo di 20§, occupa 4 persone, guadagnio totale 15§\n");
- printf("2.una industria occupa 6 posti costo 30§, occupa 15 persone con un guadagno di 25§\n");
- printf("3.una fattoria occupa 9 posti costo 45§,occupa 20 persone con un guadagno di 35§\n");
- printf("inserire il tipo di edificio\n");
- scanf_s("%d", &scelta, sizeof(int)); // tipo di edificio
- do {
- printf(" tenedo a mente quello detto qui sopra\n inserire le cordinate del terreno\n");
- printf("x\n");
- scanf_s("%d", &x, sizeof(int));
- printf("y\n");
- scanf_s("%d", &y, sizeof(int));
- if (matr[x][y].libero == true) {
- trovato = true;
- }
- } while (trovato !=true);
- if (scelta == 1) {
- if (*credito >= 20) {
- matr[x][y].tipo = '▲';
- matr[x + 1][y].tipo = '▲';
- matr[x][y - 1].tipo = '▲';
- matr[x + 1][y - 1].tipo = '▲';
- matr[x][y].val = 5;
- matr[x + 1][y].val = 5;
- matr[x][y - 1].val = 5;
- matr[x + 1][y - 1].val = 5;
- matr[x][y].occupanti = 1;
- matr[x + 1][y].occupanti = 1;
- matr[x][y - 1].occupanti = 1;
- matr[x + 1][y - 1].occupanti = 1;
- matr[x][y].libero = false;
- matr[x + 1][y].libero = false;
- matr[x][y - 1].libero = false;
- matr[x + 1][y - 1].libero = false;
- *credito -= 20;
- }
- else
- printf("credito insufficente\n");
- }
- if (scelta == 2) {
- if (*credito >= 30) {
- // tipo
- matr[x][y].tipo = '▄';
- matr[x + 1][y].tipo = '▄';
- matr[x + 2][y].tipo = '▄';
- matr[x][y - 1].tipo = '▄';
- matr[x + 1][y - 1].tipo = '▄';
- matr[x + 2][y - 1].tipo = '▄';
- //val
- matr[x][y].val = 5;
- matr[x + 1][y].val = 5;
- matr[x + 2][y].val = 5;
- matr[x][y - 1].val = 5;
- matr[x + 1][y - 1].val = 5;
- matr[x + 2][y - 1].val = 5;
- // occupanti
- matr[x][y].occupanti = 2;
- matr[x + 1][y].occupanti = 3;
- matr[x + 2][y].occupanti = 3;
- matr[x][y - 1].occupanti = 2;
- matr[x + 1][y - 1].occupanti = 3;
- matr[x + 2][y - 1].occupanti = 2;
- // occupato
- matr[x][y].libero = false;
- matr[x + 1][y].libero = false;
- matr[x + 2][y].libero = false;
- matr[x][y - 1].libero = false;
- matr[x + 1][y - 1].libero = false;
- matr[x + 2][y - 1].libero = false;
- *credito -= 30;
- }
- printf("credito insufficente\n");
- }
- if (scelta == 3) {
- if (*credito >= 45) {
- //tipo
- matr[x][y].tipo = '█';
- matr[x + 1][y].tipo = '█';
- matr[x + 2][y].tipo = '█'; //prima riga
- matr[x][y - 1].tipo = '█';
- matr[x][y - 2].tipo = '█';
- matr[x + 1][y - 1].tipo = '█';
- matr[x + 2][y - 1].tipo = '█';
- matr[x + 1][y - 2].tipo = '█';
- matr[x + 2][y - 2].tipo = '█';
- //valore
- matr[x][y].val = 5;
- matr[x + 1][y].val = 5;
- matr[x + 2][y].val = 5;
- matr[x][y - 1].val = 5;
- matr[x][y - 2].val = 5;
- matr[x + 1][y - 1].val = 5;
- matr[x + 2][y - 1].val = 5;
- matr[x + 1][y - 2].val = 5;
- matr[x + 2][y - 2].val = 5;
- // occupanti
- matr[x][y].occupanti = 2;
- matr[x + 1][y].occupanti = 2;
- matr[x + 2][y].occupanti = 2;
- matr[x][y - 1].occupanti = 3;
- matr[x][y - 2].occupanti = 2;
- matr[x + 1][y - 1].occupanti = 2;
- matr[x + 2][y - 1].occupanti = 3;
- matr[x + 1][y - 2].occupanti = 2;
- matr[x + 2][y - 2].occupanti = 2;
- matr[x][y].libero = false;
- matr[x + 1][y].libero = false;
- matr[x + 2][y].libero = false;//prima riga
- matr[x][y - 1].libero = false;
- matr[x][y - 2].libero = false;
- matr[x + 1][y - 1].libero = false;
- matr[x + 2][y - 1].libero = false;
- matr[x + 1][y - 2].libero = false;
- matr[x + 2][y - 2].libero = false;
- *credito -= 45;
- }
- printf("credito insufficente \n");
- }
- }
|