- 趣味で大富豪のカードを配るプログラムソースを作ってみました。そのなのとおり配るだけです(笑
// vctime2.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//
#include <stdafx.h>
#include <time.h>
#include <iomanip>
#include <windows.h>
#include <conio.h>
using namespace std;
extern void syutu1(int si[]);
extern void syutu2(int si[]);
extern void syutu3(int si[]);
extern void syutu4(int si[]);
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hStdout;
WORD wAttributes;
CONSOLE_SCREEN_BUFFER_INFO csbi;
//構造体です
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
//hStdoutのコンソールスクリーンバッファ情報をcsbiに取得
GetConsoleScreenBufferInfo(hStdout, &csbi);
srand((unsigned int)time(NULL));
const int MAX=10000;
int i,j,k,l,t=0,temp;
int kai[MAX],yu[MAX],si[55];
for(k=0;k<=MAX;k++){
yu[k] = 1; //yu[k]の初期化
kai[k] = 0; //kai[k]の初期化
}
for(k=0;k<=54;k++)
si[k]=55; //si[k]の初期化
for(i=0;i<=MAX;i++){
kai[i]=rand()%54+1; //nの値を代入
////////////////////カードを配布//////////////////////////////
for(j=0;j<i+1;j++){
if(kai[j]!=kai[i])
yu[i]+=1;
}
}
l=0;
i=0;
do{
if(yu[i]==i){
si[l]=kai[i];
l++;
}
if(i==MAX)break;
i++;
}while(l<54);
/////////カードの並びかえ/////////////////////
for(i=0;i<13;i++){
for(j=i+1;j<13;j++){
if(si[i] > si[j]){
temp = si[i];
si[i] = si[j];
si[j] = temp;
}
}
}
for(i=13;i<26;i++){
for(j=i+1;j<26;j++){
if(si[i] > si[j]){
temp = si[i];
si[i] = si[j];
si[j] = temp;
}
}
}
for(i=26;i<40;i++){
for(j=i+1;j<40;j++){
if(si[i] > si[j]){
temp = si[i];
si[i] = si[j];
si[j] = temp;
}
}
}
for(i=40;i<54;i++){
for(j=i+1;j<54;j++){
if(si[i] > si[j]){
temp = si[i];
si[i] = si[j];
si[j] = temp;
}
}
}
////////////出力/////////////
wAttributes = 10;
SetConsoleTextAttribute(hStdout,wAttributes);
cout <<"クローバ ";
wAttributes = 9;
SetConsoleTextAttribute(hStdout,wAttributes);
cout <<"スペード ";
wAttributes = 12;
SetConsoleTextAttribute(hStdout,wAttributes);
cout <<"ダイヤ ";
wAttributes =13 ;
SetConsoleTextAttribute(hStdout,wAttributes);
cout <<"ハート"<<"\n\n";
SetConsoleTextAttribute(hStdout, csbi.wAttributes);
cout << "-----------------1人目-------------------\n";
syutu1(si);
SetConsoleTextAttribute(hStdout, csbi.wAttributes);
cout << "\n-----------------2人目-------------------\n";
syutu2(si);
SetConsoleTextAttribute(hStdout, csbi.wAttributes);
cout << "\n-----------------3人目-------------------\n";
syutu3(si);
SetConsoleTextAttribute(hStdout, csbi.wAttributes);
cout << "\n-----------------4人目-------------------\n";
syutu4(si);
SetConsoleTextAttribute(hStdout, csbi.wAttributes);
cout <<endl;
getch();
return 0; //関数の終了
}
// stdafx.cpp : 標準インクルードのみを含むソース ファイルです。
// daifugo_card.pch は、プリコンパイル済みヘッダーになります。
// stdafx.obj にはプリコンパイル済み型情報が含まれます。
#include "stdafx.h"
#include <iomanip>
#include <iostream>
#include <windows.h>
using namespace std;
// TODO: このファイルではなく、STDAFX.H で必要な
// 追加ヘッダーを参照してください。
void syutu1(int si[]){
HANDLE hStdout;
WORD wAttributes;
CONSOLE_SCREEN_BUFFER_INFO csbi;
//構造体です
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
//hStdoutのコンソールスクリーンバッファ情報をcsbiに取得
GetConsoleScreenBufferInfo(hStdout, &csbi);
for (int i=0;i<13;i++){
if(si[i]%4==0&&si[i]!=53&&si[i]!=54){
wAttributes = 10;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]%4==1&&si[i]!=53&&si[i]!=54){
wAttributes = 9;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]%4==2&&si[i]!=53&&si[i]!=54){
wAttributes = 12;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]%4==3&&si[i]!=53&&si[i]!=54){
wAttributes =13 ;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]==53||si[i]==54){
wAttributes =15;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]==1||si[i]==2||si[i]==3||si[i]==4) cout << "3";
if(si[i]==5||si[i]==6||si[i]==7||si[i]==8) cout << "4";
if(si[i]==9||si[i]==10||si[i]==11||si[i]==12) cout << "5";
if(si[i]==13||si[i]==14||si[i]==15||si[i]==16) cout << "6";
if(si[i]==17||si[i]==18||si[i]==19||si[i]==20) cout << "7";
if(si[i]==21||si[i]==22||si[i]==23||si[i]==24) cout << "8";
if(si[i]==25||si[i]==26||si[i]==27||si[i]==28) cout << "9";
if(si[i]==29||si[i]==30||si[i]==31||si[i]==32) cout << "10";
if(si[i]==33||si[i]==34||si[i]==35||si[i]==36) cout << "11";
if(si[i]==37||si[i]==38||si[i]==39||si[i]==40) cout << "12";
if(si[i]==41||si[i]==42||si[i]==43||si[i]==44) cout << "13";
if(si[i]==45||si[i]==46||si[i]==47||si[i]==48) cout << "1";
if(si[i]==49||si[i]==50||si[i]==51||si[i]==52) cout << "2";
if(si[i]==53||si[i]==54) cout << "jk";
if(si[i]==55){
cout <<"error";
}
cout <<setw(3);
}
}
void syutu2(int si[]){
HANDLE hStdout;
WORD wAttributes;
CONSOLE_SCREEN_BUFFER_INFO csbi;
//構造体です
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
//hStdoutのコンソールスクリーンバッファ情報をcsbiに取得
GetConsoleScreenBufferInfo(hStdout, &csbi);
for (int i=13;i<26;i++){
if(si[i]%4==0&&si[i]!=53&&si[i]!=54){
wAttributes = 10;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]%4==1&&si[i]!=53&&si[i]!=54){
wAttributes = 9;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]%4==2&&si[i]!=53&&si[i]!=54){
wAttributes = 12;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]%4==3&&si[i]!=53&&si[i]!=54){
wAttributes =13 ;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]==53||si[i]==54){
wAttributes =15;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]==1||si[i]==2||si[i]==3||si[i]==4) cout << "3";
if(si[i]==5||si[i]==6||si[i]==7||si[i]==8) cout << "4";
if(si[i]==9||si[i]==10||si[i]==11||si[i]==12) cout << "5";
if(si[i]==13||si[i]==14||si[i]==15||si[i]==16) cout << "6";
if(si[i]==17||si[i]==18||si[i]==19||si[i]==20) cout << "7";
if(si[i]==21||si[i]==22||si[i]==23||si[i]==24) cout << "8";
if(si[i]==25||si[i]==26||si[i]==27||si[i]==28) cout << "9";
if(si[i]==29||si[i]==30||si[i]==31||si[i]==32) cout << "10";
if(si[i]==33||si[i]==34||si[i]==35||si[i]==36) cout << "11";
if(si[i]==37||si[i]==38||si[i]==39||si[i]==40) cout << "12";
if(si[i]==41||si[i]==42||si[i]==43||si[i]==44) cout << "13";
if(si[i]==45||si[i]==46||si[i]==47||si[i]==48) cout << "1";
if(si[i]==49||si[i]==50||si[i]==51||si[i]==52) cout << "2";
if(si[i]==53||si[i]==54) cout << "jk";
if(si[i]==55){
cout <<"error";
}
cout <<setw(3);
}
}
void syutu3(int si[]){
HANDLE hStdout;
WORD wAttributes;
CONSOLE_SCREEN_BUFFER_INFO csbi;
//構造体です
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
//hStdoutのコンソールスクリーンバッファ情報をcsbiに取得
GetConsoleScreenBufferInfo(hStdout, &csbi);
for (int i=26;i<40;i++){
if(si[i]%4==0&&si[i]!=53&&si[i]!=54){
wAttributes = 10;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]%4==1&&si[i]!=53&&si[i]!=54){
wAttributes = 9;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]%4==2&&si[i]!=53&&si[i]!=54){
wAttributes = 12;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]%4==3&&si[i]!=53&&si[i]!=54){
wAttributes =13 ;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]==53||si[i]==54){
wAttributes =15;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]==1||si[i]==2||si[i]==3||si[i]==4) cout << "3";
if(si[i]==5||si[i]==6||si[i]==7||si[i]==8) cout << "4";
if(si[i]==9||si[i]==10||si[i]==11||si[i]==12) cout << "5";
if(si[i]==13||si[i]==14||si[i]==15||si[i]==16) cout << "6";
if(si[i]==17||si[i]==18||si[i]==19||si[i]==20) cout << "7";
if(si[i]==21||si[i]==22||si[i]==23||si[i]==24) cout << "8";
if(si[i]==25||si[i]==26||si[i]==27||si[i]==28) cout << "9";
if(si[i]==29||si[i]==30||si[i]==31||si[i]==32) cout << "10";
if(si[i]==33||si[i]==34||si[i]==35||si[i]==36) cout << "11";
if(si[i]==37||si[i]==38||si[i]==39||si[i]==40) cout << "12";
if(si[i]==41||si[i]==42||si[i]==43||si[i]==44) cout << "13";
if(si[i]==45||si[i]==46||si[i]==47||si[i]==48) cout << "1";
if(si[i]==49||si[i]==50||si[i]==51||si[i]==52) cout << "2";
if(si[i]==53||si[i]==54) cout << "jk";
if(si[i]==55){
cout <<"error";
}
cout <<setw(3);
}
}
void syutu4(int si[]){
HANDLE hStdout;
WORD wAttributes;
CONSOLE_SCREEN_BUFFER_INFO csbi;
//構造体です
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
//hStdoutのコンソールスクリーンバッファ情報をcsbiに取得
GetConsoleScreenBufferInfo(hStdout, &csbi);
for (int i=40;i<54;i++){
if(si[i]%4==0&&si[i]!=53&&si[i]!=54){
wAttributes = 10;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]%4==1&&si[i]!=53&&si[i]!=54){
wAttributes = 9;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]%4==2&&si[i]!=53&&si[i]!=54){
wAttributes = 12;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]%4==3&&si[i]!=53&&si[i]!=54){
wAttributes =13 ;
SetConsoleTextAttribute(hStdout,wAttributes);
}
if(si[i]==53||si[i]==54){
wAttributes =15;
SetConsoleTextAttribute(hStdout,wAttributes);
}if(si[i]==1||si[i]==2||si[i]==3||si[i]==4) cout << "3";
if(si[i]==5||si[i]==6||si[i]==7||si[i]==8) cout << "4";
if(si[i]==9||si[i]==10||si[i]==11||si[i]==12) cout << "5";
if(si[i]==13||si[i]==14||si[i]==15||si[i]==16) cout << "6";
if(si[i]==17||si[i]==18||si[i]==19||si[i]==20) cout << "7";
if(si[i]==21||si[i]==22||si[i]==23||si[i]==24) cout << "8";
if(si[i]==25||si[i]==26||si[i]==27||si[i]==28) cout << "9";
if(si[i]==29||si[i]==30||si[i]==31||si[i]==32) cout << "10";
if(si[i]==33||si[i]==34||si[i]==35||si[i]==36) cout << "11";
if(si[i]==37||si[i]==38||si[i]==39||si[i]==40) cout << "12";
if(si[i]==41||si[i]==42||si[i]==43||si[i]==44) cout << "13";
if(si[i]==45||si[i]==46||si[i]==47||si[i]==48) cout << "1";
if(si[i]==49||si[i]==50||si[i]==51||si[i]==52) cout << "2";
if(si[i]==53||si[i]==54) cout << "jk";
if(si[i]==55){
cout <<"error";
}
cout <<setw(3);
}
}