예제 #1
0
int main(void) {
    initialise_multithreading();
    initialise_screen();
    initialise_keys();
    enable_sound();

    for (;;) {
        pause_screen();
        die_anim(150);
        execute_parallel(play_breakmeggy, play_bgmusic);
    }

    return 0;
}
예제 #2
0
void ConsoleUI::start()
{
    string inp;
    clear_screen();
    cout << readFileToString("../templates/welcome.txt") << endl;
    menu(inp);
    while(inp != "quit")
    {
        if (inp == "add")
        {
            add_something();
        }
        if (inp == "print")
        {
            print_all();
        }
        if (inp == "sort")
        {
            sort_something();
        }
        if (inp == "find")
        {
            find_something();
        }
        if (inp == "connect")
        {
            connect_something();
        }
        pause_screen();
        clear_screen();
        menu(inp);
    }
    if(inp == "quit")
    {
        clear_screen();
        cout << readFileToString("../templates/goodbye.txt") << endl;
        cout << endl;
        cout << "\t\t\t     " << "Program has ended. \n\n\n\n\n\n\n\n";
    }
}
예제 #3
0
파일: zoo.c 프로젝트: hannenz/zoomania
void main(void){
	char i,joker_runtime,j1,j2;

	*(char*)0x0328 = 0xfc;	//block run/stop
	cputc(0x8);		//block shift-cbm

//	*(char*)0xd020 = 0x03;
//	cgetc();
	
	clrscr();
	setgfx(0x0428);
	revers(1);textcolor(15);cputsxy(5,11,"[l]oad or [r]eset highscores?");
	
	if (yesno()){
		load_hs();
	}
	else{
		for(i=0;i<10;++i){
			strcpy (highscore[i].name,"----------");
			highscore[i].level = 0;
			highscore[i].score = 0;
		}
	}

	while (1){
		ass_setup();
		memmove((char*)0xe000,&bmp_data,LINES*320);
		memmove((char*)0xcc00,(char*)(&bmp_data + LINES*320),LINES*40);
		title_screen();

		memset((char*)0xdbc0,15,40);
		
		level = score[0] = xpos1 = ypos1 = joker = time_out = no_more_moves_flag = 0;
		if (players){
			xpos2 = 1; ypos2 = score[1] = 0;
		}
		
		time1 = 160;
		animals = 7;

		while (1){
			if (time_out){
				stop = 1;
				vic->spr_ena = 0;
				init_msx(4);
				if (joker==0){
					check_moves();

					if (pm_x1 == pm_x2){
						clone(pm_y1+1,pm_x1,1);
						print3x3(EMPTY_SYMB,pm_x1,pm_y1+1);
					}
					else{
						clone(pm_y1,pm_x1+1,1);
						print3x3(EMPTY_SYMB,pm_x1+1,pm_y1);
					}
					clone(pm_y1,pm_x1,0);
					print3x3(EMPTY_SYMB,pm_x1,pm_y1);
					vic->spr_ena = 3;

					while (*(char*)0xdc00 != 111){
						vic->spr_ena ^= 3;
						delay(30);
					}
				}
				else{
					while(*(char*)0xdc00 != 111);
					//kill_joker();
				}
				broesel();
				time_out_screen();
				break;
			}

			//check for level up
			for (i=0;i<animals;++i){
				if (hits[i])
					break;
			}
			
			if (level == 0 || i == animals){
				stop = 1;
				kill_joker();
				init_msx(((level%2)>>1) + 3);
				if (++level != 1){
					broesel();
				}
				if (level == 5){
					animals = 8;
				}
				if (level == 17){
					all_done();
					time_out_screen();
					break;
				}

				xpos1 = 3; ypos1 = 3;
				vic->spr7_x = 39+3*24;
				vic->spr7_y = 50+3*24;
				if (players){
					xpos2 = ypos2 = 4;
					vic->spr6_x = 39+4*24;
					vic->spr6_y = 50+4*24;
				}
				else{
					vic->spr6_x = vic->spr6_y = 0;
				}
				memset(hits,(level+2),8);

				level_up_screen();
				init_msx(~level%2);
				print_matrix();
				timer_delay = level_time[level-1];
				memset((char*)0xdbc0,0x0f,40);
				stop = no_more_moves_flag = key = 0;
			}
			if (no_more_moves_flag){
				stop = 1;
				no_more_moves();
				print_matrix();
				stop = no_more_moves_flag = 0;
			}
			if (!isstop()){
				stop = 1;
				//kill_joker();
				memcpy(backup,matrix,64);
				broesel();
				pause_screen();
				memcpy(matrix,backup,64);
				print_matrix();
				stop = 0;
			}
			if (key == CH_F8){
				stop = 1;
				//kill_joker();
				key = 0;
				broesel();
				break;
			}
			// if a joker exists, check its runtime and destroy if needed
			if(joker == 1 && (clock() - jok1)/CLOCKS_PER_SEC >= joker_runtime){
				kill_joker();
				if (!check_moves()){
					stop = 1;
					no_more_moves();
					print_matrix();
					stop = no_more_moves_flag = 0;
				}
			}

					

			// if no joker exists, create one on random number
			if (joker == 0 && random() == 0xea && random() >= 0xff){
				joker = 1;
				random(); random();
				joker_x = random() & 7;
				joker_y = random() & 7;
				matrix[joker_y][joker_x] = JOKER_SYMB;
				while ((joker_runtime = random() & 7) < 3);				
				jok1 = clock();
			}
			
			// joystick
			if (demo){
				if (*(char*)0xdc00 == 111 || *(char*)0xdc01 == 239){
					//kill_joker();
					broesel();
					break;
				}
 				if (cue_max == 0){
					if (pm_x1 > xpos1){
						for (i=0;i<(pm_x1-xpos1);++i)
							put2cue(119);
					}
					else{
						for (i=0;i<(xpos1-pm_x1);++i)
							put2cue(123);
					}
					if (pm_y1 > ypos1){
						for (i=0;i<(pm_y1-ypos1);++i)
							put2cue(125);
					}
					else{
						for(i=0;i<(ypos1-pm_y1);++i)
							put2cue(126);
					}
				}
			       	while (cue_max);
				delay(50);
//				s_temp = score[0];
				swap (xpos1,ypos1,pm_x2-pm_x1,pm_y2-pm_y1);
				/*				
				if (score[0] == s_temp){
					vic->bordercolor++;
					while(1);
				}
				*/
				
				delay(50);
				continue;
			}
			if((j1 = *(char*)(0xdc00 + tt)&0x7f) != nothing){
				pl = 0;
				if (j1 == fire_up){
					if (ypos1) swap (xpos1,ypos1,0,-1);
				}
				if (j1 == fire_down){
					if (ypos1 < 7) swap(xpos1,ypos1,0,1);
				}
				if (j1 == fire_left){
					if (xpos1) swap (xpos1,ypos1,-1,0);
				}
				if (j1 == fire_right){
					if (xpos1 < 7) swap (xpos1,ypos1,1,0);
				}
				if (j1 == 111){
					if (matrix[ypos1][xpos1] == JOKER_SYMB){
						joker_hit(pl);
					}
				}
			}
			if (players){
				if((j2 = *(char*)0xdc01) != 255){
					pl = 1;
					if (j2 == 238){
						if (ypos2) swap (xpos2,ypos2,0,-1);
					}
					if (j2 == 237){
						if (ypos2 < 7) swap(xpos2,ypos2,0,1);
					}
					if (j2 == 235){
						if (xpos2) swap (xpos2,ypos2,-1,0);
					}
					if (j2 == 231){
						if (xpos2 < 7) swap (xpos2,ypos2,1,0);
					}
					if (j2 == 239){
						if (matrix[ypos2][xpos2] == JOKER_SYMB){
							joker_hit(pl);
						}
					}
				}
			}
		}	
	}
예제 #4
0
파일: screen_3.cpp 프로젝트: HiiYL/uttc
int screen_3::Run(sf::RenderWindow &App) {
    Cursor mouse_cursor(App,resources->textures.get("MouseCursor"));

    sf::Sprite mock_cursor;
    mock_cursor.setTexture(resources->textures.get("MockCursor"));

    sf::Sprite background;
    background.setTexture(resources->textures.get("GameBackground"));

    bool Running = true;
    int starting_index = resources->start_index;
    Sidebar sidebar(App, resources);

    sf::Clock clock;

    Board board(starting_index,App, resources);
    board.move(0,50);
    board.animateMovement(sf::Vector2f(200,50),3);
    Replay replay(App, resources);

    Player* player1 (new Player(board.getBoardGrid(),'X'));
    Player* player2 (new Player(board.getBoardGrid(),'O'));
    Player* curr_player;
    player1->setTexture(&resources->textures.get("Player1Mark"));
    player2->setTexture(&resources->textures.get("Player2Mark"));

    Button waiting(App);
    waiting.load(resources->textures.get("WaitingBase"),resources->textures.get("WaitingHover"));
    //waiting.setScale(0.7);
    waiting.setPosition((App.getSize().x-waiting.getGlobalBounds().x)/2+40,App.getSize().y-waiting.getGlobalBounds().y+5);
    VictoryBanner victory_banner(App,player1,player2,replay, resources);
    Messenger messenger(App, resources);
    PauseOverlay pause_screen(App, resources, true);
    while (Running)
    {
        sf::Event event;

        while (App.pollEvent(event))
        {

            if(messageSocket->receive(packet) == sf::Socket::Disconnected)
            {
                sidebar.stopMusic();
                pause_screen.setString("    DISCONNECTED");
                pause_screen.isDisconnected(true);
                pause_screen.setPaused(true);
            }
            else    {
                board.handleEvents(event);             //if not disconnected
                if(sidebar.updateEvents(event))
                    pause_screen.setPaused(true);
            }
            if(pause_screen.updateEvent(event))
            {
               return pause_screen.getActionKeyCode();
            }
            messenger.updateEvents(event);
            if (event.type == sf::Event::Closed)
            {
                return (-1);
            }
            if(victory_banner.handleEvents(event))
            {
                return victory_banner.getActionKeyCode();
            }
        }
        board.updateAnimation();
        messenger.update(messageSocket);
        if((is_host&&player_turn) || (!is_host && !player_turn)) {
            curr_player = player1;
        }
        else {
            curr_player = player2;
        }
        mouse_cursor.update();
        replay.record(player_turn , replaySocket);
        mock_cursor.setPosition(replay.getCurrPosition());
        if(!board.game_done)
            {
                 if(sidebar.checkTimer(resources->isTimerActivated,resources->turn_timer))   {
                    if(player_turn) {
                        is_waiting = false;
                        board.update(curr_player,is_host,socket);
                    }
                    else{
                        is_waiting = true;
                        board.update(curr_player,socket);  //receiver
                    }
                    if(board.round_done)    {
                        sidebar.restartClock();
                        player_turn = !player_turn;
                        board.round_done = false;
                    }
                }
                else    {
                    player_turn = !player_turn;
                    sidebar.restartClock();
                }
            }

            else    {
                replay.save();
                sidebar.stopMusic();
                victory_banner. displayBanner(is_host);
            }
        App.clear();
        App.draw(background);
        App.draw(board);
        if(!player_turn)
            App.draw(mock_cursor);
        if(is_waiting)
            App.draw(waiting);
        App.draw(sidebar);
        if(board.game_done)    {
            App.draw(victory_banner);
        }
        if(pause_screen.isPaused())    {
            App.draw(pause_screen);
        }
        App.draw(messenger);

        App.draw(mouse_cursor);
        App.display();
    }
    return (-1);
}