반응형

#pragma once


#include <conio.h>
#include <windows.h>

#define LEFT 75
#define RIGHT 77
#define UP 72
#define DOWN 80
#define SPACE 32


#define BLACK 0
#define BLUE 1
#define GREEN 2
#define IVORY 3
#define RED 4
#define PURPLE 5
#define YELLOW 6
#define WHITE 7
#define GRAY 8
#define SKYBLUE 9
#define YELLOWGREEN 10
#define WHITEIVORY 11
#define PINK 12
#define WHITEPURPLE 13
#define WHITEYELLOW 14
#define BOLDWHITE 15

#define BOARD_SIZE 5

void setColor(int background, int foreground)
{
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), (background << 4) | foreground);
}

 

// myfunc

 

 

#include "stdafx.h"
 #include <stdio.h>
 #include "myfunc.h"
 #include <random>
 using namespace std;
 #include <conio.h>

 #define LEFT 75
 #define RIGHT 77
 #define UP 72
 #define DOWN 80
 #define SPACE 32

 int main()
 {
  random_device rn;
  mt19937_64 rnd(rn());
  uniform_int_distribution<int> range(0, 2); // 1부터 45사이에서 출력한다.

  int board[3][3] = { 0 };
  int result[3][3] = { 0 };
  int count = 0;
  int ran1 = 0, ran2 = 0;
  int ran3 = 0, ran4 = 0;
  int tmp = 0;
  int inputkey = 0;
  int x = 0, y = 0;
  int gameFlag = 1;
  int resultcount = 0;
  int debugcount = 0;

  for (int i = 0; i < 3; i++) {
   for (int j = 0; j < 3; j++) {
    count++;
    board[i][j] = count;
    result[i][j] = count;
   }
   printf("\n");
  }
  count = 0;

  for (int i = 0; i < 100000; i++) {

   ran1 = range(rn);
   ran2 = range(rn);
   ran3 = range(rn);
   ran4 = range(rn);

   tmp = board[ran1][ran2];
   board[ran1][ran2] = board[ran3][ran4];
   board[ran3][ran4] = tmp;
  }

  while (gameFlag) {

   system("cls");
   
   resultcount = 0;
   for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
     if (board[i][j] == result[i][j])
      resultcount++;
    }
   }

   for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {

     if (board[i][j] == 9) {
      y = i; x = j;
      setColor(BLACK, BLACK);
      printf("%2d", board[i][j]);
     }
     else {
      if (board[i][j] % 2 == 0) {
       setColor(RED, WHITE);
       printf("%2d", board[i][j]);
      }
      else if (board[i][j] % 2 == 1) {
       setColor(BLUE, WHITE); printf("%2d", board[i][j]);
      }
     setColor(BLACK, WHITE);
     }

    }
    printf("\n");
   }
   Sleep(50);

   inputkey = _getch();
   if (inputkey == LEFT) {
    int tmp2 = 0;
    if ((x + 1) < 3) {
     tmp2 = board[y][x];
     board[y][x] = board[y][x + 1];
     board[y][x + 1] = tmp2;
     tmp2 = 0;
    }
   }
   else if (inputkey == RIGHT) {
    int tmp2 = 0;
    if ((x - 1) >= 0) {
     tmp2 = board[y][x];
     board[y][x] = board[y][x - 1];
     board[y][x - 1] = tmp2;
     tmp2 = 0;
    }
   }
   else if (inputkey == UP) {
    int tmp2 = 0;
    if ((y + 1) < 3) {
     tmp2 = board[y][x];
     board[y][x] = board[y + 1][x];
     board[y + 1][x] = tmp2;
     tmp2 = 0;
    }
   }
   else if (inputkey == DOWN) {
    int tmp2 = 0;
    if ((y - 1) >= 0) {
     tmp2 = board[y][x];
     board[y][x] = board[y - 1][x];
     board[y - 1][x] = tmp2;
     tmp2 = 0;
    }
   }
   else if (inputkey == SPACE) {
    for (int i = 0; i < 3; i++) {
     for (int j = 0; j < 3; j++) {
      debugcount++;
      board[i][j] = debugcount;
     }
    }
   }count = 0;

   if (resultcount > 8){
    gameFlag = 0;
    resultcount = 0;
    setColor(BLACK, WHITE);
    printf("정답 ! 완성하였습니다.");
   }
  }
  return 0;
 }

==============================================================================================

//교수님 소스

#include "stdafx.h"

#include "myFunc.h"
#include <stdlib.h>
#include <conio.h>
#include <random>

using namespace std;

#define MAX 5

#define LE 75
#define RI 77
#define UP 72
#define DO 80
#define SPACE 32

#define ME 0
#define COM 1

void swap(int *a, int *b)
{
 int tmp = *a;
 *a = *b;
 *b = tmp;
}

void dist(int board[MAX][MAX])
{
 random_device rn;
 mt19937_64 rnd(rn());
 uniform_int_distribution<int> range(0, MAX - 1);

 int count = 0;
 int dc1 = 0, dc2 = 0, dc3 = 0, dc4 = 0;
 for (int y = 0; y < MAX; y++)
 {
  for (int x = 0; x < MAX; x++)
  {
   board[y][x] = ++count;
   if (count == MAX * MAX) board[y][x] = 0;
  }
 }
 for (int i = 0; i < 1000; i++)
 {
  dc1 = range(rn);
  dc2 = range(rn);
  dc3 = range(rn);
  dc3 = range(rn);
  swap(board[dc1][dc2], board[dc3][dc4]);
 }
}

int main()
{
 // tic-tac-toe variables
 int board[MAX][MAX] = { 0, };
 int cursor_x = 0, cursor_y = 0;
 int inputKey = 0;

 dist(board);
 while (1)
 {
  // Drawing
  system("cls");
  printf("\n");
  for (int y = 0; y < MAX; y++)
  {
   printf("   ");
   for (int x = 0; x < MAX; x++)
   {
    if (board[y][x] == 0)
    {
     setColor(BLACK, WHITE);
     printf("    ");
     cursor_x = x;
     cursor_y = y;
    }
    else if (board[y][x] % 2 == 0)
    {
     setColor(RED, WHITE);
     printf("%3d ", board[y][x]);
    }
    else
    {
     setColor(BLUE, WHITE);
     printf("%3d ", board[y][x]);
    }

    setColor(BLACK, WHITE);
   }
   printf("\n");
  }

  // input
  inputKey = _getch();
  if (inputKey == LE)
  {
   if (cursor_x >= 0 && cursor_x < (MAX - 1))
   {
    board[cursor_y][cursor_x] = board[cursor_y][cursor_x + 1];
    board[cursor_y][cursor_x + 1] = 0;
    cursor_x--;
   }
  }
  else if (inputKey == RI)
  {
   if (cursor_x <= MAX - 1 && cursor_x > 0)
   {
    board[cursor_y][cursor_x] = board[cursor_y][cursor_x - 1];
    board[cursor_y][cursor_x - 1] = 0;
    cursor_x++;
   }
  }
  else if (inputKey == UP)
  {
   if (cursor_y >= 0 && cursor_y < (MAX - 1))
   {
    board[cursor_y][cursor_x] = board[cursor_y + 1][cursor_x];
    board[cursor_y + 1][cursor_x] = 0;
    cursor_y--;
   }
  }
  else if (inputKey == DO)
  {
   if (cursor_y <= MAX - 1 && cursor_y > 0)
   {
    board[cursor_y][cursor_x] = board[cursor_y - 1][cursor_x];
    board[cursor_y - 1][cursor_x] = 0;
    cursor_y++;
   }
  }
  else if (inputKey == SPACE)
  {
   // Cheat
   int tmpCount = 0;
   for (int i = 0; i < MAX; i++)
   {
    for (int j = 0; j < MAX; j++)
    {
     board[i][j] = ++tmpCount;
     if (tmpCount == MAX * MAX) board[i][j] = 0;
    }
   }
  }
 }
}

 

반응형

'Study > C' 카테고리의 다른 글

C언어 - 비트 연산  (0) 2018.08.29
C언어 - Tictactoe 게임  (0) 2018.08.28
C언어 - 배열 포인터  (0) 2018.08.28
C언어 - 포인터 2  (0) 2018.08.28
C언어 - 포인터  (0) 2018.08.28
반응형

// ** 포인터 배열을 사용하여 로또 6자리 출력하기

 

#include "stdafx.h"
#include <stdio.h>
#include <random>
using namespace std;


int main()
{
 random_device rn;
 mt19937_64 rnd(rn());
 uniform_int_distribution<int> range(1, 45);

 // 랜덤수 출력 함수


 int data[45] = { 0 };
 int dice = 0, count = 0;
 for (int i = 1; i <= 45; i++) {
  *(data + (i - 1)) = i;
 }

 while (count < 6) {

  dice = range(rn);

  if (*(data + dice) != 0) {
   printf("\n%d  ", *(data + dice));
   *(data + dice) = 0;
   count++;
  }

 }
 return 0;
}

========================================================================

 

** 포인터 배열을 사용하는 경우

 

1. SWAP함수 처럼 사용할 경우

2. 하드웨어적으로 직접적으로 주소값을 수정할 경우.

3. 메모리 동적할당

 

========================================================================

 

// swap함수 없이 45개 배열 숫자 섞기 셔플방식


#include "stdafx.h"
#include <stdio.h>
#include <random>
using namespace std;


int main()
{
 random_device rn;
 mt19937_64 rnd(rn());
 uniform_int_distribution<int> range(0, 44);

 // 랜덤수 출력 함수


 int data[45] = { 0 };
 int dice = 0, count = 0;
 for (int i = 1; i <= 45; i++) {
  *(data + (i - 1)) = i;
 }

 int ran1 = range(rn), ran2=range(rn);
 int tmp =0 ;
 for (int i = 0; i < 10000; i++) {
  ran1 = range(rn), ran2 = range(rn);
  tmp = *(data + ran1);
  *(data + ran1) = *(data + ran2);
  *(data + ran2) = tmp;
 }

 for (int i = 0; i < 45; i++) {
  printf("%d  ",data[i]);
 }
 return 0;
}

 

========================================================================

 

// 메모리 동적 할당.


#include "stdafx.h"
#include <stdio.h>
#include <random>
using namespace std;


int main()
{
 int enemy_qu = 0;
 printf("몇 명의 적 출현 시킬까요 ? : ");
 scanf_s("%d",&enemy_qu);

 // 메모리 동적 할당
 int *enemy = new int[enemy_qu];

 // 적 출현
 for (int i = 0; i < enemy_qu; i++) {
  *(enemy + i) = i * 10;
  printf("%d ", *(enemy + i));
 }
 //동적할당 메모리 삭제
 delete enemy;
 return 0;
}

 

반응형

'Study > C' 카테고리의 다른 글

C언어 - Tictactoe 게임  (0) 2018.08.28
C언어 - 블럭 옴기기 게임  (0) 2018.08.28
C언어 - 포인터 2  (0) 2018.08.28
C언어 - 포인터  (0) 2018.08.28
C언어 - Rullet 게임 만들기 2  (0) 2018.08.28
반응형

** 이중 포인터

 

 

int A = 0;

int *pA = &A;

int **ppA = &pA;

 

printf("%d\n",**ppA);

 

================================================================================

 

int A = 0;

int *pA = &A;

int **ppA = &pA;

 

printf("%d\n", A);
printf("%d\n", &A);
printf("%d\n", *pA);
printf("%d\n", **ppA);

 

// 출력 결과

 

 

================================================================================

 

 

** 배열 포인터

 


 int a[5] = { 1,2,3,4,5 };


 printf("%d %d %d %d %d ", a, &a[0], &a[1], &a[2], &a[3]); // a와 &a[0] 값은 같다.


 printf("\n%d", *(a + 1)); // a의 주소값+1

 

 

 

 

 

int data[10];

 

printf("%d", data); // 주소값이 출력된다.

 

 

// data[0] 이나 *data나 같다.

 

 

** 포인터 배열을 사용하여 배열을 직접 건드리지 않고 값을 입력받아 큰수와 작은수를 찾아 준다.


int data[10] ;
int min =0, max=0;

 

for (int i = 0; i < 10; i++) {

printf("키를 입력해 주세요 : "); 

scanf_s("%d", (data + i));
}

 

// data , data+1

// 주소값에 1을 더할 경우 4바이트 증가한다.

 

min = *data; // 첫번째 값을 넣어준다

 

for (int i = 0;i<10; i++){

if (*(data+i)>max)max =*(data+i);

if (*(data+i)<min)min =*(data+i);

}

 

printf("가장 큰 수는 : %d ",max);

printf("가장 작은 수는 : %d ",min);

 

반응형

'Study > C' 카테고리의 다른 글

C언어 - 블럭 옴기기 게임  (0) 2018.08.28
C언어 - 배열 포인터  (0) 2018.08.28
C언어 - 포인터  (0) 2018.08.28
C언어 - Rullet 게임 만들기 2  (0) 2018.08.28
C언어 - Rullet 게임만들기  (0) 2018.08.27
반응형

** 포인터

 

&a : a의 주소값 // 실행 할 때 마다 주소값이 바뀜.

 

예)

int A = 10;

int *pA =100; // 일반값은 들어가지 않는다. 주소값만 들어간다.

int *pA = &A; // A의 주소값을 넣었다.

 

printf("A의 값 %d\n" , A);

printf("A의 주소값 %d\n" , &A);

printf("pA의 값 %d\n" , pA);

 

 

 

 

// A에는 일반 값을 가질 수 있다.

// *pA 포인터 변수에는 변수의 주소

 

값만 가질 수 있다.

 

printf("pA가 가르키는 값 %d\n",*pA);

 

 

포인터를 사용하면 특정 변수를 간접적으로 변경할 수 있다.

 

** Call by reference

 

 

** C언어는 기본적으로 Call by value

 

void swap (int a, int b){

int tmp =a;

a =b;

b=tmp;

}

int main(){
int data1 =10;

int data2 =20;

swap(data1,data2);

}

 

// 출력결과 데이터값이 바뀌지 않고 10,20으로 출력된다.

// swap함수를 쓰고 싶다면, 포인터를 이용한다.

 

void swap(int *a, int *b){

int tmp = *a;

*a=*b;

*b=tmp;

}

int main(){

int data1 = 10;

int data2 = 20;

swap(&data1, &data2);

}

 

// swap되어 출력된다.

 

*a : 포인터 변수 // a의 주소를 사용하겠다는 의미

&a : a의 주소값

 

** 전역변수를 써서 사용할 수도 있지만, 함수 코드를 공유할 때, 전역변수 까지 전달해야하는 번거로움이 있다.

// 포인터 함수를 사용하면 좀 더 편리하다.

 

 

 

 

void swap(int *a, int *b){  // int *a와 int *b 에 주소값을 저장한다.

int tmp = *a;  // tmp에 *a값을 저장한다. (주소값 X)

*a=*b;  // *a에 *b값을 저장한다.  (주소값 X)

*b=tmp; // *b에 tmp값을 저장한다.  (주소값 X)

}

 

 

int *pA = (int *) (300); // 포인터 변수 *pA의 주소값을 300으로 설정한다.

 

int *pA = &A; // A의 주소값을 넣었다.

 *pA = 1000; // A의 값에 1000을 넣었다.

 

 

반응형

'Study > C' 카테고리의 다른 글

C언어 - 배열 포인터  (0) 2018.08.28
C언어 - 포인터 2  (0) 2018.08.28
C언어 - Rullet 게임 만들기 2  (0) 2018.08.28
C언어 - Rullet 게임만들기  (0) 2018.08.27
C언어 - 난수 발생함수(random함수)  (0) 2018.08.27
반응형



#include "stdafx.h"
#include <stdio.h>
#include "myfunc.h"
#include <random>
using namespace std;

#define MAX 20

int main()
{
 // 랜덤수 출력 함수
 random_device rn;
 mt19937_64 rnd(rn());
 uniform_int_distribution<int> range(1, MAX); // 1부터 MAX사이에서 출력한다.

 int board[20];
 int count = 0;
 int bat = 0;
 int jackpot = range(rn);
 int money = 10000;
 int batmoney = 0;
 int startflag = 0;
 int round = 2;
 int vspeed = 0, ballspeed = 0;


 for (int i = 0; i < MAX; i++) {
  board[i] = i + 1;
 }

 while (1) {
  system("cls");
  printf("\n");
  setColor(BLACK, YELLOW);
  printf("                                                             GOLD : %d", money);
  setColor(BLACK, RED);
  printf("                         R   O   U   L   E   T   T   E                      \n\n");

  for (int i = 0; i < MAX; i++) {
   if (i % 2 == 0) setColor(RED, WHITE);
   else setColor(BLACK, WHITE);
   printf(" %02d ", board[i]);
  }

  printf(" \n");

  count++;
  if (count >= 20) {
   count = 0;
   round++;
  }
  for (int i = 0; i < count; i++) {
   printf("    "); 
  } 
  printf(" ●");
  
  vspeed++;
  ballspeed += vspeed;
  Sleep(ballspeed);
  
  if (round == 2) {
   if (startflag == 0) {
    if (bat == jackpot % 2) {
     setColor(BLACK, BLACK);
     printf("\n\n       ");
     setColor(RED, YELLOW);
     printf("축하합니다.");
     money = money + batmoney;
     startflag = 0;
     vspeed = 0;
    }
    else {
     setColor(BLACK, BLACK);
     printf("\n\n       ");
     setColor(BLACK, BLUE);
     printf("꽝.");
     money = money - batmoney;
     startflag = 0;
     vspeed = 0;
    }
    setColor(BLACK, WHITE);
    printf("\n\n\n\n얼마를 배팅하시겠습니까 ?  : ");
    scanf_s("%d", &batmoney);
    printf("\n\n\n어떤 색에 배팅하시겠습니까 ? (1번 : 빨강색, 2번 : 검정색) : ");
    scanf_s("%d", &bat);
    startflag = 1;
    round = 0;
   }
   startflag = 0;
  }
 }
 return 0;
}


 // 내가 만든 소스


==========================================================================

 

// 교수님이 만든 소스


#include "pch.h"
#include "myFunc.h"
#include <random>
#define MAX 20
using namespace std;

int main()
{
random_device rn;
mt19937_64 rnd(rn());
uniform_int_distribution<int> range(350, 550);

int board[MAX], loc = 0, ani_color = 0;
int startFlag = 0;
int gold = 10000, bet = 0, color = 0;
int ballSpeed = 0, vspeed = 0;

for (int i = 0; i < MAX; i++) board[i] = i + 1;

while (1)
{
ani_color++;
if (ani_color > 15) ani_color = 0;
system("cls");
printf("\n");
printf("\t\t\t\t\t\t\t\t\t\t\t\t\t  GOLD : ");
setColor(BLACK, YELLOW);
printf("%d\n", gold);
setColor(BLACK, ani_color);
printf("\t\t\t\t\t\tR  O  U  L  E  T  T  E\n\n");
setColor(BLACK, WHITE);
for (int i = 0; i < MAX; i++)
{
if (i % 2 == 0) setColor(RED, WHITE);
else setColor(BLACK, WHITE);
printf("  %02d  ", board[i]);
}
setColor(BLACK, WHITE);
printf("\n\n");

// 怨듦뎬由ш린
loc++;
if (loc >= MAX) loc = 0;
for (int i = 0; i < loc; i++) printf("      ");
printf("  �뿈\n");
printf("  \n\n  Ball Speed : %d\n", ballSpeed);

// 踰좏똿 臾쇱뼱蹂닿린

if (startFlag == 0)
{
if (ballSpeed != 0)
{
//printf("loc : %d\n", loc);
setColor(BLACK, YELLOW);
if (color == 1 && loc % 2 == 0)
{
printf("\n\n\n\t\t\t\t\t�떦�떊�쓽 �듅由?n");
gold += bet;
}
else if (color == 1 && loc % 2 == 1)
{
printf("\n\n\n\t\t\t\t\t�떦�떊�쓽 �뙣諛?n");
gold -= bet;
}
else if (color == 2 && loc % 2 == 0)
{
printf("\n\n\n\t\t\t\t\t�떦�떊�쓽 �뙣諛?n");
gold -= bet;
}
else if (color == 2 && loc % 2 == 1)
{
printf("\n\n\n\t\t\t\t\t�떦�떊�쓽 �듅由?n");
gold += bet;
}
vspeed = ballSpeed = bet = color = 0;
setColor(BLACK, WHITE);
}
startFlag = 1;
}
else if (startFlag == 1)
{
printf("\n\n\n\t\t\t\t\t�뼹留덈? 嫄곗떆寃좎뒿�땲源�? : ");
scanf_s("%d", &bet);
printf("\n\t\t\t\t\t�뼱�뒓 �깋�뿉 嫄곗떆寃좎뒿�땲源�? (1:鍮④컯, 2:寃��젙) :");
scanf_s("%d", &color);
startFlag = 2;
}
vspeed++;
ballSpeed += vspeed;
Sleep(ballSpeed);
if (ballSpeed > range(rn)) startFlag = 0;
}

 

=================================================================

//UTP - 8 로 변환

 

#include "pch.h"
#include "myFunc.h"
#include <random>
#define MAX 20
using namespace std;

int main()
{
random_device rn;
mt19937_64 rnd(rn());
uniform_int_distribution<int> range(350, 550);

int board[MAX], loc = 0, ani_color = 0;
int startFlag = 0;
int gold = 10000, bet = 0, color = 0;
int ballSpeed = 0, vspeed = 0;

for (int i = 0; i < MAX; i++) board[i] = i + 1;

while (1)
{
ani_color++;
if (ani_color > 15) ani_color = 0;
system("cls");
printf("\n");
printf("\t\t\t\t\t\t\t\t\t\t\t\t\t  GOLD : ");
setColor(BLACK, YELLOW);
printf("%d\n", gold);
setColor(BLACK, ani_color);
printf("\t\t\t\t\t\tR  O  U  L  E  T  T  E\n\n");
setColor(BLACK, WHITE);
for (int i = 0; i < MAX; i++)
{
if (i % 2 == 0) setColor(RED, WHITE);
else setColor(BLACK, WHITE);
printf("  %02d  ", board[i]);
}
setColor(BLACK, WHITE);
printf("\n\n");

// 공굴리기
loc++;
if (loc >= MAX) loc = 0;
for (int i = 0; i < loc; i++) printf("      ");
printf("  ●\n");
printf("  \n\n  Ball Speed : %d\n", ballSpeed);

// 베팅 물어보기

if (startFlag == 0)
{
if (ballSpeed != 0)
{
//printf("loc : %d\n", loc);
setColor(BLACK, YELLOW);
if (color == 1 && loc % 2 == 0)
{
printf("\n\n\n\t\t\t\t\t당신의 승리\n");
gold += bet;
}
else if (color == 1 && loc % 2 == 1)
{
printf("\n\n\n\t\t\t\t\t당신의 패배\n");
gold -= bet;
}
else if (color == 2 && loc % 2 == 0)
{
printf("\n\n\n\t\t\t\t\t당신의 패배\n");
gold -= bet;
}
else if (color == 2 && loc % 2 == 1)
{
printf("\n\n\n\t\t\t\t\t당신의 승리\n");
gold += bet;
}
vspeed = ballSpeed = bet = color = 0;
setColor(BLACK, WHITE);
}
startFlag = 1;
}
else if (startFlag == 1)
{
printf("\n\n\n\t\t\t\t\t얼마를 거시겠습니까? : ");
scanf_s("%d", &bet);
printf("\n\t\t\t\t\t어느 색에 거시겠습니까? (1:빨강, 2:검정) :");
scanf_s("%d", &color);
startFlag = 2;
}
vspeed++;
ballSpeed += vspeed;
Sleep(ballSpeed);
if (ballSpeed > range(rn)) startFlag = 0;
}

반응형

'Study > C' 카테고리의 다른 글

C언어 - 포인터 2  (0) 2018.08.28
C언어 - 포인터  (0) 2018.08.28
C언어 - Rullet 게임만들기  (0) 2018.08.27
C언어 - 난수 발생함수(random함수)  (0) 2018.08.27
C언어 - 문자열 (계산기 만들기(Atoi함수사용))  (0) 2018.08.27
반응형

** #include "myfunc.h" **

 

 

#include <conio.h>
#include <windows.h>

#define LEFT 75
#define RIGHT 77
#define UP 72
#define DOWN 80
#define SPACE 32


#define BLACK 0
#define BLUE 1
#define GREEN 2
#define IVORY 3
#define RED 4
#define PURPLE 5
#define YELLOW 6
#define WHITE 7
#define GRAY 8
#define SKYBLUE 9
#define YELLOWGREEN 10
#define WHITEIVORY 11
#define PINK 12
#define WHITEPURPLE 13
#define WHITEYELLOW 14
#define BOLDWHITE 15

#define BOARD_SIZE 5

void setColor(int background, int foreground)
{
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), (background << 4) | foreground);
}

 

// 헤더함수

 

=====================================================================

 

 

#include "stdafx.h"
#include <stdio.h>
#include "myfunc.h"
#include <random>
using namespace std;

#define MAX 20

int main()
{
 // 랜덤수 출력 함수
 random_device rn;
 mt19937_64 rnd(rn());
 uniform_int_distribution<int> range(1, MAX); // 1부터 MAX사이에서 출력한다.
 int board[20];
 int count = 0;
 int bat = 0;
 int jackpot = range(rn);
 int money = 1000000;
 int batmoney = 0;
 boolean state = 1;

 for (int i = 0; i < MAX; i++) {
  board[i] = i + 1;
 }
 while (1) {
  system("cls");
  printf("\n");
  setColor(BLACK, YELLOW);
  printf("                                                                 GOLD : %d", money);
  setColor(BLACK, RED);
  printf("                         R   O   U   L   E   T   T   E                      \n\n");


  for (int i = 0; i < MAX; i++) {
   if (i % 2 == 0) setColor(RED, WHITE);
   else setColor(BLACK, WHITE);
   printf(" %02d ", board[i]);
  }

  printf(" \n");

  count++;
  if (count >= 20) count = 0;
  for (int i = 0; i < count; i++) {
   printf("    ");
  }
  printf(" ●");

 

  printf("\n\n\n\n얼마를 배팅하시겠습니까 ?  : ");
  scanf_s("%d", &batmoney); 
  printf("\n\n\n어떤 색에 배팅하시겠습니까 ? (1번 : 빨강색, 2번 : 검정색) : ");
  scanf_s("%d", &bat);

  if (bat == jackpot%2){
   printf("축하합니다.");
   money = money + batmoney;
  }
  else {
   printf("꽝.");
   money = money - batmoney;
  }
  Sleep(50);
 }

 return 0;
}

 

반응형
반응형

#include "stdafx.h"
#include <stdio.h>
#include <random>
using namespace std;

 



 

int main()
{
 random_device rn;
 mt19937_64 rnd(rn());
 uniform_int_distribution<int> range(1, 45); // 1부터 45사이에서 출력한다.

// 랜덤수 출력 함수


int ran = range(rnd);

printf("%d",ran);


}

반응형
반응형


#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

#define PLUS 43
#define MINUS 45
#define MUL 42
#define DIV 47

int main()
{
 char data1[100];
 char data2[100];
 char inputsource[100]; // 입력받는 문자열
 
 int oper_loc = 0, oper = 0, len = 0;// 연산자 위치 , 연산자, 입력문자의 길이
 
 while (1) {
  printf("입력 해 주세요 : ");
  scanf_s("%s", &inputsource, sizeof(inputsource));
  len = strlen(inputsource); // 전체 길이 구하는 함수 (strlen)


  //연산자 위치
  for (int i = 0; i < 100; i++) {
   if (inputsource[i] >= MUL && inputsource[i] <= DIV) { // 연산자 찾기
    oper = inputsource[i];// 연산자 저장
    oper_loc = i; // 연산자의 위치를 저장
    break;
   }
  }

  //변수 분리
  // 첫번 째 숫자 분리해서 data1[100] 배열에 저장
  for (int i = 0; i < oper_loc; i++) {
   data1[i] = inputsource[i];
  }
  data1[oper_loc] = 0;

  // 두번 째 숫자 분리해서 data1[100] 배열에 저장
  for (int i = oper_loc + 1; i < len; i++) {
   data2[i - oper_loc - 1] = inputsource[i];
  }
  data2[len - oper_loc - 1] = 0;

  //계산
  if (oper == PLUS)printf("%d\n", atoi(data1) + atoi(data2));
  if (oper == MINUS)printf("%d\n", atoi(data1) - atoi(data2));
  if (oper == MUL)printf("%d\n", atoi(data1) * atoi(data2));
  if (oper == DIV)printf("%d\n", atoi(data1) / atoi(data2));
 }
 return 0;
}

반응형
반응형

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
 int len = 0;
 char temp[20] = "hello";
 char temp2[20];
 len = strlen(temp); // 문자열의 길이
 printf("%d", len);

 strcpy_s(temp2, temp); // temp를 temp2에 복사한다.
 printf("%s", temp2);

 if (!strcmp(temp, temp2))// 두개의 문자열이 똑같다면 출력하지 않는다.
  printf("OK");
 return 0;
}

반응형
반응형


** 길이가 가장 긴 단어 찾기 **

 

//키보드로 입력한 단어중 길이가 가장 긴 단어의 길이를 출력한다.

 

 

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>

int main()
{
 char data[100];
 int len = 0, maxlen = 0;

 while (data[0] != '0') {
  
  printf("문자를 입력하세요. : ");
  scanf_s("%s", &data, sizeof(data));


  for (int i = 0; i < 100; i++) {
   if (data[i] == 0) {
    len = i;
    break;
   }
  }
  if (len > maxlen) {
   maxlen = len;
  }
  
 }
 printf("가장 긴 단어의 길이 : %d\n", maxlen);


 return 0;
}

반응형

+ Recent posts