c++编程简易计算器、JavaScript游戏
大家好,我是纳米核心38,我“精通”C++、C、JavaScript,请大家多多指教。
计算器代码:
#include<bits/stdc++.h>
#include<windows.h>
#define p 3.1415926535897932384646433832795028841971693993751058209749445923078164062862089986280348253421170679821480
#define r p/180
using namespace std;
char ch[6]={
'A','B','C','D','E','F'};
void TrunDate(int,int);
int fac(float);
int main(){
float i,j,k;
int l,m,n,a[10];
char cmd;
LOOP:
system("cls");
printf("\t ***********************\n");
printf("\t *******简易计算器******\n");
printf("\t ***********************\n");
printf("\n\t 本计算器提供+、-、*、/运算及以下运算:\n");
printf("\t p-代表圆周率pai。\n");
printf("\t R-代表十进制转换为二进制。\n");
printf("\t b-代表十进制转换为八进制。\n");
printf("\t l-代表十进制转换为十六进制。\n");
printf("\t d-代表该数值开方。\n");
printf("\t e-代表该数值开立方。\n");
printf("\t ^-代表求几次方。\n");
printf("\t S-代表sin。\n");
printf("\t C-代表cos。\n");
printf("\t T-代表tan。\n");
printf("\t s-代表asin。\n");
printf("\t c-代表acos。\n");
printf("\t t-代表atan。\n");
printf("\t !-代表阶乘。\n");
printf("\t 请输入要计算的数字和运算符号,输入“#”时,结束;输入“?”时复位。\n");
scanf("%f",&k);
while((cmd=getchar())!='#')
{
if(i!=0)
switch(cmd)
{
case '+': scanf("%f",&i);
k+=i;
printf("=%5.2f",k);
break; case '-': scanf("%f",&i);
k-=i;
printf("=%5.2f",k);
break; case '*': scanf("%f",&i);
k*=i;
printf("=%5.2f",k);
break; case '/': scanf("%f",&i);
if(i==0) {
cout<<"数学错误Math ERROR\n";
break;
}
k/=i;
printf("=%5.2f",k);
break;
case 'p': k=k*p;
printf("%6.4f",k);
break; case '^': printf("请输入要求该数字的几次方:");
scanf("%d",&n);
i=k;
for(m=0;m<n-1;m++)
k=k*i;
printf("%5.2f",k);
break; case 'R': printf("转换成二进制\n");
TrunDate(k,2);
break;
case 'b':
printf("转换成八进制\n");
TrunDate(k,8);
break;
case 'l': printf("转换成十六进制\n");
TrunDate(k,16);
break;
case 'e': printf("该数值开立方得\n");
i=pow(k,1.0/3);
printf("%5.2f",i );
break;
case 'd': printf("该数值开方得\n");
i=k/2;
j=sqrt(k);
printf("%5.2f",j);
break; case 'S': k=k*r;
i=sin(k);
printf("%5.2f",i);
break;
case 'C': k*=r;
i=cos(k);
printf("%5.2f",i);
break; case 'T': k=k*r;
i=tan(k);
printf("%5.2f",i);
break;
case 's': k=k*r;
if(k>=1){
cout<<"数学错误MathERROR\n";
break;
}
i=asin(k);
printf("%5.2f",i);
break;
case 'c': k*=r;
if(k>=1){
cout<<"数学错误MathERROR\n";
break;
}
i=acos(k);
printf("%.2f",i);
break;
case 't': k*=r;
if(k>=1){
cout<<"数学错误MathERROR\n";
break;
}
i=atan(k);
printf("%.2f",i);
break;
case '!':
k=fac(k);
printf("%d",k);
break;
case '?': goto LOOP;
default:cout<<"语法错误Syntax ERROR\n";
}
}
}
int fac(float X){
(int) X;
return X==0? 1:X*fac(X-1);
}
void TrunDate(int n,int a){
int x[17],i,j,k=0;
if(n<0) cout<<'-';
j=abs(n);
do{
k++;i=j%a;
x[k]=i;
}while(j!=0);
for(int h=k;h>=1;--h)
if(x[h]<10) cout<<x[h];
else cout<<ch[x[h]-10];
}
可以在DEV-C++中复制粘贴;
游戏代码:
<body></body>
<script src="/three.js"></script>
<script src="/physi.js"></script>
<script src="/scoreboard.js"></script>
<script>
// Physics settings
Physijs.scripts.ammo = '/ammo.js';
Physijs.scripts.worker = '/physijs_worker.js';
// The "scene" is where stuff in our game will happen:
var scene = new Physijs.Scene({
fixedTimeStep: 2 / 60 });
scene.setGravity(new THREE.Vector3( 0, -100, 0 ));
var flat = {
flatShading: true};
var light = new THREE.HemisphereLight('white', 'grey', 0.7);
scene.add(light);
// The "camera" is what sees the stuff:
var width = window.innerWidth,
height = window.innerHeight,
aspectRatio = width / height;
var camera = new THREE.PerspectiveCamera(75, aspectRatio, 1, 10000);
// var camera = new THREE.OrthographicCamera(
// -width/2, width/2, height/2, -height/2, 1, 10000
// );
camera.position.z = 500;
camera.position.y = 200;
camera.lookAt(new THREE.Vector3(0,0,0));
scene.add(camera);
// The "renderer" draws what the camera sees onto the screen:
var renderer = new THREE.WebGLRenderer({
antialias: true});
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
document.body.style.backgroundColor = '#ffffff';
// ******** START CODING ON THE NEXT LINE ********
function Launcher(location) {
this.location = location;
this.color = 'yellow';
if (location == 'right') this.color = 'lightblue';
this.angle = 0;
this.power = 0;
this.draw();
this.keepScore();
}
Launcher.prototype.draw = function() {
var direction = new THREE.Vector3(0, 1, 0);
var x = 0;
if (this.location == 'left') x = -100;
if (this.location == 'right') x = 100;
var position = new THREE.Vector3( x, -100, 250 );
var length = 100;
this.arrow = new THREE.ArrowHelper(
direction,
position,
length,
this.color
);
scene.add(this.arrow);
};
Launcher.prototype.vector = function() {
return new THREE.Vector3(
Math.sin(this.angle),
Math.cos(this.angle),
0
);
};
Launcher.prototype.moveLeft = function(){
this.angle = this.angle - Math.PI / 100;
this.arrow.setDirection(this.vector());
};
Launcher.prototype.moveRight = function(){
this.angle = this.angle + Math.PI / 100;
this.arrow.setDirection(this.vector());
};
Launcher.prototype.powerUp = function(){
if (this.power >= 100) return;
this.power = this.power + 5;
this.arrow.setLength(this.power);
};
Launcher.prototype.launch = function(){
var shape = new THREE.SphereGeometry(10);
var material = new THREE.MeshPhongMaterial({
color: this.color});
var ball = new Physijs.SphereMesh(shape, material, 1);
ball.name = 'Game Ball';
ball.scoreboard = this.scoreboard;
var p = this.arrow.position;
ball.position.set(p.x, p.y, p.z);
scene.add(ball);
var speedVector = new THREE.Vector3(
2.5 * this.power * this.vector().x,
2.5 * this.power * this.vector().y,
-80
);
ball.setLinearVelocity(speedVector);
this.power = 0;
this.arrow.setLength(100);
};
Launcher.prototype.keepScore = function(){
var scoreboard = new Scoreboard('top' + this.location);
scoreboard.countdown(60);
scoreboard.score(0);
var moveKeys;
if (this.location == 'left') moveKeys = 'A和 D';
if (this.location == 'right') moveKeys = 'J和L';
if (this.location == 'left') aKeys = 'A and D';
if (this.location == 'right') aKeys = 'J and L';
var launchKeys;
if (this.location == 'left') launchKey = 'S';
if (this.location == 'right') launchKey = 'K';
scoreboard.help(
'用'+moveKeys+'键调整发射角度!'+
'用'+launchKey+'键储力!'+
'松开'+launchKey+'键发射球!'+
'小心有风!'+
'Use the' + aKeys +' keys to point the launcher. ' +
'Press and hold the ' + launchKey + ' key to power up the launcher. ' +
'Let go of the ' + launchKey + ' key to launch. ' +
'Watch out for the wind!!!'
);
scoreboard.onTimeExpired(timeExpired);
function timeExpired() {
if (launcher2.scoreboard.getScore() < launcher1.scoreboard.getScore())
{
launcher2.scoreboard.message("游戏结束,你输了):,别灰心,用R键再来一次!Game Over you lost): not lose hear,keep the R key again!");
launcher1.scoreboard.message("游戏结束,你赢了(:,用R键再来一次!Game Over you win(:,keep the R key again!");
}
else if(launcher2.scoreboard.getScore